| Index: chrome/browser/policy/configuration_policy_pref_store_unittest.cc
|
| diff --git a/chrome/browser/policy/configuration_policy_pref_store_unittest.cc b/chrome/browser/policy/configuration_policy_pref_store_unittest.cc
|
| index 5dad5dc033823fa12199adeea59d30d3b125ed38..895363c1121ea390ac259af5b24dca2f307cc68c 100644
|
| --- a/chrome/browser/policy/configuration_policy_pref_store_unittest.cc
|
| +++ b/chrome/browser/policy/configuration_policy_pref_store_unittest.cc
|
| @@ -2,14 +2,19 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include <gtest/gtest.h>
|
| -
|
| #include "base/file_path.h"
|
| #include "chrome/browser/policy/configuration_policy_pref_store.h"
|
| #include "chrome/browser/policy/mock_configuration_policy_provider.h"
|
| #include "chrome/browser/prefs/proxy_prefs.h"
|
| -#include "chrome/common/pref_names.h"
|
| #include "chrome/common/chrome_switches.h"
|
| +#include "chrome/common/notification_service.h"
|
| +#include "chrome/common/pref_names.h"
|
| +#include "chrome/common/pref_store_observer_mock.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +using testing::_;
|
| +using testing::Mock;
|
|
|
| namespace policy {
|
|
|
| @@ -35,6 +40,13 @@ class ConfigurationPolicyPrefStoreTestBase : public TESTBASE {
|
| : provider_(),
|
| store_(&provider_) {}
|
|
|
| + void RefreshPolicy() {
|
| + NotificationService::current()->Notify(
|
| + NotificationType::POLICY_CHANGED,
|
| + Source<ConfigurationPolicyProvider>(&provider_),
|
| + NotificationService::NoDetails());
|
| + }
|
| +
|
| MockConfigurationPolicyProvider provider_;
|
| ConfigurationPolicyPrefStore store_;
|
| };
|
| @@ -46,29 +58,20 @@ class ConfigurationPolicyPrefStoreListTest
|
| };
|
|
|
| TEST_P(ConfigurationPolicyPrefStoreListTest, GetDefault) {
|
| - ListValue* list = NULL;
|
| - EXPECT_FALSE(store_.prefs()->GetList(GetParam().pref_name(), &list));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store_.GetValue(GetParam().pref_name(), NULL));
|
| }
|
|
|
| TEST_P(ConfigurationPolicyPrefStoreListTest, SetValue) {
|
| ListValue* in_value = new ListValue();
|
| in_value->Append(Value::CreateStringValue("test1"));
|
| in_value->Append(Value::CreateStringValue("test2,"));
|
| - store_.Apply(GetParam().type(), in_value);
|
| - ListValue* list = NULL;
|
| - EXPECT_TRUE(store_.prefs()->GetList(GetParam().pref_name(), &list));
|
| - ListValue::const_iterator current(list->begin());
|
| - const ListValue::const_iterator end(list->end());
|
| - ASSERT_TRUE(current != end);
|
| - std::string value;
|
| - (*current)->GetAsString(&value);
|
| - EXPECT_EQ("test1", value);
|
| - ++current;
|
| - ASSERT_TRUE(current != end);
|
| - (*current)->GetAsString(&value);
|
| - EXPECT_EQ("test2,", value);
|
| - ++current;
|
| - EXPECT_TRUE(current == end);
|
| + provider_.AddPolicy(GetParam().type(), in_value);
|
| + RefreshPolicy();
|
| + Value* value;
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store_.GetValue(GetParam().pref_name(), &value));
|
| + EXPECT_TRUE(in_value->Equals(value));
|
| }
|
|
|
| INSTANTIATE_TEST_CASE_P(
|
| @@ -91,16 +94,18 @@ class ConfigurationPolicyPrefStoreStringTest
|
| };
|
|
|
| TEST_P(ConfigurationPolicyPrefStoreStringTest, GetDefault) {
|
| - std::string result;
|
| - EXPECT_FALSE(store_.prefs()->GetString(GetParam().pref_name(), &result));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store_.GetValue(GetParam().pref_name(), NULL));
|
| }
|
|
|
| TEST_P(ConfigurationPolicyPrefStoreStringTest, SetValue) {
|
| - store_.Apply(GetParam().type(),
|
| - Value::CreateStringValue("http://chromium.org"));
|
| - std::string result;
|
| - EXPECT_TRUE(store_.prefs()->GetString(GetParam().pref_name(), &result));
|
| - EXPECT_EQ(result, "http://chromium.org");
|
| + provider_.AddPolicy(GetParam().type(),
|
| + Value::CreateStringValue("http://chromium.org"));
|
| + RefreshPolicy();
|
| + Value* value;
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store_.GetValue(GetParam().pref_name(), &value));
|
| + EXPECT_TRUE(StringValue("http://chromium.org").Equals(value));
|
| }
|
|
|
| INSTANTIATE_TEST_CASE_P(
|
| @@ -129,20 +134,25 @@ class ConfigurationPolicyPrefStoreBooleanTest
|
| };
|
|
|
| TEST_P(ConfigurationPolicyPrefStoreBooleanTest, GetDefault) {
|
| - bool result = false;
|
| - EXPECT_FALSE(store_.prefs()->GetBoolean(GetParam().pref_name(), &result));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store_.GetValue(GetParam().pref_name(), NULL));
|
| }
|
|
|
| TEST_P(ConfigurationPolicyPrefStoreBooleanTest, SetValue) {
|
| - store_.Apply(GetParam().type(), Value::CreateBooleanValue(false));
|
| + provider_.AddPolicy(GetParam().type(), Value::CreateBooleanValue(false));
|
| + RefreshPolicy();
|
| + Value* value;
|
| bool result = true;
|
| - EXPECT_TRUE(store_.prefs()->GetBoolean(GetParam().pref_name(), &result));
|
| - EXPECT_FALSE(result);
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store_.GetValue(GetParam().pref_name(), &value));
|
| + EXPECT_TRUE(FundamentalValue(false).Equals(value));
|
|
|
| - store_.Apply(GetParam().type(), Value::CreateBooleanValue(true));
|
| + provider_.AddPolicy(GetParam().type(), Value::CreateBooleanValue(true));
|
| + RefreshPolicy();
|
| result = false;
|
| - EXPECT_TRUE(store_.prefs()->GetBoolean(GetParam().pref_name(), &result));
|
| - EXPECT_TRUE(result);
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store_.GetValue(GetParam().pref_name(), &value));
|
| + EXPECT_TRUE(FundamentalValue(true).Equals(value));
|
| }
|
|
|
| INSTANTIATE_TEST_CASE_P(
|
| @@ -200,15 +210,17 @@ class ConfigurationPolicyPrefStoreIntegerTest
|
| };
|
|
|
| TEST_P(ConfigurationPolicyPrefStoreIntegerTest, GetDefault) {
|
| - int result = 0;
|
| - EXPECT_FALSE(store_.prefs()->GetInteger(GetParam().pref_name(), &result));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store_.GetValue(GetParam().pref_name(), NULL));
|
| }
|
|
|
| TEST_P(ConfigurationPolicyPrefStoreIntegerTest, SetValue) {
|
| - store_.Apply(GetParam().type(), Value::CreateIntegerValue(2));
|
| - int result = 0;
|
| - EXPECT_TRUE(store_.prefs()->GetInteger(GetParam().pref_name(), &result));
|
| - EXPECT_EQ(result, 2);
|
| + provider_.AddPolicy(GetParam().type(), Value::CreateIntegerValue(2));
|
| + RefreshPolicy();
|
| + Value* value = NULL;
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store_.GetValue(GetParam().pref_name(), &value));
|
| + EXPECT_TRUE(FundamentalValue(2).Equals(value));
|
| }
|
|
|
| INSTANTIATE_TEST_CASE_P(
|
| @@ -228,131 +240,124 @@ class ConfigurationPolicyPrefStoreProxyTest : public testing::Test {
|
| const std::string& expected_proxy_pac_url,
|
| const std::string& expected_proxy_bypass_list,
|
| const ProxyPrefs::ProxyMode& expected_proxy_mode) {
|
| - std::string string_result;
|
| + Value* value = NULL;
|
|
|
| if (expected_proxy_server.empty()) {
|
| - EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer,
|
| - &string_result));
|
| + EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
|
| + store.GetValue(prefs::kProxyServer, NULL));
|
| } else {
|
| - EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyServer,
|
| - &string_result));
|
| - EXPECT_EQ(expected_proxy_server, string_result);
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kProxyServer, &value));
|
| + EXPECT_TRUE(StringValue(expected_proxy_server).Equals(value));
|
| }
|
| if (expected_proxy_pac_url.empty()) {
|
| - EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl,
|
| - &string_result));
|
| + EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
|
| + store.GetValue(prefs::kProxyPacUrl, NULL));
|
| } else {
|
| - EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyPacUrl,
|
| - &string_result));
|
| - EXPECT_EQ(expected_proxy_pac_url, string_result);
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kProxyPacUrl, &value));
|
| + EXPECT_TRUE(StringValue(expected_proxy_pac_url).Equals(value));
|
| }
|
| if (expected_proxy_bypass_list.empty()) {
|
| - EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList,
|
| - &string_result));
|
| + EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
|
| + store.GetValue(prefs::kProxyBypassList, NULL));
|
| } else {
|
| - EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyBypassList,
|
| - &string_result));
|
| - EXPECT_EQ(expected_proxy_bypass_list, string_result);
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kProxyBypassList, &value));
|
| + EXPECT_TRUE(StringValue(expected_proxy_bypass_list).Equals(value));
|
| }
|
| - int int_result = -1;
|
| - EXPECT_TRUE(store.prefs()->GetInteger(prefs::kProxyMode, &int_result));
|
| - EXPECT_EQ(expected_proxy_mode, int_result);
|
| + EXPECT_EQ(PrefStore::READ_OK, store.GetValue(prefs::kProxyMode, &value));
|
| + EXPECT_TRUE(FundamentalValue(expected_proxy_mode).Equals(value));
|
| }
|
| };
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) {
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(kPolicyProxyBypassList,
|
| - Value::CreateStringValue("http://chromium.org/override"));
|
| - provider->AddPolicy(kPolicyProxyServer,
|
| - Value::CreateStringValue("chromium.org"));
|
| - provider->AddPolicy(kPolicyProxyMode,
|
| - Value::CreateIntegerValue(
|
| - kPolicyManuallyConfiguredProxyMode));
|
| -
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyProxyBypassList,
|
| + Value::CreateStringValue("http://chromium.org/override"));
|
| + provider.AddPolicy(kPolicyProxyServer,
|
| + Value::CreateStringValue("chromium.org"));
|
| + provider.AddPolicy(kPolicyProxyMode,
|
| + Value::CreateIntegerValue(
|
| + kPolicyManuallyConfiguredProxyMode));
|
| +
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| VerifyProxyPrefs(
|
| store, "chromium.org", "", "http://chromium.org/override",
|
| ProxyPrefs::MODE_FIXED_SERVERS);
|
| }
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptionsReversedApplyOrder) {
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(kPolicyProxyMode,
|
| - Value::CreateIntegerValue(
|
| - kPolicyManuallyConfiguredProxyMode));
|
| - provider->AddPolicy(kPolicyProxyBypassList,
|
| - Value::CreateStringValue("http://chromium.org/override"));
|
| - provider->AddPolicy(kPolicyProxyServer,
|
| - Value::CreateStringValue("chromium.org"));
|
| -
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyProxyMode,
|
| + Value::CreateIntegerValue(
|
| + kPolicyManuallyConfiguredProxyMode));
|
| + provider.AddPolicy(kPolicyProxyBypassList,
|
| + Value::CreateStringValue("http://chromium.org/override"));
|
| + provider.AddPolicy(kPolicyProxyServer,
|
| + Value::CreateStringValue("chromium.org"));
|
| +
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| VerifyProxyPrefs(
|
| store, "chromium.org", "", "http://chromium.org/override",
|
| ProxyPrefs::MODE_FIXED_SERVERS);
|
| }
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxy) {
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(kPolicyProxyMode,
|
| - Value::CreateIntegerValue(kPolicyNoProxyServerMode));
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyProxyMode,
|
| + Value::CreateIntegerValue(kPolicyNoProxyServerMode));
|
|
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| VerifyProxyPrefs(store, "", "", "", ProxyPrefs::MODE_DIRECT);
|
| }
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetect) {
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(kPolicyProxyMode,
|
| - Value::CreateIntegerValue(kPolicyAutoDetectProxyMode));
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyProxyMode,
|
| + Value::CreateIntegerValue(kPolicyAutoDetectProxyMode));
|
|
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| VerifyProxyPrefs(store, "", "", "", ProxyPrefs::MODE_AUTO_DETECT);
|
| }
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetectPac) {
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(kPolicyProxyPacUrl,
|
| - Value::CreateStringValue("http://short.org/proxy.pac"));
|
| - provider->AddPolicy(kPolicyProxyMode,
|
| - Value::CreateIntegerValue(kPolicyAutoDetectProxyMode));
|
| -
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyProxyPacUrl,
|
| + Value::CreateStringValue("http://short.org/proxy.pac"));
|
| + provider.AddPolicy(kPolicyProxyMode,
|
| + Value::CreateIntegerValue(kPolicyAutoDetectProxyMode));
|
| +
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| VerifyProxyPrefs(
|
| store, "", "http://short.org/proxy.pac", "", ProxyPrefs::MODE_PAC_SCRIPT);
|
| }
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystem) {
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(kPolicyProxyMode,
|
| - Value::CreateIntegerValue(kPolicyUseSystemProxyMode));
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyProxyMode,
|
| + Value::CreateIntegerValue(kPolicyUseSystemProxyMode));
|
|
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| VerifyProxyPrefs(store, "", "", "", ProxyPrefs::MODE_SYSTEM);
|
| }
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreProxyTest, ProxyInvalid) {
|
| for (int i = 0; i < MODE_COUNT; ++i) {
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(kPolicyProxyMode, Value::CreateIntegerValue(i));
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyProxyMode, Value::CreateIntegerValue(i));
|
| // No mode expects all three parameters being set.
|
| - provider->AddPolicy(kPolicyProxyPacUrl,
|
| - Value::CreateStringValue("http://short.org/proxy.pac"));
|
| - provider->AddPolicy(kPolicyProxyBypassList,
|
| - Value::CreateStringValue(
|
| - "http://chromium.org/override"));
|
| - provider->AddPolicy(kPolicyProxyServer,
|
| - Value::CreateStringValue("chromium.org"));
|
| -
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| - EXPECT_FALSE(store.prefs()->HasKey(prefs::kProxyMode));
|
| + provider.AddPolicy(kPolicyProxyPacUrl,
|
| + Value::CreateStringValue("http://short.org/proxy.pac"));
|
| + provider.AddPolicy(kPolicyProxyBypassList,
|
| + Value::CreateStringValue(
|
| + "http://chromium.org/override"));
|
| + provider.AddPolicy(kPolicyProxyServer,
|
| + Value::CreateStringValue("chromium.org"));
|
| +
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kProxyMode, NULL));
|
| }
|
| }
|
|
|
| @@ -363,42 +368,38 @@ class ConfigurationPolicyPrefStoreDefaultSearchTest : public testing::Test {
|
| // search URL, that all the elements have been given proper defaults.
|
| TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) {
|
| const char* const search_url = "http://test.com/search?t={searchTerms}";
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderEnabled,
|
| - Value::CreateBooleanValue(true));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderSearchURL,
|
| - Value::CreateStringValue(search_url));
|
| -
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| - const DictionaryValue* prefs = store.prefs();
|
| -
|
| - std::string string_result;
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL,
|
| - &string_result));
|
| - EXPECT_EQ(string_result, search_url);
|
| -
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderName,
|
| - &string_result));
|
| - EXPECT_EQ(string_result, "test.com");
|
| -
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderKeyword,
|
| - &string_result));
|
| - EXPECT_EQ(string_result, std::string());
|
| -
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL,
|
| - &string_result));
|
| - EXPECT_EQ(string_result, std::string());
|
| -
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderIconURL,
|
| - &string_result));
|
| - EXPECT_EQ(string_result, std::string());
|
| -
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderEncodings,
|
| - &string_result));
|
| - EXPECT_EQ(string_result, std::string());
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderEnabled,
|
| + Value::CreateBooleanValue(true));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderSearchURL,
|
| + Value::CreateStringValue(search_url));
|
| +
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| +
|
| + Value* value = NULL;
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderSearchURL, &value));
|
| + EXPECT_TRUE(StringValue(search_url).Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderName, &value));
|
| + EXPECT_TRUE(StringValue("test.com").Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderKeyword, &value));
|
| + EXPECT_TRUE(StringValue(std::string()).Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderSuggestURL, &value));
|
| + EXPECT_TRUE(StringValue(std::string()).Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderIconURL, &value));
|
| + EXPECT_TRUE(StringValue(std::string()).Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderEncodings, &value));
|
| + EXPECT_TRUE(StringValue(std::string()).Equals(value));
|
| }
|
|
|
| // Checks that for a fully defined search policy, all elements have been
|
| @@ -410,62 +411,48 @@ TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, FullyDefined) {
|
| const char* const name = "MyName";
|
| const char* const keyword = "MyKeyword";
|
| const char* const encodings = "UTF-16;UTF-8";
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderEnabled,
|
| - Value::CreateBooleanValue(true));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderSearchURL,
|
| - Value::CreateStringValue(search_url));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderName,
|
| - Value::CreateStringValue(name));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderKeyword,
|
| - Value::CreateStringValue(keyword));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderSuggestURL,
|
| - Value::CreateStringValue(suggest_url));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderIconURL,
|
| - Value::CreateStringValue(icon_url));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderEncodings,
|
| - Value::CreateStringValue(encodings));
|
| -
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| - const DictionaryValue* prefs = store.prefs();
|
| -
|
| - std::string result_search_url;
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL,
|
| - &result_search_url));
|
| - EXPECT_EQ(result_search_url, search_url);
|
| -
|
| - std::string result_name;
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderName,
|
| - &result_name));
|
| - EXPECT_EQ(result_name, name);
|
| -
|
| - std::string result_keyword;
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderKeyword,
|
| - &result_keyword));
|
| - EXPECT_EQ(result_keyword, keyword);
|
| -
|
| - std::string result_suggest_url;
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL,
|
| - &result_suggest_url));
|
| - EXPECT_EQ(result_suggest_url, suggest_url);
|
| -
|
| - std::string result_icon_url;
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderIconURL,
|
| - &result_icon_url));
|
| - EXPECT_EQ(result_icon_url, icon_url);
|
| -
|
| - std::string result_encodings;
|
| - EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderEncodings,
|
| - &result_encodings));
|
| - EXPECT_EQ(result_encodings, encodings);
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderEnabled,
|
| + Value::CreateBooleanValue(true));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderSearchURL,
|
| + Value::CreateStringValue(search_url));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderName,
|
| + Value::CreateStringValue(name));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderKeyword,
|
| + Value::CreateStringValue(keyword));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderSuggestURL,
|
| + Value::CreateStringValue(suggest_url));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderIconURL,
|
| + Value::CreateStringValue(icon_url));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderEncodings,
|
| + Value::CreateStringValue(encodings));
|
| +
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| +
|
| + Value* value = NULL;
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderSearchURL, &value));
|
| + EXPECT_TRUE(StringValue(search_url).Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderName, &value));
|
| + EXPECT_TRUE(StringValue(name).Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderKeyword, &value));
|
| + EXPECT_TRUE(StringValue(keyword).Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderSuggestURL, &value));
|
| + EXPECT_TRUE(StringValue(suggest_url).Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderIconURL, &value));
|
| + EXPECT_TRUE(StringValue(icon_url).Equals(value));
|
| +
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store.GetValue(prefs::kDefaultSearchProviderEncodings, &value));
|
| + EXPECT_TRUE(StringValue(encodings).Equals(value));
|
| }
|
|
|
| // Checks that if the default search policy is missing, that no elements of the
|
| @@ -476,43 +463,34 @@ TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MissingUrl) {
|
| const char* const name = "MyName";
|
| const char* const keyword = "MyKeyword";
|
| const char* const encodings = "UTF-16;UTF-8";
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderEnabled,
|
| - Value::CreateBooleanValue(true));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderName,
|
| - Value::CreateStringValue(name));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderKeyword,
|
| - Value::CreateStringValue(keyword));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderSuggestURL,
|
| - Value::CreateStringValue(suggest_url));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderIconURL,
|
| - Value::CreateStringValue(icon_url));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderEncodings,
|
| - Value::CreateStringValue(encodings));
|
| -
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| - const DictionaryValue* prefs = store.prefs();
|
| -
|
| - std::string string_result;
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderName,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderKeyword,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderIconURL,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderEncodings,
|
| - &string_result));
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderEnabled,
|
| + Value::CreateBooleanValue(true));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderName,
|
| + Value::CreateStringValue(name));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderKeyword,
|
| + Value::CreateStringValue(keyword));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderSuggestURL,
|
| + Value::CreateStringValue(suggest_url));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderIconURL,
|
| + Value::CreateStringValue(icon_url));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderEncodings,
|
| + Value::CreateStringValue(encodings));
|
| +
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| +
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderSearchURL, NULL));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderName, NULL));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderKeyword, NULL));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderIconURL, NULL));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderEncodings, NULL));
|
| }
|
|
|
| // Checks that if the default search policy is invalid, that no elements of the
|
| @@ -524,48 +502,36 @@ TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Invalid) {
|
| const char* const name = "MyName";
|
| const char* const keyword = "MyKeyword";
|
| const char* const encodings = "UTF-16;UTF-8";
|
| - scoped_ptr<MockConfigurationPolicyProvider> provider(
|
| - new MockConfigurationPolicyProvider());
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderEnabled,
|
| - Value::CreateBooleanValue(true));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderSearchURL,
|
| - Value::CreateStringValue(bad_search_url));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderName,
|
| - Value::CreateStringValue(name));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderKeyword,
|
| - Value::CreateStringValue(keyword));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderSuggestURL,
|
| - Value::CreateStringValue(suggest_url));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderIconURL,
|
| - Value::CreateStringValue(icon_url));
|
| - provider->AddPolicy(
|
| - kPolicyDefaultSearchProviderEncodings,
|
| - Value::CreateStringValue(encodings));
|
| -
|
| - ConfigurationPolicyPrefStore store(provider.get());
|
| - const DictionaryValue* const prefs = store.prefs();
|
| -
|
| - std::string string_result;
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderEnabled,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderName,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderKeyword,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderIconURL,
|
| - &string_result));
|
| - EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderEncodings,
|
| - &string_result));
|
| + MockConfigurationPolicyProvider provider;
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderEnabled,
|
| + Value::CreateBooleanValue(true));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderSearchURL,
|
| + Value::CreateStringValue(bad_search_url));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderName,
|
| + Value::CreateStringValue(name));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderKeyword,
|
| + Value::CreateStringValue(keyword));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderSuggestURL,
|
| + Value::CreateStringValue(suggest_url));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderIconURL,
|
| + Value::CreateStringValue(icon_url));
|
| + provider.AddPolicy(kPolicyDefaultSearchProviderEncodings,
|
| + Value::CreateStringValue(encodings));
|
| +
|
| + ConfigurationPolicyPrefStore store(&provider);
|
| +
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderSearchURL, NULL));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderName, NULL));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderKeyword, NULL));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderIconURL, NULL));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store.GetValue(prefs::kDefaultSearchProviderEncodings, NULL));
|
| }
|
|
|
| // Test cases for the Sync policy setting.
|
| @@ -574,23 +540,25 @@ class ConfigurationPolicyPrefStoreSyncTest
|
| };
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreSyncTest, Default) {
|
| - bool result = false;
|
| - EXPECT_FALSE(store_.prefs()->GetBoolean(prefs::kSyncManaged, &result));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store_.GetValue(prefs::kSyncManaged, NULL));
|
| }
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreSyncTest, Enabled) {
|
| - store_.Apply(kPolicySyncDisabled, Value::CreateBooleanValue(false));
|
| + provider_.AddPolicy(kPolicySyncDisabled, Value::CreateBooleanValue(false));
|
| + RefreshPolicy();
|
| // Enabling Sync should not set the pref.
|
| - bool result = false;
|
| - EXPECT_FALSE(store_.prefs()->GetBoolean(prefs::kSyncManaged, &result));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store_.GetValue(prefs::kSyncManaged, NULL));
|
| }
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreSyncTest, Disabled) {
|
| - store_.Apply(kPolicySyncDisabled, Value::CreateBooleanValue(true));
|
| + provider_.AddPolicy(kPolicySyncDisabled, Value::CreateBooleanValue(true));
|
| + RefreshPolicy();
|
| // Sync should be flagged as managed.
|
| - bool result = false;
|
| - EXPECT_TRUE(store_.prefs()->GetBoolean(prefs::kSyncManaged, &result));
|
| - EXPECT_TRUE(result);
|
| + Value* value = NULL;
|
| + EXPECT_EQ(PrefStore::READ_OK, store_.GetValue(prefs::kSyncManaged, &value));
|
| + EXPECT_TRUE(FundamentalValue(true).Equals(value));
|
| }
|
|
|
| // Test cases for the AutoFill policy setting.
|
| @@ -599,23 +567,80 @@ class ConfigurationPolicyPrefStoreAutoFillTest
|
| };
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Default) {
|
| - bool result = false;
|
| - EXPECT_FALSE(store_.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store_.GetValue(prefs::kSyncManaged, NULL));
|
| }
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Enabled) {
|
| - store_.Apply(kPolicyAutoFillEnabled, Value::CreateBooleanValue(true));
|
| + provider_.AddPolicy(kPolicyAutoFillEnabled, Value::CreateBooleanValue(true));
|
| + RefreshPolicy();
|
| // Enabling AutoFill should not set the pref.
|
| - bool result = false;
|
| - EXPECT_FALSE(store_.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result));
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store_.GetValue(prefs::kSyncManaged, NULL));
|
| }
|
|
|
| TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Disabled) {
|
| - store_.Apply(kPolicyAutoFillEnabled, Value::CreateBooleanValue(false));
|
| + provider_.AddPolicy(kPolicyAutoFillEnabled, Value::CreateBooleanValue(false));
|
| + RefreshPolicy();
|
| // Disabling AutoFill should switch the pref to managed.
|
| - bool result = true;
|
| - EXPECT_TRUE(store_.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result));
|
| - EXPECT_FALSE(result);
|
| + Value* value = NULL;
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store_.GetValue(prefs::kAutoFillEnabled, &value));
|
| + EXPECT_TRUE(FundamentalValue(false).Equals(value));
|
| +}
|
| +
|
| +// Exercises the policy refresh mechanism.
|
| +class ConfigurationPolicyPrefStoreRefreshTest
|
| + : public ConfigurationPolicyPrefStoreTestBase<testing::Test> {
|
| + protected:
|
| + virtual void SetUp() {
|
| + store_.AddObserver(&observer_);
|
| + }
|
| +
|
| + virtual void TearDown() {
|
| + store_.RemoveObserver(&observer_);
|
| + }
|
| +
|
| + PrefStoreObserverMock observer_;
|
| +};
|
| +
|
| +TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Refresh) {
|
| + Value* value = NULL;
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store_.GetValue(prefs::kHomePage, NULL));
|
| +
|
| + EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1);
|
| + provider_.AddPolicy(kPolicyHomePage,
|
| + Value::CreateStringValue("http://www.chromium.org"));
|
| + RefreshPolicy();
|
| + Mock::VerifyAndClearExpectations(&observer_);
|
| + EXPECT_EQ(PrefStore::READ_OK,
|
| + store_.GetValue(prefs::kHomePage, &value));
|
| + EXPECT_TRUE(StringValue("http://www.chromium.org").Equals(value));
|
| +
|
| + EXPECT_CALL(observer_, OnPrefValueChanged(_)).Times(0);
|
| + RefreshPolicy();
|
| + Mock::VerifyAndClearExpectations(&observer_);
|
| +
|
| + EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1);
|
| + provider_.RemovePolicy(kPolicyHomePage);
|
| + RefreshPolicy();
|
| + Mock::VerifyAndClearExpectations(&observer_);
|
| + EXPECT_EQ(PrefStore::READ_NO_VALUE,
|
| + store_.GetValue(prefs::kHomePage, NULL));
|
| +}
|
| +
|
| +TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Initialization) {
|
| + EXPECT_FALSE(store_.IsInitializationComplete());
|
| +
|
| + EXPECT_CALL(observer_, OnInitializationCompleted()).Times(1);
|
| +
|
| + provider_.SetInitializationComplete(true);
|
| + EXPECT_FALSE(store_.IsInitializationComplete());
|
| +
|
| + RefreshPolicy();
|
| + Mock::VerifyAndClearExpectations(&observer_);
|
| + EXPECT_TRUE(store_.IsInitializationComplete());
|
| }
|
|
|
| } // namespace policy
|
|
|