| 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 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 EXPECT_EQ(kTests[i].expect_success, | 195 EXPECT_EQ(kTests[i].expect_success, |
| 196 extension->HasAPIPermission(kTests[i].permission_name)) | 196 extension->HasAPIPermission(kTests[i].permission_name)) |
| 197 << "Permission being tested: " << kTests[i].permission_name; | 197 << "Permission being tested: " << kTests[i].permission_name; |
| 198 } | 198 } |
| 199 } | 199 } |
| 200 | 200 |
| 201 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyAPIPermissions) { | 201 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyAPIPermissions) { |
| 202 scoped_refptr<Extension> extension; | 202 scoped_refptr<Extension> extension; |
| 203 extension = LoadManifest("permissions", "many-apis.json"); | 203 extension = LoadManifest("permissions", "many-apis.json"); |
| 204 std::vector<string16> warnings = | 204 std::vector<string16> warnings = |
| 205 PermissionsData::GetPermissionMessageStrings(extension.get()); | 205 PermissionsData::GetPermissionMessageStrings(extension.get(), false); |
| 206 ASSERT_EQ(6u, warnings.size()); | 206 ASSERT_EQ(6u, warnings.size()); |
| 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(), false); |
| 222 std::vector<string16> warnings_details = |
| 223 PermissionsData::GetPermissionMessageStrings(extension.get(), true); |
| 224 ASSERT_EQ(1u, warnings.size()); |
| 225 ASSERT_EQ(1u, warnings_details.size()); |
| 226 EXPECT_EQ("Access your data on 5 websites", UTF16ToUTF8(warnings[0])); |
| 227 EXPECT_EQ("- www.a.com\n- www.b.com\n- www.c.com\n- www.d.com\n- www.e.com", |
| 228 UTF16ToUTF8(warnings_details[0])); |
| 229 } |
| 230 |
| 217 TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) { | 231 TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) { |
| 218 scoped_refptr<Extension> extension; | 232 scoped_refptr<Extension> extension; |
| 219 extension = LoadManifest("permissions", | 233 extension = LoadManifest("permissions", |
| 220 "location-api.json", | 234 "location-api.json", |
| 221 Manifest::COMPONENT, | 235 Manifest::COMPONENT, |
| 222 Extension::NO_FLAGS); | 236 Extension::NO_FLAGS); |
| 223 std::vector<string16> warnings = | 237 std::vector<string16> warnings = |
| 224 PermissionsData::GetPermissionMessageStrings(extension.get()); | 238 PermissionsData::GetPermissionMessageStrings(extension.get(), false); |
| 225 ASSERT_EQ(1u, warnings.size()); | 239 ASSERT_EQ(1u, warnings.size()); |
| 226 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0])); | 240 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0])); |
| 227 } | 241 } |
| 228 | 242 |
| 229 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) { | 243 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) { |
| 230 scoped_refptr<Extension> extension; | 244 scoped_refptr<Extension> extension; |
| 231 extension = LoadManifest("permissions", "many-hosts.json"); | 245 extension = LoadManifest("permissions", "many-hosts.json"); |
| 232 std::vector<string16> warnings = | 246 std::vector<string16> warnings = |
| 233 PermissionsData::GetPermissionMessageStrings(extension.get()); | 247 PermissionsData::GetPermissionMessageStrings(extension.get(), false); |
| 234 ASSERT_EQ(1u, warnings.size()); | 248 ASSERT_EQ(1u, warnings.size()); |
| 235 EXPECT_EQ("Access your data on encrypted.google.com and www.google.com", | 249 EXPECT_EQ("Access your data on encrypted.google.com and www.google.com", |
| 236 UTF16ToUTF8(warnings[0])); | 250 UTF16ToUTF8(warnings[0])); |
| 237 } | 251 } |
| 238 | 252 |
| 239 TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) { | 253 TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) { |
| 240 scoped_refptr<Extension> extension; | 254 scoped_refptr<Extension> extension; |
| 241 extension = LoadManifest("permissions", "plugins.json"); | 255 extension = LoadManifest("permissions", "plugins.json"); |
| 242 std::vector<string16> warnings = | 256 std::vector<string16> warnings = |
| 243 PermissionsData::GetPermissionMessageStrings(extension.get()); | 257 PermissionsData::GetPermissionMessageStrings(extension.get(), false); |
| 244 // We don't parse the plugins key on Chrome OS, so it should not ask for any | 258 // We don't parse the plugins key on Chrome OS, so it should not ask for any |
| 245 // permissions. | 259 // permissions. |
| 246 #if defined(OS_CHROMEOS) | 260 #if defined(OS_CHROMEOS) |
| 247 ASSERT_EQ(0u, warnings.size()); | 261 ASSERT_EQ(0u, warnings.size()); |
| 248 #else | 262 #else |
| 249 ASSERT_EQ(1u, warnings.size()); | 263 ASSERT_EQ(1u, warnings.size()); |
| 250 EXPECT_EQ("Access all data on your computer and the websites you visit", | 264 EXPECT_EQ("Access all data on your computer and the websites you visit", |
| 251 UTF16ToUTF8(warnings[0])); | 265 UTF16ToUTF8(warnings[0])); |
| 252 #endif | 266 #endif |
| 253 } | 267 } |
| (...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); | 652 PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); |
| 639 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) | 653 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) |
| 640 .get()); | 654 .get()); |
| 641 | 655 |
| 642 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); | 656 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| 643 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); | 657 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| 644 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); | 658 EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| 645 } | 659 } |
| 646 | 660 |
| 647 } // namespace extensions | 661 } // namespace extensions |
| OLD | NEW |