Commit ac268082 authored by Devlin Cronin's avatar Devlin Cronin Committed by Commit Bot

[Extensions Click-to-Script] Adjust tests to enable feature on ToT

Adjust a few tests so that they will pass when the
RuntimeHostPermissions feature is enabled on ToT. A follow-up will
flip the default of the feature.

Bug: 869996

Change-Id: I0b677040c228cbd7762330f2f4257d37673fdfe7
Reviewed-on: https://chromium-review.googlesource.com/c/1296814Reviewed-by: default avatarKaran Bhatia <karandeepb@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605051}
parent aa305993
...@@ -233,6 +233,10 @@ TEST_F(ExtensionInfoGeneratorUnitTest, BasicInfoTest) { ...@@ -233,6 +233,10 @@ TEST_F(ExtensionInfoGeneratorUnitTest, BasicInfoTest) {
// Enable error console for testing. // Enable error console for testing.
FeatureSwitch::ScopedOverride error_console_override( FeatureSwitch::ScopedOverride error_console_override(
FeatureSwitch::error_console(), true); FeatureSwitch::error_console(), true);
// Disable runtime host permissions - they are tested extensively below.
base::test::ScopedFeatureList feature_list;
feature_list.InitAndDisableFeature(
extensions_features::kRuntimeHostPermissions);
profile()->GetPrefs()->SetBoolean(prefs::kExtensionsUIDeveloperMode, true); profile()->GetPrefs()->SetBoolean(prefs::kExtensionsUIDeveloperMode, true);
const char kName[] = "extension name"; const char kName[] = "extension name";
...@@ -475,6 +479,10 @@ TEST_F(ExtensionInfoGeneratorUnitTest, RuntimeHostPermissions) { ...@@ -475,6 +479,10 @@ TEST_F(ExtensionInfoGeneratorUnitTest, RuntimeHostPermissions) {
} }
TEST_F(ExtensionInfoGeneratorUnitTest, RuntimeHostPermissionsWithoutFeature) { TEST_F(ExtensionInfoGeneratorUnitTest, RuntimeHostPermissionsWithoutFeature) {
base::test::ScopedFeatureList feature_list;
feature_list.InitAndDisableFeature(
extensions_features::kRuntimeHostPermissions);
// Without the runtime host permissions feature enabled, the runtime host // Without the runtime host permissions feature enabled, the runtime host
// permissions entry should always be empty. // permissions entry should always be empty.
scoped_refptr<const Extension> all_urls_extension = CreateExtension( scoped_refptr<const Extension> all_urls_extension = CreateExtension(
......
...@@ -72,18 +72,23 @@ std::vector<std::string> GetExplicitPatternsAsStrings( ...@@ -72,18 +72,23 @@ std::vector<std::string> GetExplicitPatternsAsStrings(
extension.permissions_data()->active_permissions().explicit_hosts()); extension.permissions_data()->active_permissions().explicit_hosts());
} }
class RuntimeHostPermissionsEnabledScope { class RuntimeHostPermissionsForcedScope {
public: public:
RuntimeHostPermissionsEnabledScope() { explicit RuntimeHostPermissionsForcedScope(bool enabled) {
feature_list_.InitAndEnableFeature( if (enabled) {
extensions_features::kRuntimeHostPermissions); feature_list_.InitAndEnableFeature(
extensions_features::kRuntimeHostPermissions);
} else {
feature_list_.InitAndDisableFeature(
extensions_features::kRuntimeHostPermissions);
}
} }
~RuntimeHostPermissionsEnabledScope() {} ~RuntimeHostPermissionsForcedScope() {}
private: private:
base::test::ScopedFeatureList feature_list_; base::test::ScopedFeatureList feature_list_;
DISALLOW_COPY_AND_ASSIGN(RuntimeHostPermissionsEnabledScope); DISALLOW_COPY_AND_ASSIGN(RuntimeHostPermissionsForcedScope);
}; };
void InitializeExtensionPermissions(Profile* profile, void InitializeExtensionPermissions(Profile* profile,
...@@ -101,7 +106,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GrantAndWithholdHostPermissions) { ...@@ -101,7 +106,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GrantAndWithholdHostPermissions) {
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
// Permissions can only be withheld with the appropriate feature turned on. // Permissions can only be withheld with the appropriate feature turned on.
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
std::vector<std::string> test_cases[] = { std::vector<std::string> test_cases[] = {
{"http://www.google.com/*"}, {"http://www.google.com/*"},
...@@ -176,7 +181,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, SwitchBehavior) { ...@@ -176,7 +181,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, SwitchBehavior) {
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
// Permissions can only be withheld with the appropriate feature turned on. // Permissions can only be withheld with the appropriate feature turned on.
auto enabled_scope = std::make_unique<RuntimeHostPermissionsEnabledScope>(); auto forced_scope = std::make_unique<RuntimeHostPermissionsForcedScope>(true);
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
ExtensionBuilder("a") ExtensionBuilder("a")
...@@ -205,7 +210,8 @@ TEST_F(ScriptingPermissionsModifierUnitTest, SwitchBehavior) { ...@@ -205,7 +210,8 @@ TEST_F(ScriptingPermissionsModifierUnitTest, SwitchBehavior) {
testing::UnorderedElementsAre(URLPattern::kAllUrlsPattern)); testing::UnorderedElementsAre(URLPattern::kAllUrlsPattern));
// Remove the switch. The extension should have permission again. // Remove the switch. The extension should have permission again.
enabled_scope.reset(); forced_scope.reset(); // Let the old scope destruct before creating another.
forced_scope = std::make_unique<RuntimeHostPermissionsForcedScope>(false);
updater.InitializePermissions(extension.get()); updater.InitializePermissions(extension.get());
EXPECT_FALSE(modifier.CanAffectExtension()); EXPECT_FALSE(modifier.CanAffectExtension());
EXPECT_THAT(GetEffectivePatternsAsStrings(*extension), EXPECT_THAT(GetEffectivePatternsAsStrings(*extension),
...@@ -215,7 +221,8 @@ TEST_F(ScriptingPermissionsModifierUnitTest, SwitchBehavior) { ...@@ -215,7 +221,8 @@ TEST_F(ScriptingPermissionsModifierUnitTest, SwitchBehavior) {
// Reapply the switch; the extension should go back to having permissions // Reapply the switch; the extension should go back to having permissions
// withheld. // withheld.
enabled_scope = std::make_unique<RuntimeHostPermissionsEnabledScope>(); forced_scope.reset(); // Let the old scope destruct before creating another.
forced_scope = std::make_unique<RuntimeHostPermissionsForcedScope>(true);
updater.InitializePermissions(extension.get()); updater.InitializePermissions(extension.get());
EXPECT_TRUE(modifier.HasWithheldHostPermissions()); EXPECT_TRUE(modifier.HasWithheldHostPermissions());
EXPECT_THAT(GetEffectivePatternsAsStrings(*extension), testing::IsEmpty()); EXPECT_THAT(GetEffectivePatternsAsStrings(*extension), testing::IsEmpty());
...@@ -228,7 +235,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GrantHostPermission) { ...@@ -228,7 +235,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GrantHostPermission) {
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
// Permissions can only be withheld with the appropriate feature turned on. // Permissions can only be withheld with the appropriate feature turned on.
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
ExtensionBuilder("extension") ExtensionBuilder("extension")
...@@ -288,7 +295,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GrantHostPermission) { ...@@ -288,7 +295,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GrantHostPermission) {
} }
TEST_F(ScriptingPermissionsModifierUnitTest, CanAffectExtensionByLocation) { TEST_F(ScriptingPermissionsModifierUnitTest, CanAffectExtensionByLocation) {
auto enabled_scope = std::make_unique<RuntimeHostPermissionsEnabledScope>(); auto forced_scope = std::make_unique<RuntimeHostPermissionsForcedScope>(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
...@@ -313,7 +320,8 @@ TEST_F(ScriptingPermissionsModifierUnitTest, CanAffectExtensionByLocation) { ...@@ -313,7 +320,8 @@ TEST_F(ScriptingPermissionsModifierUnitTest, CanAffectExtensionByLocation) {
<< test_case.location; << test_case.location;
} }
enabled_scope.reset(); forced_scope.reset(); // Let the old scope destruct before creating another.
forced_scope = std::make_unique<RuntimeHostPermissionsForcedScope>(false);
// With the feature disabled, no extension should be able to be affected. // With the feature disabled, no extension should be able to be affected.
for (const auto& test_case : test_cases) { for (const auto& test_case : test_cases) {
...@@ -331,7 +339,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, CanAffectExtensionByLocation) { ...@@ -331,7 +339,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, CanAffectExtensionByLocation) {
TEST_F(ScriptingPermissionsModifierUnitTest, TEST_F(ScriptingPermissionsModifierUnitTest,
ExtensionsInitializedWithSavedRuntimeGrantedHostPermissionsAcrossLoad) { ExtensionsInitializedWithSavedRuntimeGrantedHostPermissionsAcrossLoad) {
// Permissions can only be withheld with the appropriate feature turned on. // Permissions can only be withheld with the appropriate feature turned on.
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
...@@ -403,7 +411,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, ...@@ -403,7 +411,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
// hosts granted through the ScriptingPermissionsModifier. // hosts granted through the ScriptingPermissionsModifier.
TEST_F(ScriptingPermissionsModifierUnitTest, TEST_F(ScriptingPermissionsModifierUnitTest,
RemoveAllGrantedHostPermissions_GrantedHosts) { RemoveAllGrantedHostPermissions_GrantedHosts) {
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
...@@ -430,7 +438,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, ...@@ -430,7 +438,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
// don't request <all_urls>. // don't request <all_urls>.
TEST_F(ScriptingPermissionsModifierUnitTest, TEST_F(ScriptingPermissionsModifierUnitTest,
RemoveAllGrantedHostPermissions_GrantedHostsForNonAllUrlsExtension) { RemoveAllGrantedHostPermissions_GrantedHostsForNonAllUrlsExtension) {
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
...@@ -458,7 +466,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, ...@@ -458,7 +466,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
// granted optional host permissions. // granted optional host permissions.
TEST_F(ScriptingPermissionsModifierUnitTest, TEST_F(ScriptingPermissionsModifierUnitTest,
RemoveAllGrantedHostPermissions_GrantedOptionalPermissions) { RemoveAllGrantedHostPermissions_GrantedOptionalPermissions) {
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
...@@ -494,7 +502,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, ...@@ -494,7 +502,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
// wants to run on a subset of that host. // wants to run on a subset of that host.
TEST_F(ScriptingPermissionsModifierUnitTest, TEST_F(ScriptingPermissionsModifierUnitTest,
GrantingHostPermissionsBeyondRequested) { GrantingHostPermissionsBeyondRequested) {
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
DictionaryBuilder content_script; DictionaryBuilder content_script;
...@@ -544,7 +552,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, ...@@ -544,7 +552,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
} }
TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_AllHostsExtension) { TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_AllHostsExtension) {
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
...@@ -629,7 +637,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_AllHostsExtension) { ...@@ -629,7 +637,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_AllHostsExtension) {
TEST_F(ScriptingPermissionsModifierUnitTest, TEST_F(ScriptingPermissionsModifierUnitTest,
GetSiteAccess_AllHostsLikeExtension) { GetSiteAccess_AllHostsLikeExtension) {
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
...@@ -670,7 +678,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, ...@@ -670,7 +678,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
} }
TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_SpecificSites) { TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_SpecificSites) {
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
...@@ -713,7 +721,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_SpecificSites) { ...@@ -713,7 +721,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_SpecificSites) {
TEST_F(ScriptingPermissionsModifierUnitTest, TEST_F(ScriptingPermissionsModifierUnitTest,
GetSiteAccess_GrantedButNotRequested) { GetSiteAccess_GrantedButNotRequested) {
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
...@@ -747,7 +755,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, ...@@ -747,7 +755,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
// Tests that for the purposes of displaying an extension's site access to the // Tests that for the purposes of displaying an extension's site access to the
// user (or granting/revoking permissions), we ignore paths in the URL. // user (or granting/revoking permissions), we ignore paths in the URL.
TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_IgnorePaths) { TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_IgnorePaths) {
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
...@@ -787,7 +795,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_IgnorePaths) { ...@@ -787,7 +795,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_IgnorePaths) {
// to that host. // to that host.
TEST_F(ScriptingPermissionsModifierUnitTest, TEST_F(ScriptingPermissionsModifierUnitTest,
RemoveHostAccess_RemovesOverlappingPatterns) { RemoveHostAccess_RemovesOverlappingPatterns) {
RuntimeHostPermissionsEnabledScope enabled_scope; RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService(); InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension = scoped_refptr<const Extension> extension =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment