Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5914)

Unified Diff: chrome/browser/policy/configuration_policy_pref_store_unittest.cc

Issue 6074003: Handle policy refresh internally in ConfigurationPolicyPrefStore. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix nit Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698