| Index: chrome/browser/extensions/policy_handlers_unittest.cc
|
| diff --git a/chrome/browser/extensions/policy_handlers_unittest.cc b/chrome/browser/extensions/policy_handlers_unittest.cc
|
| index a3d9e006c7a8c74b528606705956564c827d86f9..dfdeeca44d1562009a34bb0d0878114164436d3b 100644
|
| --- a/chrome/browser/extensions/policy_handlers_unittest.cc
|
| +++ b/chrome/browser/extensions/policy_handlers_unittest.cc
|
| @@ -2,6 +2,8 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include <utility>
|
| +
|
| #include "base/json/json_reader.h"
|
| #include "chrome/browser/extensions/external_policy_loader.h"
|
| #include "chrome/browser/extensions/policy_handlers.h"
|
| @@ -42,44 +44,32 @@ TEST(ExtensionListPolicyHandlerTest, CheckPolicySettings) {
|
| policy::key::kExtensionInstallBlacklist, kTestPref, true);
|
|
|
| policy_map.Set(policy::key::kExtensionInstallBlacklist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_TRUE(errors.empty());
|
|
|
| list.Append(new base::StringValue("abcdefghijklmnopabcdefghijklmnop"));
|
| policy_map.Set(policy::key::kExtensionInstallBlacklist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_TRUE(errors.empty());
|
|
|
| list.Append(new base::StringValue("*"));
|
| policy_map.Set(policy::key::kExtensionInstallBlacklist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_TRUE(errors.empty());
|
|
|
| list.Append(new base::StringValue("invalid"));
|
| policy_map.Set(policy::key::kExtensionInstallBlacklist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_FALSE(errors.empty());
|
| @@ -100,22 +90,16 @@ TEST(ExtensionListPolicyHandlerTest, ApplyPolicySettings) {
|
| expected.Append(new base::StringValue("abcdefghijklmnopabcdefghijklmnop"));
|
|
|
| policy_map.Set(policy::key::kExtensionInstallBlacklist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - policy.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, policy.CreateDeepCopy(), nullptr);
|
| handler.ApplyPolicySettings(policy_map, &prefs);
|
| EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
|
| EXPECT_TRUE(base::Value::Equals(&expected, value));
|
|
|
| policy.Append(new base::StringValue("invalid"));
|
| policy_map.Set(policy::key::kExtensionInstallBlacklist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - policy.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, policy.CreateDeepCopy(), nullptr);
|
| handler.ApplyPolicySettings(policy_map, &prefs);
|
| EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
|
| EXPECT_TRUE(base::Value::Equals(&expected, value));
|
| @@ -128,22 +112,16 @@ TEST(ExtensionInstallForcelistPolicyHandlerTest, CheckPolicySettings) {
|
| ExtensionInstallForcelistPolicyHandler handler;
|
|
|
| policy_map.Set(policy::key::kExtensionInstallForcelist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_TRUE(errors.empty());
|
|
|
| list.AppendString("abcdefghijklmnopabcdefghijklmnop;http://example.com");
|
| policy_map.Set(policy::key::kExtensionInstallForcelist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_TRUE(errors.empty());
|
| @@ -152,11 +130,8 @@ TEST(ExtensionInstallForcelistPolicyHandlerTest, CheckPolicySettings) {
|
| // entry should still be translated successfully.
|
| list.AppendString("adfasdf;http://example.com");
|
| policy_map.Set(policy::key::kExtensionInstallForcelist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_EQ(1U, errors.size());
|
| @@ -164,11 +139,8 @@ TEST(ExtensionInstallForcelistPolicyHandlerTest, CheckPolicySettings) {
|
| // Add an entry with bad URL, which should generate another error.
|
| list.AppendString("abcdefghijklmnopabcdefghijklmnop;nourl");
|
| policy_map.Set(policy::key::kExtensionInstallForcelist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_EQ(2U, errors.size());
|
| @@ -176,11 +148,8 @@ TEST(ExtensionInstallForcelistPolicyHandlerTest, CheckPolicySettings) {
|
| // Just an extension ID should also generate an error.
|
| list.AppendString("abcdefghijklmnopabcdefghijklmnop");
|
| policy_map.Set(policy::key::kExtensionInstallForcelist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_EQ(3U, errors.size());
|
| @@ -199,11 +168,8 @@ TEST(ExtensionInstallForcelistPolicyHandlerTest, ApplyPolicySettings) {
|
| EXPECT_FALSE(value);
|
|
|
| policy_map.Set(policy::key::kExtensionInstallForcelist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - policy.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, policy.CreateDeepCopy(), nullptr);
|
| handler.ApplyPolicySettings(policy_map, &prefs);
|
| EXPECT_TRUE(prefs.GetValue(pref_names::kInstallForceList, &value));
|
| EXPECT_TRUE(base::Value::Equals(&expected, value));
|
| @@ -212,22 +178,16 @@ TEST(ExtensionInstallForcelistPolicyHandlerTest, ApplyPolicySettings) {
|
| extensions::ExternalPolicyLoader::AddExtension(
|
| &expected, "abcdefghijklmnopabcdefghijklmnop", "http://example.com");
|
| policy_map.Set(policy::key::kExtensionInstallForcelist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - policy.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, policy.CreateDeepCopy(), nullptr);
|
| handler.ApplyPolicySettings(policy_map, &prefs);
|
| EXPECT_TRUE(prefs.GetValue(pref_names::kInstallForceList, &value));
|
| EXPECT_TRUE(base::Value::Equals(&expected, value));
|
|
|
| policy.AppendString("invalid");
|
| policy_map.Set(policy::key::kExtensionInstallForcelist,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - policy.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, policy.CreateDeepCopy(), nullptr);
|
| handler.ApplyPolicySettings(policy_map, &prefs);
|
| EXPECT_TRUE(prefs.GetValue(pref_names::kInstallForceList, &value));
|
| EXPECT_TRUE(base::Value::Equals(&expected, value));
|
| @@ -241,44 +201,32 @@ TEST(ExtensionURLPatternListPolicyHandlerTest, CheckPolicySettings) {
|
| policy::key::kExtensionInstallSources, kTestPref);
|
|
|
| policy_map.Set(policy::key::kExtensionInstallSources,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_TRUE(errors.empty());
|
|
|
| list.Append(new base::StringValue("http://*.google.com/*"));
|
| policy_map.Set(policy::key::kExtensionInstallSources,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_TRUE(errors.empty());
|
|
|
| list.Append(new base::StringValue("<all_urls>"));
|
| policy_map.Set(policy::key::kExtensionInstallSources,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_TRUE(errors.empty());
|
|
|
| list.Append(new base::StringValue("invalid"));
|
| policy_map.Set(policy::key::kExtensionInstallSources,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_FALSE(errors.empty());
|
| @@ -288,11 +236,8 @@ TEST(ExtensionURLPatternListPolicyHandlerTest, CheckPolicySettings) {
|
| // would be compatible today, it would be brittle, so we disallow.
|
| list.Append(new base::StringValue("*"));
|
| policy_map.Set(policy::key::kExtensionInstallSources,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| errors.Clear();
|
| EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_FALSE(errors.empty());
|
| @@ -309,11 +254,8 @@ TEST(ExtensionURLPatternListPolicyHandlerTest, ApplyPolicySettings) {
|
|
|
| list.Append(new base::StringValue("https://corp.monkey.net/*"));
|
| policy_map.Set(policy::key::kExtensionInstallSources,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - list.DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
|
| handler.ApplyPolicySettings(policy_map, &prefs);
|
| ASSERT_TRUE(prefs.GetValue(kTestPref, &value));
|
| EXPECT_TRUE(base::Value::Equals(&list, value));
|
| @@ -334,11 +276,8 @@ TEST(ExtensionSettingsPolicyHandlerTest, CheckPolicySettings) {
|
| ExtensionSettingsPolicyHandler handler(chrome_schema);
|
|
|
| policy_map.Set(policy::key::kExtensionSettings,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - policy_value.release(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, std::move(policy_value), nullptr);
|
| // CheckPolicySettings() fails due to missing update URL.
|
| EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
|
| EXPECT_FALSE(errors.empty());
|
| @@ -360,11 +299,9 @@ TEST(ExtensionSettingsPolicyHandlerTest, ApplyPolicySettings) {
|
| ExtensionSettingsPolicyHandler handler(chrome_schema);
|
|
|
| policy_map.Set(policy::key::kExtensionSettings,
|
| - policy::POLICY_LEVEL_MANDATORY,
|
| - policy::POLICY_SCOPE_USER,
|
| - policy::POLICY_SOURCE_CLOUD,
|
| - policy_value->DeepCopy(),
|
| - NULL);
|
| + policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
|
| + policy::POLICY_SOURCE_CLOUD, policy_value->CreateDeepCopy(),
|
| + nullptr);
|
| EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
|
| handler.ApplyPolicySettings(policy_map, &prefs);
|
| base::Value* value = NULL;
|
|
|