OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 extension, 0, GURL("https://www.google.com/"))); | 236 extension, 0, GURL("https://www.google.com/"))); |
237 } | 237 } |
238 | 238 |
239 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyAPIPermissions) { | 239 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyAPIPermissions) { |
240 scoped_refptr<Extension> extension; | 240 scoped_refptr<Extension> extension; |
241 extension = LoadManifest("permissions", "many-apis.json"); | 241 extension = LoadManifest("permissions", "many-apis.json"); |
242 std::vector<base::string16> warnings = | 242 std::vector<base::string16> warnings = |
243 PermissionsData::GetPermissionMessageStrings(extension.get()); | 243 PermissionsData::GetPermissionMessageStrings(extension.get()); |
244 // Warning for "tabs" is suppressed by "history" permission. | 244 // Warning for "tabs" is suppressed by "history" permission. |
245 ASSERT_EQ(5u, warnings.size()); | 245 ASSERT_EQ(5u, warnings.size()); |
246 EXPECT_EQ("Access your data on api.flickr.com", | 246 EXPECT_EQ("Read and modify your data on api.flickr.com", |
247 UTF16ToUTF8(warnings[0])); | 247 UTF16ToUTF8(warnings[0])); |
248 EXPECT_EQ("Read and modify your bookmarks", UTF16ToUTF8(warnings[1])); | 248 EXPECT_EQ("Read and modify your bookmarks", UTF16ToUTF8(warnings[1])); |
249 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[2])); | 249 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[2])); |
250 EXPECT_EQ("Read and modify your browsing history", UTF16ToUTF8(warnings[3])); | 250 EXPECT_EQ("Read and modify your browsing history", UTF16ToUTF8(warnings[3])); |
251 EXPECT_EQ("Manage your apps, extensions, and themes", | 251 EXPECT_EQ("Manage your apps, extensions, and themes", |
252 UTF16ToUTF8(warnings[4])); | 252 UTF16ToUTF8(warnings[4])); |
253 } | 253 } |
254 | 254 |
255 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHostsPermissions) { | 255 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHostsPermissions) { |
256 scoped_refptr<Extension> extension; | 256 scoped_refptr<Extension> extension; |
257 extension = LoadManifest("permissions", "more-than-3-hosts.json"); | 257 extension = LoadManifest("permissions", "more-than-3-hosts.json"); |
258 std::vector<base::string16> warnings = | 258 std::vector<base::string16> warnings = |
259 PermissionsData::GetPermissionMessageStrings(extension.get()); | 259 PermissionsData::GetPermissionMessageStrings(extension.get()); |
260 std::vector<base::string16> warnings_details = | 260 std::vector<base::string16> warnings_details = |
261 PermissionsData::GetPermissionMessageDetailsStrings(extension.get()); | 261 PermissionsData::GetPermissionMessageDetailsStrings(extension.get()); |
262 ASSERT_EQ(1u, warnings.size()); | 262 ASSERT_EQ(1u, warnings.size()); |
263 ASSERT_EQ(1u, warnings_details.size()); | 263 ASSERT_EQ(1u, warnings_details.size()); |
264 EXPECT_EQ("Access your data on 5 websites", UTF16ToUTF8(warnings[0])); | 264 EXPECT_EQ("Read and modify your data on 5 websites", |
| 265 UTF16ToUTF8(warnings[0])); |
265 EXPECT_EQ("- www.a.com\n- www.b.com\n- www.c.com\n- www.d.com\n- www.e.com", | 266 EXPECT_EQ("- www.a.com\n- www.b.com\n- www.c.com\n- www.d.com\n- www.e.com", |
266 UTF16ToUTF8(warnings_details[0])); | 267 UTF16ToUTF8(warnings_details[0])); |
267 } | 268 } |
268 | 269 |
269 TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) { | 270 TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) { |
270 scoped_refptr<Extension> extension; | 271 scoped_refptr<Extension> extension; |
271 extension = LoadManifest("permissions", | 272 extension = LoadManifest("permissions", |
272 "location-api.json", | 273 "location-api.json", |
273 Manifest::COMPONENT, | 274 Manifest::COMPONENT, |
274 Extension::NO_FLAGS); | 275 Extension::NO_FLAGS); |
275 std::vector<base::string16> warnings = | 276 std::vector<base::string16> warnings = |
276 PermissionsData::GetPermissionMessageStrings(extension.get()); | 277 PermissionsData::GetPermissionMessageStrings(extension.get()); |
277 ASSERT_EQ(1u, warnings.size()); | 278 ASSERT_EQ(1u, warnings.size()); |
278 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0])); | 279 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0])); |
279 } | 280 } |
280 | 281 |
281 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) { | 282 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) { |
282 scoped_refptr<Extension> extension; | 283 scoped_refptr<Extension> extension; |
283 extension = LoadManifest("permissions", "many-hosts.json"); | 284 extension = LoadManifest("permissions", "many-hosts.json"); |
284 std::vector<base::string16> warnings = | 285 std::vector<base::string16> warnings = |
285 PermissionsData::GetPermissionMessageStrings(extension.get()); | 286 PermissionsData::GetPermissionMessageStrings(extension.get()); |
286 ASSERT_EQ(1u, warnings.size()); | 287 ASSERT_EQ(1u, warnings.size()); |
287 EXPECT_EQ("Access your data on encrypted.google.com and www.google.com", | 288 EXPECT_EQ( |
288 UTF16ToUTF8(warnings[0])); | 289 "Read and modify your data on encrypted.google.com and www.google.com", |
| 290 UTF16ToUTF8(warnings[0])); |
289 } | 291 } |
290 | 292 |
291 TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) { | 293 TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) { |
292 scoped_refptr<Extension> extension; | 294 scoped_refptr<Extension> extension; |
293 extension = LoadManifest("permissions", "plugins.json"); | 295 extension = LoadManifest("permissions", "plugins.json"); |
294 std::vector<base::string16> warnings = | 296 std::vector<base::string16> warnings = |
295 PermissionsData::GetPermissionMessageStrings(extension.get()); | 297 PermissionsData::GetPermissionMessageStrings(extension.get()); |
296 // We don't parse the plugins key on Chrome OS, so it should not ask for any | 298 // We don't parse the plugins key on Chrome OS, so it should not ask for any |
297 // permissions. | 299 // permissions. |
298 #if defined(OS_CHROMEOS) | 300 #if defined(OS_CHROMEOS) |
299 ASSERT_EQ(0u, warnings.size()); | 301 ASSERT_EQ(0u, warnings.size()); |
300 #else | 302 #else |
301 ASSERT_EQ(1u, warnings.size()); | 303 ASSERT_EQ(1u, warnings.size()); |
302 EXPECT_EQ("Access all data on your computer and the websites you visit", | 304 EXPECT_EQ( |
303 UTF16ToUTF8(warnings[0])); | 305 "Read and modify all your data on your computer and the websites you " |
| 306 "visit", |
| 307 UTF16ToUTF8(warnings[0])); |
304 #endif | 308 #endif |
305 } | 309 } |
306 | 310 |
307 // Base class for testing the CanExecuteScriptOnPage and CanCaptureVisiblePage | 311 // Base class for testing the CanExecuteScriptOnPage and CanCaptureVisiblePage |
308 // methods of Extension for extensions with various permissions. | 312 // methods of Extension for extensions with various permissions. |
309 class ExtensionScriptAndCaptureVisibleTest : public testing::Test { | 313 class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
310 protected: | 314 protected: |
311 ExtensionScriptAndCaptureVisibleTest() | 315 ExtensionScriptAndCaptureVisibleTest() |
312 : http_url("http://www.google.com"), | 316 : http_url("http://www.google.com"), |
313 http_url_with_path("http://www.google.com/index.html"), | 317 http_url_with_path("http://www.google.com/index.html"), |
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
715 PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); | 719 PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); |
716 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) | 720 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) |
717 .get()); | 721 .get()); |
718 | 722 |
719 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); | 723 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
720 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); | 724 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
721 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); | 725 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
722 } | 726 } |
723 | 727 |
724 } // namespace extensions | 728 } // namespace extensions |
OLD | NEW |