| 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 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 EXPECT_EQ("Access your data on api.flickr.com", | 207 EXPECT_EQ("Access your data on api.flickr.com", |
| 208 UTF16ToUTF8(warnings[0])); | 208 UTF16ToUTF8(warnings[0])); |
| 209 EXPECT_EQ("Read and modify your bookmarks", UTF16ToUTF8(warnings[1])); | 209 EXPECT_EQ("Read and modify your bookmarks", UTF16ToUTF8(warnings[1])); |
| 210 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[2])); | 210 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[2])); |
| 211 EXPECT_EQ("Read and modify your browsing history", UTF16ToUTF8(warnings[3])); | 211 EXPECT_EQ("Read and modify your browsing history", UTF16ToUTF8(warnings[3])); |
| 212 EXPECT_EQ("Access your tabs and browsing activity", UTF16ToUTF8(warnings[4])); | 212 EXPECT_EQ("Access your tabs and browsing activity", UTF16ToUTF8(warnings[4])); |
| 213 EXPECT_EQ("Manage your apps, extensions, and themes", | 213 EXPECT_EQ("Manage your apps, extensions, and themes", |
| 214 UTF16ToUTF8(warnings[5])); | 214 UTF16ToUTF8(warnings[5])); |
| 215 } | 215 } |
| 216 | 216 |
| 217 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHostsPermissions) { |
| 218 scoped_refptr<Extension> extension; |
| 219 extension = LoadManifest("permissions", "more-than-3-hosts.json"); |
| 220 std::vector<string16> warnings = |
| 221 PermissionsData::GetPermissionMessageStrings(extension.get()); |
| 222 std::vector<string16> warnings_details = |
| 223 PermissionsData::GetPermissionMessageDetailsStrings(extension.get()); |
| 224 ASSERT_EQ(1u, warnings.size()); |
| 225 ASSERT_EQ(1u, warnings_details.size()); |
| 226 #if defined(TOOLKIT_VIEWS) |
| 227 EXPECT_EQ("Access your data on 5 website(s)", UTF16ToUTF8(warnings[0])); |
| 228 EXPECT_EQ("- www.a.com\n- www.b.com\n- www.c.com\n- www.d.com\n- www.e.com", |
| 229 UTF16ToUTF8(warnings_details[0])); |
| 230 #else |
| 231 // TODO(finnur): Remove once other platforms support expandable sections. |
| 232 EXPECT_EQ("Access your data on www.a.com, www.b.com, and 3 other websites", |
| 233 UTF16ToUTF8(warnings[0])); |
| 234 EXPECT_TRUE(warnings_details[0].empty()); |
| 235 #endif |
| 236 } |
| 237 |
| 217 TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) { | 238 TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) { |
| 218 scoped_refptr<Extension> extension; | 239 scoped_refptr<Extension> extension; |
| 219 extension = LoadManifest("permissions", | 240 extension = LoadManifest("permissions", |
| 220 "location-api.json", | 241 "location-api.json", |
| 221 Manifest::COMPONENT, | 242 Manifest::COMPONENT, |
| 222 Extension::NO_FLAGS); | 243 Extension::NO_FLAGS); |
| 223 std::vector<string16> warnings = | 244 std::vector<string16> warnings = |
| 224 PermissionsData::GetPermissionMessageStrings(extension.get()); | 245 PermissionsData::GetPermissionMessageStrings(extension.get()); |
| 225 ASSERT_EQ(1u, warnings.size()); | 246 ASSERT_EQ(1u, warnings.size()); |
| 226 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0])); | 247 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0])); |
| 227 } | 248 } |
| 228 | 249 |
| 229 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) { | 250 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) { |
| 230 scoped_refptr<Extension> extension; | 251 scoped_refptr<Extension> extension; |
| 231 extension = LoadManifest("permissions", "many-hosts.json"); | 252 extension = LoadManifest("permissions", "many-hosts.json"); |
| 232 std::vector<string16> warnings = | 253 std::vector<string16> warnings = |
| 233 PermissionsData::GetPermissionMessageStrings(extension.get()); | 254 PermissionsData::GetPermissionMessageStrings(extension.get()); |
| 234 ASSERT_EQ(1u, warnings.size()); | 255 ASSERT_EQ(1u, warnings.size()); |
| 235 EXPECT_EQ("Access your data on encrypted.google.com and www.google.com", | 256 EXPECT_EQ("Access your data on encrypted.google.com and www.google.com", |
| 236 UTF16ToUTF8(warnings[0])); | 257 UTF16ToUTF8(warnings[0])); |
| 237 } | 258 } |
| 238 | 259 |
| 239 TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) { | 260 TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) { |
| 240 scoped_refptr<Extension> extension; | 261 scoped_refptr<Extension> extension; |
| 241 extension = LoadManifest("permissions", "plugins.json"); | 262 extension = LoadManifest("permissions", "plugins.json"); |
| 242 std::vector<string16> warnings = | 263 std::vector<string16> warnings = |
| 243 PermissionsData::GetPermissionMessageStrings(extension.get()); | 264 PermissionsData::GetPermissionMessageStrings(extension.get()); |
| 244 // We don't parse the plugins key on Chrome OS, so it should not ask for any | 265 // We don't parse the plugins key on Chrome OS, so it should not ask for any |
| 245 // permissions. | 266 // permissions. |
| 246 #if defined(OS_CHROMEOS) | 267 #if defined(OS_CHROMEOS) |
| 247 ASSERT_EQ(0u, warnings.size()); | 268 ASSERT_EQ(0u, warnings.size()); |
| 248 #else | 269 #else |
| 249 ASSERT_EQ(1u, warnings.size()); | 270 ASSERT_EQ(1u, warnings.size()); |
| 250 EXPECT_EQ("Access all data on your computer and the websites you visit", | 271 EXPECT_EQ("Access all data on your computer and the websites you visit", |
| 251 UTF16ToUTF8(warnings[0])); | 272 UTF16ToUTF8(warnings[0])); |
| 252 #endif | 273 #endif |
| 253 } | 274 } |
| 254 | 275 |
| 255 // Base class for testing the CanExecuteScriptOnPage and CanCaptureVisiblePage | 276 // Base class for testing the CanExecuteScriptOnPage and CanCaptureVisiblePage |
| (...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); | 659 PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); |
| 639 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) | 660 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) |
| 640 .get()); | 661 .get()); |
| 641 | 662 |
| 642 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); | 663 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| 643 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); | 664 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| 644 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); | 665 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| 645 } | 666 } |
| 646 | 667 |
| 647 } // namespace extensions | 668 } // namespace extensions |
| OLD | NEW |