diff options
author | pam@chromium.org <pam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-12 16:48:49 +0000 |
---|---|---|
committer | pam@chromium.org <pam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-12 16:48:49 +0000 |
commit | db198b2722f4592f6b76294f6a7f9c868e05bc15 (patch) | |
tree | ce5c93732e2d202548b6e2d69ab6a80cc06ca7ea /chrome/browser/pref_value_store_unittest.cc | |
parent | ef40c4da832d2082dffe1262b0e2dbf64b5e8031 (diff) | |
download | chromium_src-db198b2722f4592f6b76294f6a7f9c868e05bc15.zip chromium_src-db198b2722f4592f6b76294f6a7f9c868e05bc15.tar.gz chromium_src-db198b2722f4592f6b76294f6a7f9c868e05bc15.tar.bz2 |
Add an ExtensionPrefStore, layered between the user prefs and the managed prefs, to manage preferences set by extensions.
Update various callers of the PrefValueStore constructor accordingly.
The initial user will be the proxy extension API.
BUG=266
TEST=covered by unit tests
Review URL: http://codereview.chromium.org/2823037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52088 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/pref_value_store_unittest.cc')
-rw-r--r-- | chrome/browser/pref_value_store_unittest.cc | 53 |
1 files changed, 42 insertions, 11 deletions
diff --git a/chrome/browser/pref_value_store_unittest.cc b/chrome/browser/pref_value_store_unittest.cc index 5fbab74..3d22236 100644 --- a/chrome/browser/pref_value_store_unittest.cc +++ b/chrome/browser/pref_value_store_unittest.cc @@ -16,19 +16,22 @@ using testing::Mock; // Names of the preferences used in this test program. namespace prefs { + const wchar_t kCurrentThemeID[] = L"extensions.theme.id"; const wchar_t kDeleteCache[] = L"browser.clear_data.cache"; - const wchar_t kMaxTabs[] = L"tabs.max_tabs"; + const wchar_t kExtensionPref[] = L"extension.pref"; const wchar_t kHomepage[] = L"homepage"; + const wchar_t kMaxTabs[] = L"tabs.max_tabs"; const wchar_t kMissingPref[] = L"this.pref.does_not_exist"; const wchar_t kRecommendedPref[] = L"this.pref.recommended_value_only"; const wchar_t kSampleDict[] = L"sample.dict"; const wchar_t kSampleList[] = L"sample.list"; } -// Expected values of all preferences used in this test programm. -namespace expected { +// Potentailly expected values of all preferences used in this test program. +namespace user { const int kMaxTabsValue = 31; const bool kDeleteCacheValue = true; + const std::wstring kCurrentThemeIDValue = L"abcdefg"; const std::wstring kHomepageValue = L"http://www.google.com"; } @@ -36,6 +39,11 @@ namespace enforced { const std::wstring kHomepageValue = L"http://www.topeka.com"; } +namespace extension { + const std::wstring kCurrentThemeIDValue = L"set by extension"; + const std::wstring kHomepageValue = L"http://www.chromium.org"; +} + namespace recommended { const int kMaxTabsValue = 10; const bool kRecommendedPrefValue = true; @@ -47,23 +55,28 @@ class PrefValueStoreTest : public testing::Test { // |PrefStore|s are owned by the |PrefValueStore|. DummyPrefStore* enforced_pref_store_; + DummyPrefStore* extension_pref_store_; DummyPrefStore* recommended_pref_store_; DummyPrefStore* user_pref_store_; // Preferences are owned by the individual |DummyPrefStores|. DictionaryValue* enforced_prefs_; + DictionaryValue* extension_prefs_; DictionaryValue* user_prefs_; DictionaryValue* recommended_prefs_; virtual void SetUp() { // Create dummy user preferences. enforced_prefs_= CreateEnforcedPrefs(); + extension_prefs_ = CreateExtensionPrefs(); user_prefs_ = CreateUserPrefs(); recommended_prefs_ = CreateRecommendedPrefs(); // Create |DummyPrefStore|s. enforced_pref_store_ = new DummyPrefStore(); enforced_pref_store_->set_prefs(enforced_prefs_); + extension_pref_store_ = new DummyPrefStore(); + extension_pref_store_->set_prefs(extension_prefs_); user_pref_store_ = new DummyPrefStore(); user_pref_store_->set_read_only(false); user_pref_store_->set_prefs(user_prefs_); @@ -72,6 +85,7 @@ class PrefValueStoreTest : public testing::Test { // Create a new pref-value-store. pref_value_store_.reset(new PrefValueStore(enforced_pref_store_, + extension_pref_store_, user_pref_store_, recommended_pref_store_)); } @@ -80,9 +94,10 @@ class PrefValueStoreTest : public testing::Test { // in it. DictionaryValue* CreateUserPrefs() { DictionaryValue* user_prefs = new DictionaryValue(); - user_prefs->SetBoolean(prefs::kDeleteCache, expected::kDeleteCacheValue); - user_prefs->SetInteger(prefs::kMaxTabs, expected::kMaxTabsValue); - user_prefs->SetString(prefs::kHomepage, expected::kHomepageValue); + user_prefs->SetBoolean(prefs::kDeleteCache, user::kDeleteCacheValue); + user_prefs->SetInteger(prefs::kMaxTabs, user::kMaxTabsValue); + user_prefs->SetString(prefs::kCurrentThemeID, user::kCurrentThemeIDValue); + user_prefs->SetString(prefs::kHomepage, user::kHomepageValue); return user_prefs; } @@ -92,6 +107,14 @@ class PrefValueStoreTest : public testing::Test { return enforced_prefs; } + DictionaryValue* CreateExtensionPrefs() { + DictionaryValue* extension_prefs = new DictionaryValue(); + extension_prefs->SetString(prefs::kCurrentThemeID, + extension::kCurrentThemeIDValue); + extension_prefs->SetString(prefs::kHomepage, extension::kHomepageValue); + return extension_prefs; + } + DictionaryValue* CreateRecommendedPrefs() { DictionaryValue* recommended_prefs = new DictionaryValue(); recommended_prefs->SetInteger(prefs::kMaxTabs, recommended::kMaxTabsValue); @@ -123,6 +146,7 @@ class PrefValueStoreTest : public testing::Test { TEST_F(PrefValueStoreTest, IsReadOnly) { enforced_pref_store_->set_read_only(true); + extension_pref_store_->set_read_only(true); user_pref_store_->set_read_only(true); recommended_pref_store_->set_read_only(true); EXPECT_TRUE(pref_value_store_->ReadOnly()); @@ -134,26 +158,33 @@ TEST_F(PrefValueStoreTest, IsReadOnly) { TEST_F(PrefValueStoreTest, GetValue) { Value* value; - // Test getting an enforced value overwriting a user defined value. + // Test getting an enforced value overwriting a user-defined and + // extension-defined value. value = NULL; ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomepage, &value)); std::wstring actual_str_value; EXPECT_TRUE(value->GetAsString(&actual_str_value)); EXPECT_EQ(enforced::kHomepageValue, actual_str_value); - // Test getting a user set value. + // Test getting an extension value overwriting a user-defined value. + value = NULL; + ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCurrentThemeID, &value)); + EXPECT_TRUE(value->GetAsString(&actual_str_value)); + EXPECT_EQ(extension::kCurrentThemeIDValue, actual_str_value); + + // Test getting a user-set value. value = NULL; ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDeleteCache, &value)); bool actual_bool_value = false; EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value)); - EXPECT_EQ(expected::kDeleteCacheValue, actual_bool_value); + EXPECT_EQ(user::kDeleteCacheValue, actual_bool_value); // Test getting a user set value overwriting a recommended value. value = NULL; ASSERT_TRUE(pref_value_store_->GetValue(prefs::kMaxTabs, &value)); int actual_int_value = -1; EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); - EXPECT_EQ(expected::kMaxTabsValue, actual_int_value); + EXPECT_EQ(user::kMaxTabsValue, actual_int_value); // Test getting a recommended value. value = NULL; @@ -217,7 +248,7 @@ TEST_F(PrefValueStoreTest, SetUserPrefValue) { pref_value_store_->GetValue(prefs::kMaxTabs, &actual_value); int int_value; EXPECT_TRUE(actual_value->GetAsInteger(&int_value)); - EXPECT_EQ(expected::kMaxTabsValue, int_value); + EXPECT_EQ(user::kMaxTabsValue, int_value); new_value = Value::CreateIntegerValue(1); pref_value_store_->SetUserPrefValue(prefs::kMaxTabs, new_value); |