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) {
// Enable error console for testing.
FeatureSwitch::ScopedOverride error_console_override(
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);
const char kName[] = "extension name";
......@@ -475,6 +479,10 @@ TEST_F(ExtensionInfoGeneratorUnitTest, RuntimeHostPermissions) {
}
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
// permissions entry should always be empty.
scoped_refptr<const Extension> all_urls_extension = CreateExtension(
......
......@@ -72,18 +72,23 @@ std::vector<std::string> GetExplicitPatternsAsStrings(
extension.permissions_data()->active_permissions().explicit_hosts());
}
class RuntimeHostPermissionsEnabledScope {
class RuntimeHostPermissionsForcedScope {
public:
RuntimeHostPermissionsEnabledScope() {
feature_list_.InitAndEnableFeature(
extensions_features::kRuntimeHostPermissions);
explicit RuntimeHostPermissionsForcedScope(bool enabled) {
if (enabled) {
feature_list_.InitAndEnableFeature(
extensions_features::kRuntimeHostPermissions);
} else {
feature_list_.InitAndDisableFeature(
extensions_features::kRuntimeHostPermissions);
}
}
~RuntimeHostPermissionsEnabledScope() {}
~RuntimeHostPermissionsForcedScope() {}
private:
base::test::ScopedFeatureList feature_list_;
DISALLOW_COPY_AND_ASSIGN(RuntimeHostPermissionsEnabledScope);
DISALLOW_COPY_AND_ASSIGN(RuntimeHostPermissionsForcedScope);
};
void InitializeExtensionPermissions(Profile* profile,
......@@ -101,7 +106,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GrantAndWithholdHostPermissions) {
InitializeEmptyExtensionService();
// Permissions can only be withheld with the appropriate feature turned on.
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
std::vector<std::string> test_cases[] = {
{"http://www.google.com/*"},
......@@ -176,7 +181,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, SwitchBehavior) {
InitializeEmptyExtensionService();
// 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 =
ExtensionBuilder("a")
......@@ -205,7 +210,8 @@ TEST_F(ScriptingPermissionsModifierUnitTest, SwitchBehavior) {
testing::UnorderedElementsAre(URLPattern::kAllUrlsPattern));
// 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());
EXPECT_FALSE(modifier.CanAffectExtension());
EXPECT_THAT(GetEffectivePatternsAsStrings(*extension),
......@@ -215,7 +221,8 @@ TEST_F(ScriptingPermissionsModifierUnitTest, SwitchBehavior) {
// Reapply the switch; the extension should go back to having permissions
// 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());
EXPECT_TRUE(modifier.HasWithheldHostPermissions());
EXPECT_THAT(GetEffectivePatternsAsStrings(*extension), testing::IsEmpty());
......@@ -228,7 +235,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GrantHostPermission) {
InitializeEmptyExtensionService();
// Permissions can only be withheld with the appropriate feature turned on.
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
scoped_refptr<const Extension> extension =
ExtensionBuilder("extension")
......@@ -288,7 +295,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GrantHostPermission) {
}
TEST_F(ScriptingPermissionsModifierUnitTest, CanAffectExtensionByLocation) {
auto enabled_scope = std::make_unique<RuntimeHostPermissionsEnabledScope>();
auto forced_scope = std::make_unique<RuntimeHostPermissionsForcedScope>(true);
InitializeEmptyExtensionService();
......@@ -313,7 +320,8 @@ TEST_F(ScriptingPermissionsModifierUnitTest, CanAffectExtensionByLocation) {
<< 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.
for (const auto& test_case : test_cases) {
......@@ -331,7 +339,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, CanAffectExtensionByLocation) {
TEST_F(ScriptingPermissionsModifierUnitTest,
ExtensionsInitializedWithSavedRuntimeGrantedHostPermissionsAcrossLoad) {
// Permissions can only be withheld with the appropriate feature turned on.
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
......@@ -403,7 +411,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
// hosts granted through the ScriptingPermissionsModifier.
TEST_F(ScriptingPermissionsModifierUnitTest,
RemoveAllGrantedHostPermissions_GrantedHosts) {
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension =
......@@ -430,7 +438,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
// don't request <all_urls>.
TEST_F(ScriptingPermissionsModifierUnitTest,
RemoveAllGrantedHostPermissions_GrantedHostsForNonAllUrlsExtension) {
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension =
......@@ -458,7 +466,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
// granted optional host permissions.
TEST_F(ScriptingPermissionsModifierUnitTest,
RemoveAllGrantedHostPermissions_GrantedOptionalPermissions) {
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension =
......@@ -494,7 +502,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
// wants to run on a subset of that host.
TEST_F(ScriptingPermissionsModifierUnitTest,
GrantingHostPermissionsBeyondRequested) {
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
DictionaryBuilder content_script;
......@@ -544,7 +552,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
}
TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_AllHostsExtension) {
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension =
......@@ -629,7 +637,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_AllHostsExtension) {
TEST_F(ScriptingPermissionsModifierUnitTest,
GetSiteAccess_AllHostsLikeExtension) {
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension =
......@@ -670,7 +678,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
}
TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_SpecificSites) {
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension =
......@@ -713,7 +721,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_SpecificSites) {
TEST_F(ScriptingPermissionsModifierUnitTest,
GetSiteAccess_GrantedButNotRequested) {
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension =
......@@ -747,7 +755,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest,
// 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.
TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_IgnorePaths) {
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
scoped_refptr<const Extension> extension =
......@@ -787,7 +795,7 @@ TEST_F(ScriptingPermissionsModifierUnitTest, GetSiteAccess_IgnorePaths) {
// to that host.
TEST_F(ScriptingPermissionsModifierUnitTest,
RemoveHostAccess_RemovesOverlappingPatterns) {
RuntimeHostPermissionsEnabledScope enabled_scope;
RuntimeHostPermissionsForcedScope enabled_scope(true);
InitializeEmptyExtensionService();
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