Chromium Code Reviews| Index: extensions/common/permissions/permissions_data_unittest.cc |
| diff --git a/extensions/common/permissions/permissions_data_unittest.cc b/extensions/common/permissions/permissions_data_unittest.cc |
| index 294d106d202f4ba3d959ea89364bd50a9debe37f..32fc179735ca897f5421049f49e4782b5b91b21c 100644 |
| --- a/extensions/common/permissions/permissions_data_unittest.cc |
| +++ b/extensions/common/permissions/permissions_data_unittest.cc |
| @@ -248,8 +248,13 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
| bool AllowedScript(const Extension* extension, const GURL& url, |
| const GURL& top_url) { |
| + return AllowedScript(extension, url, top_url, -1); |
| + } |
| + |
| + bool AllowedScript(const Extension* extension, const GURL& url, |
| + const GURL& top_url, int tab_id) { |
| return PermissionsData::CanExecuteScriptOnPage( |
| - extension, url, top_url, -1, NULL, -1, NULL); |
| + extension, url, top_url, tab_id, NULL, -1, NULL); |
| } |
| bool BlockedScript(const Extension* extension, const GURL& url, |
| @@ -266,7 +271,7 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
| return (PermissionsData::CanExecuteScriptOnPage( |
| extension, url, url, tab_id, NULL, -1, NULL) && |
| PermissionsData::CanCaptureVisiblePage( |
| - extension, url, tab_id, NULL)); |
| + extension, tab_id, NULL)); |
| } |
| bool CaptureOnly(const Extension* extension, const GURL& url) { |
| @@ -276,7 +281,7 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
| bool CaptureOnly(const Extension* extension, const GURL& url, int tab_id) { |
| return !PermissionsData::CanExecuteScriptOnPage( |
| extension, url, url, tab_id, NULL, -1, NULL) && |
| - PermissionsData::CanCaptureVisiblePage(extension, url, tab_id, NULL); |
| + PermissionsData::CanCaptureVisiblePage(extension, tab_id, NULL); |
| } |
| bool Blocked(const Extension* extension, const GURL& url) { |
| @@ -287,10 +292,10 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
| return !(PermissionsData::CanExecuteScriptOnPage( |
| extension, url, url, tab_id, NULL, -1, NULL) || |
| PermissionsData::CanCaptureVisiblePage( |
| - extension, url, tab_id, NULL)); |
| + extension, tab_id, NULL)); |
| } |
| - bool AllowedExclusivelyOnTab( |
| + bool ScriptAllowedExclusivelyOnTab( |
| const Extension* extension, |
| const std::set<GURL>& allowed_urls, |
| int tab_id) { |
| @@ -298,7 +303,7 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
| for (std::set<GURL>::iterator it = urls_.begin(); it != urls_.end(); ++it) { |
| const GURL& url = *it; |
| if (allowed_urls.count(url)) |
| - result &= Allowed(extension, url, tab_id); |
| + result &= AllowedScript(extension, url, url, tab_id); |
| else |
| result &= Blocked(extension, url, tab_id); |
| } |
| @@ -333,11 +338,11 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) { |
| EXPECT_TRUE(Allowed(extension.get(), http_url)); |
| EXPECT_TRUE(Allowed(extension.get(), https_url)); |
| - EXPECT_TRUE(Blocked(extension.get(), file_url)); |
| - EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
| + EXPECT_TRUE(CaptureOnly(extension.get(), file_url)); |
| + EXPECT_TRUE(CaptureOnly(extension.get(), settings_url)); |
| EXPECT_TRUE(CaptureOnly(extension.get(), favicon_url)); |
| - EXPECT_TRUE(Blocked(extension.get(), about_url)); |
| - EXPECT_TRUE(Blocked(extension.get(), extension_url)); |
| + EXPECT_TRUE(CaptureOnly(extension.get(), about_url)); |
| + EXPECT_TRUE(CaptureOnly(extension.get(), extension_url)); |
| // Test access to iframed content. |
| GURL within_extension_url = extension->GetResourceURL("page.html"); |
| @@ -356,8 +361,10 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) { |
| // Test * for scheme, which implies just the http/https schemes. |
| extension = LoadManifestStrict("script_and_capture", |
| "extension_wildcard.json"); |
| - EXPECT_TRUE(Allowed(extension.get(), http_url)); |
| - EXPECT_TRUE(Allowed(extension.get(), https_url)); |
| + EXPECT_TRUE(AllowedScript(extension.get(), http_url, http_url)); |
| + EXPECT_TRUE(AllowedScript(extension.get(), https_url, https_url)); |
| + EXPECT_FALSE(Allowed(extension.get(), http_url)); |
| + EXPECT_FALSE(Allowed(extension.get(), https_url)); |
|
not at google - send to devlin
2014/01/21 21:44:21
maybe we need a "ScriptOnly" method?
sadrul
2014/01/23 20:11:14
Done.
|
| EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
| EXPECT_TRUE(Blocked(extension.get(), about_url)); |
| EXPECT_TRUE(Blocked(extension.get(), file_url)); |
| @@ -387,7 +394,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) { |
| extension = LoadManifestStrict("script_and_capture", |
| "extension_chrome_favicon_wildcard.json"); |
| EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
| - EXPECT_TRUE(CaptureOnly(extension.get(), favicon_url)); |
| + EXPECT_TRUE(Blocked(extension.get(), favicon_url)); |
| EXPECT_TRUE(Blocked(extension.get(), about_url)); |
| EXPECT_TRUE(PermissionsData::HasHostPermission(extension.get(), favicon_url)); |
| @@ -411,7 +418,8 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) { |
| extension = LoadManifest("script_and_capture", |
| "extension_component_google.json", Manifest::COMPONENT, |
| Extension::NO_FLAGS); |
| - EXPECT_TRUE(Allowed(extension.get(), http_url)); |
| + EXPECT_TRUE(AllowedScript(extension.get(), http_url, http_url)); |
| + EXPECT_FALSE(Allowed(extension.get(), http_url)); |
| EXPECT_TRUE(Blocked(extension.get(), https_url)); |
| EXPECT_TRUE(Blocked(extension.get(), file_url)); |
| EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
| @@ -433,11 +441,11 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) { |
| "extension_regular_all.json"); |
| EXPECT_TRUE(Allowed(extension.get(), http_url)); |
| EXPECT_TRUE(Allowed(extension.get(), https_url)); |
| - EXPECT_TRUE(Blocked(extension.get(), file_url)); |
| - EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
| + EXPECT_TRUE(CaptureOnly(extension.get(), file_url)); |
| + EXPECT_TRUE(CaptureOnly(extension.get(), settings_url)); |
| EXPECT_TRUE(Allowed(extension.get(), favicon_url)); // chrome:// requested |
| - EXPECT_TRUE(Blocked(extension.get(), about_url)); |
| - EXPECT_TRUE(Blocked(extension.get(), extension_url)); |
| + EXPECT_TRUE(CaptureOnly(extension.get(), about_url)); |
| + EXPECT_TRUE(CaptureOnly(extension.get(), extension_url)); |
| // Test access to iframed content. |
| GURL within_extension_url = extension->GetResourceURL("page.html"); |
| @@ -456,8 +464,10 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) { |
| // Test * for scheme, which implies just the http/https schemes. |
| extension = LoadManifestStrict("script_and_capture", |
| "extension_wildcard.json"); |
| - EXPECT_TRUE(Allowed(extension.get(), http_url)); |
| - EXPECT_TRUE(Allowed(extension.get(), https_url)); |
| + EXPECT_FALSE(Allowed(extension.get(), http_url)); |
| + EXPECT_FALSE(Allowed(extension.get(), https_url)); |
| + EXPECT_TRUE(AllowedScript(extension.get(), http_url, http_url)); |
| + EXPECT_TRUE(AllowedScript(extension.get(), https_url, https_url)); |
| EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
| EXPECT_TRUE(Blocked(extension.get(), about_url)); |
| EXPECT_TRUE(Blocked(extension.get(), file_url)); |
| @@ -476,16 +486,19 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) { |
| EXPECT_FALSE(extension.get() == NULL); |
| EXPECT_TRUE(Blocked(extension.get(), http_url)); |
| EXPECT_TRUE(Blocked(extension.get(), https_url)); |
| - EXPECT_TRUE(Allowed(extension.get(), settings_url)); |
| + EXPECT_FALSE(Allowed(extension.get(), settings_url)); |
| + EXPECT_TRUE(AllowedScript(extension.get(), settings_url, settings_url)); |
| EXPECT_TRUE(Blocked(extension.get(), about_url)); |
| EXPECT_TRUE(Blocked(extension.get(), file_url)); |
| - EXPECT_TRUE(Allowed(extension.get(), favicon_url)); // chrome:// requested |
| + EXPECT_FALSE(Allowed(extension.get(), favicon_url)); |
| + EXPECT_TRUE(AllowedScript(extension.get(), favicon_url, favicon_url)); |
| // Having chrome://favicon/* should not give you chrome://* |
| extension = LoadManifestStrict("script_and_capture", |
| "extension_chrome_favicon_wildcard.json"); |
| EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
| - EXPECT_TRUE(Allowed(extension.get(), favicon_url)); // chrome:// requested |
| + EXPECT_FALSE(Allowed(extension.get(), favicon_url)); |
| + EXPECT_TRUE(AllowedScript(extension.get(), favicon_url, favicon_url)); |
| EXPECT_TRUE(Blocked(extension.get(), about_url)); |
| EXPECT_TRUE(PermissionsData::HasHostPermission(extension.get(), favicon_url)); |
| @@ -509,7 +522,8 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) { |
| extension = LoadManifest("script_and_capture", |
| "extension_component_google.json", Manifest::COMPONENT, |
| Extension::NO_FLAGS); |
| - EXPECT_TRUE(Allowed(extension.get(), http_url)); |
| + EXPECT_FALSE(Allowed(extension.get(), http_url)); |
| + EXPECT_TRUE(AllowedScript(extension.get(), http_url, http_url)); |
| EXPECT_TRUE(Blocked(extension.get(), https_url)); |
| EXPECT_TRUE(Blocked(extension.get(), file_url)); |
| EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
| @@ -533,9 +547,9 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, TabSpecific) { |
| std::set<GURL> no_urls; |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| URLPatternSet allowed_hosts; |
| allowed_hosts.AddPattern(URLPattern(URLPattern::SCHEME_ALL, |
| @@ -558,17 +572,17 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, TabSpecific) { |
| ->explicit_hosts()); |
| } |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| PermissionsData::ClearTabSpecificPermissions(extension.get(), 0); |
| EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 0) |
| .get()); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| std::set<GURL> more_allowed_urls = allowed_urls; |
| more_allowed_urls.insert(https_url); |
| @@ -597,25 +611,27 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, TabSpecific) { |
| ->explicit_hosts()); |
| } |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), more_allowed_urls, 1)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); |
| + EXPECT_TRUE( |
| + ScriptAllowedExclusivelyOnTab(extension.get(), more_allowed_urls, 1)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| PermissionsData::ClearTabSpecificPermissions(extension.get(), 0); |
| EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 0) |
| .get()); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), more_allowed_urls, 1)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| + EXPECT_TRUE( |
| + ScriptAllowedExclusivelyOnTab(extension.get(), more_allowed_urls, 1)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); |
| EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) |
| .get()); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| - EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
| + EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
| } |
| } // namespace extensions |