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

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: 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 43e12953d2695239552925448b0ea0c4d83b1a95..8cce31d6e69176bc886c3d22239c657470189162 100644
--- a/chrome/browser/policy/configuration_policy_pref_store_unittest.cc
+++ b/chrome/browser/policy/configuration_policy_pref_store_unittest.cc
@@ -2,13 +2,18 @@
// 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/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 {
@@ -34,6 +39,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_;
};
@@ -45,29 +57,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(
@@ -90,15 +93,20 @@ 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"));
+ provider_.AddPolicy(GetParam().type(),
+ Value::CreateStringValue("http://chromium.org"));
+ RefreshPolicy();
+ Value* value;
+ EXPECT_EQ(PrefStore::READ_OK,
+ store_.GetValue(GetParam().pref_name(), &value));
+ ASSERT_TRUE(value);
std::string result;
- EXPECT_TRUE(store_.prefs()->GetString(GetParam().pref_name(), &result));
+ EXPECT_TRUE(value->GetAsString(&result));
EXPECT_EQ(result, "http://chromium.org");
}
@@ -134,20 +142,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(
@@ -205,15 +218,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,144 +243,147 @@ class ConfigurationPolicyPrefStoreProxyTest : public testing::Test {
};
TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) {
- scoped_ptr<MockConfigurationPolicyProvider> provider(
- new MockConfigurationPolicyProvider());
- provider->AddPolicy(kPolicyProxyBypassList,
- Value::CreateStringValue("http://chromium.org/override"));
- provider->AddPolicy(kPolicyProxyPacUrl,
- Value::CreateStringValue("http://short.org/proxy.pac"));
- provider->AddPolicy(kPolicyProxyServer,
- Value::CreateStringValue("chromium.org"));
- provider->AddPolicy(kPolicyProxyServerMode,
- Value::CreateIntegerValue(
- kPolicyManuallyConfiguredProxyMode));
-
- ConfigurationPolicyPrefStore store(provider.get());
-
- std::string string_result;
- EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyBypassList,
- &string_result));
- EXPECT_EQ("http://chromium.org/override", string_result);
- EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result));
- EXPECT_EQ("http://short.org/proxy.pac", string_result);
- EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyServer, &string_result));
- EXPECT_EQ("chromium.org", string_result);
- bool bool_result;
- EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result));
- EXPECT_FALSE(bool_result);
- EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result));
- EXPECT_FALSE(bool_result);
+ MockConfigurationPolicyProvider provider;
+ provider.AddPolicy(kPolicyProxyBypassList,
+ Value::CreateStringValue("http://chromium.org/override"));
+ provider.AddPolicy(kPolicyProxyPacUrl,
+ Value::CreateStringValue("http://short.org/proxy.pac"));
+ provider.AddPolicy(kPolicyProxyServer,
+ Value::CreateStringValue("chromium.org"));
+ provider.AddPolicy(kPolicyProxyServerMode,
+ Value::CreateIntegerValue(
+ kPolicyManuallyConfiguredProxyMode));
+
+ ConfigurationPolicyPrefStore store(&provider);
+
+ Value* value = NULL;
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kProxyBypassList, &value));
+ EXPECT_TRUE(StringValue("http://chromium.org/override").Equals(value));
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kProxyPacUrl, &value));
+ EXPECT_TRUE(StringValue("http://short.org/proxy.pac").Equals(value));
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kProxyServer, &value));
+ EXPECT_TRUE(StringValue("chromium.org").Equals(value));
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kNoProxyServer, &value));
+ EXPECT_TRUE(FundamentalValue(false).Equals(value));
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kProxyAutoDetect, &value));
+ EXPECT_TRUE(FundamentalValue(false).Equals(value));
}
TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxy) {
- scoped_ptr<MockConfigurationPolicyProvider> provider(
- new MockConfigurationPolicyProvider());
- provider->AddPolicy(kPolicyProxyBypassList,
- Value::CreateStringValue("http://chromium.org/override"));
- provider->AddPolicy(kPolicyProxyServerMode,
- Value::CreateIntegerValue(
- kPolicyNoProxyServerMode));
-
- ConfigurationPolicyPrefStore store(provider.get());
-
- std::string string_result;
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList,
- &string_result));
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result));
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result));
- bool bool_result;
- EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result));
- EXPECT_TRUE(bool_result);
- EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result));
- EXPECT_FALSE(bool_result);
+ MockConfigurationPolicyProvider provider;
+ provider.AddPolicy(kPolicyProxyBypassList,
+ Value::CreateStringValue("http://chromium.org/override"));
+ provider.AddPolicy(kPolicyProxyServerMode,
+ Value::CreateIntegerValue(kPolicyNoProxyServerMode));
+
+ ConfigurationPolicyPrefStore store(&provider);
+
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyBypassList, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyPacUrl, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyServer, NULL));
+ Value* value = NULL;
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kNoProxyServer, &value));
+ EXPECT_TRUE(FundamentalValue(true).Equals(value));
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kProxyAutoDetect, &value));
+ EXPECT_TRUE(FundamentalValue(false).Equals(value));
}
TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyReversedApplyOrder) {
- scoped_ptr<MockConfigurationPolicyProvider> provider(
- new MockConfigurationPolicyProvider());
- provider->AddPolicy(kPolicyProxyServerMode,
- Value::CreateIntegerValue(
- kPolicyNoProxyServerMode));
- provider->AddPolicy(kPolicyProxyBypassList,
- Value::CreateStringValue("http://chromium.org/override"));
-
- ConfigurationPolicyPrefStore store(provider.get());
-
- std::string string_result;
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList,
- &string_result));
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result));
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result));
- bool bool_result;
- EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result));
- EXPECT_TRUE(bool_result);
- EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result));
- EXPECT_FALSE(bool_result);
+ MockConfigurationPolicyProvider provider;
+ provider.AddPolicy(kPolicyProxyServerMode,
+ Value::CreateIntegerValue(kPolicyNoProxyServerMode));
+ provider.AddPolicy(kPolicyProxyBypassList,
+ Value::CreateStringValue("http://chromium.org/override"));
+
+ ConfigurationPolicyPrefStore store(&provider);
+
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyBypassList, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyPacUrl, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyServer, NULL));
+ Value* value = NULL;
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kNoProxyServer, &value));
+ EXPECT_TRUE(FundamentalValue(true).Equals(value));
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kProxyAutoDetect, &value));
+ EXPECT_TRUE(FundamentalValue(false).Equals(value));
}
TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetect) {
- scoped_ptr<MockConfigurationPolicyProvider> provider(
- new MockConfigurationPolicyProvider());
- provider->AddPolicy(kPolicyProxyServerMode,
- Value::CreateIntegerValue(
- kPolicyAutoDetectProxyMode));
-
- ConfigurationPolicyPrefStore store(provider.get());
-
- std::string string_result;
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList,
- &string_result));
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result));
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result));
- bool bool_result;
- EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result));
- EXPECT_FALSE(bool_result);
- EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result));
- EXPECT_TRUE(bool_result);
+ MockConfigurationPolicyProvider provider;
+ provider.AddPolicy(kPolicyProxyServerMode,
+ Value::CreateIntegerValue(kPolicyAutoDetectProxyMode));
+
+ ConfigurationPolicyPrefStore store(&provider);
+
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyBypassList, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyPacUrl, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyServer, NULL));
+ Value* value = NULL;
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kNoProxyServer, &value));
+ EXPECT_TRUE(FundamentalValue(false).Equals(value));
+ EXPECT_EQ(PrefStore::READ_OK,
+ store.GetValue(prefs::kProxyAutoDetect, &value));
+ EXPECT_TRUE(FundamentalValue(true).Equals(value));
}
TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystem) {
- scoped_ptr<MockConfigurationPolicyProvider> provider(
- new MockConfigurationPolicyProvider());
- provider->AddPolicy(kPolicyProxyBypassList,
- Value::CreateStringValue("http://chromium.org/override"));
- provider->AddPolicy(kPolicyProxyServerMode,
- Value::CreateIntegerValue(
- kPolicyUseSystemProxyMode));
-
- ConfigurationPolicyPrefStore store(provider.get());
-
- std::string string_result;
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList,
- &string_result));
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result));
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result));
- bool bool_result;
- EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result));
- EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect,
- &bool_result));
+ MockConfigurationPolicyProvider provider;
+ provider.AddPolicy(kPolicyProxyBypassList,
+ Value::CreateStringValue("http://chromium.org/override"));
+ provider.AddPolicy(kPolicyProxyServerMode,
+ Value::CreateIntegerValue(kPolicyUseSystemProxyMode));
+
+ ConfigurationPolicyPrefStore store(&provider);
+
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyBypassList, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyPacUrl, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyServer, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kNoProxyServer, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyAutoDetect, NULL));
}
TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemReversedApplyOrder) {
- scoped_ptr<MockConfigurationPolicyProvider> provider(
- new MockConfigurationPolicyProvider());
- provider->AddPolicy(kPolicyProxyServerMode,
- Value::CreateIntegerValue(
- kPolicyUseSystemProxyMode));
- provider->AddPolicy(kPolicyProxyBypassList,
- Value::CreateStringValue("http://chromium.org/override"));
-
- ConfigurationPolicyPrefStore store(provider.get());
-
- std::string string_result;
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList,
- &string_result));
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result));
- EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result));
- bool bool_result;
- EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result));
- EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect,
- &bool_result));
+ MockConfigurationPolicyProvider provider;
+ provider.AddPolicy(kPolicyProxyServerMode,
+ Value::CreateIntegerValue(kPolicyUseSystemProxyMode));
+ provider.AddPolicy(kPolicyProxyBypassList,
+ Value::CreateStringValue("http://chromium.org/override"));
+
+ ConfigurationPolicyPrefStore store(&provider);
+
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyBypassList, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyPacUrl, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyServer, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kNoProxyServer, NULL));
+ EXPECT_EQ(PrefStore::READ_USE_DEFAULT,
+ store.GetValue(prefs::kProxyAutoDetect, NULL));
}
class ConfigurationPolicyPrefStoreDefaultSearchTest : public testing::Test {
@@ -375,42 +393,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
@@ -422,62 +436,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
@@ -488,43 +488,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
@@ -536,48 +527,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.
@@ -586,23 +565,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.
@@ -611,23 +592,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