| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <set> | 5 #include <set> |
| 6 #include <string> | 6 #include <string> |
| 7 | 7 |
| 8 #include "base/scoped_ptr.h" | 8 #include "base/scoped_ptr.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/browser/browser_thread.h" | 10 #include "chrome/browser/browser_thread.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 | 26 |
| 27 // Allows to capture pref notifications through gmock. | 27 // Allows to capture pref notifications through gmock. |
| 28 class MockPrefNotifier : public PrefNotifier { | 28 class MockPrefNotifier : public PrefNotifier { |
| 29 public: | 29 public: |
| 30 MOCK_METHOD1(OnPreferenceChanged, void(const std::string&)); | 30 MOCK_METHOD1(OnPreferenceChanged, void(const std::string&)); |
| 31 MOCK_METHOD0(OnInitializationCompleted, void()); | 31 MOCK_METHOD0(OnInitializationCompleted, void()); |
| 32 }; | 32 }; |
| 33 | 33 |
| 34 } // namespace | 34 } // namespace |
| 35 | 35 |
| 36 // Names of the preferences used in this test program. | 36 // Names of the preferences used in this test. |
| 37 namespace prefs { | 37 namespace prefs { |
| 38 const char kManagedPlatformPref[] = "this.pref.managed_platform"; |
| 39 const char kManagedCloudPref[] = "this.pref.managed_cloud"; |
| 40 const char kCommandLinePref[] = "this.pref.command_line"; |
| 41 const char kExtensionPref[] = "this.pref.extension"; |
| 42 const char kUserPref[] = "this.pref.user"; |
| 43 const char kRecommendedPlatformPref[] = "this.pref.recommended_platform"; |
| 44 const char kRecommendedCloudPref[] = "this.pref.recommended_cloud"; |
| 45 const char kDefaultPref[] = "this.pref.default"; |
| 38 const char kMissingPref[] = "this.pref.does_not_exist"; | 46 const char kMissingPref[] = "this.pref.does_not_exist"; |
| 39 const char kRecommendedPref[] = "this.pref.recommended_value_only"; | |
| 40 const char kSampleDict[] = "sample.dict"; | |
| 41 const char kSampleList[] = "sample.list"; | |
| 42 const char kDefaultPref[] = "default.pref"; | |
| 43 } | 47 } |
| 44 | 48 |
| 45 // Potentially expected values of all preferences used in this test program. | 49 // Potentially expected values of all preferences used in this test program. |
| 46 namespace managed_platform_pref { | 50 namespace managed_platform_pref { |
| 47 const std::string kHomepageValue = "http://www.topeka.com"; | 51 const char kManagedPlatformValue[] = "managed_platform:managed_platform"; |
| 48 } | 52 } |
| 49 | 53 |
| 50 namespace device_management_pref { | 54 namespace managed_cloud_pref { |
| 51 const std::string kSearchProviderNameValue = "Chromium"; | 55 const char kManagedPlatformValue[] = "managed_cloud:managed_platform"; |
| 52 const char kHomepageValue[] = "http://www.wandering-around.org"; | 56 const char kManagedCloudValue[] = "managed_cloud:managed_cloud"; |
| 53 } | 57 } |
| 54 | 58 |
| 55 namespace extension_pref { | 59 namespace extension_pref { |
| 56 const char kCurrentThemeIDValue[] = "set by extension"; | 60 const char kManagedPlatformValue[] = "extension:managed_platform"; |
| 57 const char kHomepageValue[] = "http://www.chromium.org"; | 61 const char kManagedCloudValue[] = "extension:managed_cloud"; |
| 58 const std::string kSearchProviderNameValue = "AreYouFeelingALittleLucky"; | 62 const char kExtensionValue[] = "extension:extension"; |
| 59 } | 63 } |
| 60 | 64 |
| 61 namespace command_line_pref { | 65 namespace command_line_pref { |
| 62 const char kApplicationLocaleValue[] = "hi-MOM"; | 66 const char kManagedPlatformValue[] = "command_line:managed_platform"; |
| 63 const char kCurrentThemeIDValue[] = "zyxwvut"; | 67 const char kManagedCloudValue[] = "command_line:managed_cloud"; |
| 64 const char kHomepageValue[] = "http://www.ferretcentral.org"; | 68 const char kExtensionValue[] = "command_line:extension"; |
| 65 const std::string kSearchProviderNameValue = "AreYouFeelingPrettyLucky"; | 69 const char kCommandLineValue[] = "command_line:command_line"; |
| 66 } | 70 } |
| 67 | 71 |
| 68 // The "user" namespace is defined globally in an ARM system header, so we need | |
| 69 // something different here. | |
| 70 namespace user_pref { | 72 namespace user_pref { |
| 71 const int kStabilityLaunchCountValue = 31; | 73 const char kManagedPlatformValue[] = "user:managed_platform"; |
| 72 const bool kDeleteCacheValue = true; | 74 const char kManagedCloudValue[] = "user:managed_cloud"; |
| 73 const char kCurrentThemeIDValue[] = "abcdefg"; | 75 const char kExtensionValue[] = "user:extension"; |
| 74 const char kHomepageValue[] = "http://www.google.com"; | 76 const char kCommandLineValue[] = "user:command_line"; |
| 75 const char kApplicationLocaleValue[] = "is-WRONG"; | 77 const char kUserValue[] = "user:user"; |
| 76 const std::string kSearchProviderNameValue = "AreYouFeelingVeryLucky"; | |
| 77 } | 78 } |
| 78 | 79 |
| 79 namespace recommended_pref { | 80 namespace recommended_platform_pref { |
| 80 const int kStabilityLaunchCountValue = 10; | 81 const char kManagedPlatformValue[] = "recommended_platform:managed_platform"; |
| 81 const bool kRecommendedPrefValue = true; | 82 const char kManagedCloudValue[] = "recommended_platform:managed_cloud"; |
| 83 const char kExtensionValue[] = "recommended_platform:extension"; |
| 84 const char kCommandLineValue[] = "recommended_platform:command_line"; |
| 85 const char kUserValue[] = "recommended_platform:user"; |
| 86 const char kRecommendedPlatformValue[] = |
| 87 "recommended_platform:recommended_platform"; |
| 88 } |
| 89 |
| 90 namespace recommended_cloud_pref { |
| 91 const char kManagedPlatformValue[] = "recommended_cloud:managed_platform"; |
| 92 const char kManagedCloudValue[] = "recommended_cloud:managed_cloud"; |
| 93 const char kExtensionValue[] = "recommended_cloud:extension"; |
| 94 const char kCommandLineValue[] = "recommended_cloud:command_line"; |
| 95 const char kUserValue[] = "recommended_cloud:user"; |
| 96 const char kRecommendedPlatformValue[] = |
| 97 "recommended_cloud:recommended_platform"; |
| 98 const char kRecommendedCloudValue[] = "recommended_cloud:recommended_cloud"; |
| 82 } | 99 } |
| 83 | 100 |
| 84 namespace default_pref { | 101 namespace default_pref { |
| 85 const int kDefaultValue = 7; | 102 const char kManagedPlatformValue[] = "default:managed_platform"; |
| 86 const char kHomepageValue[] = "default homepage"; | 103 const char kManagedCloudValue[] = "default:managed_cloud"; |
| 87 const std::string kSearchProviderNameValue = "AreYouFeelingExtraLucky"; | 104 const char kExtensionValue[] = "default:extension"; |
| 105 const char kCommandLineValue[] = "default:command_line"; |
| 106 const char kUserValue[] = "default:user"; |
| 107 const char kRecommendedPlatformValue[] = "default:recommended_platform"; |
| 108 const char kRecommendedCloudValue[] = "default:recommended_cloud"; |
| 109 const char kDefaultValue[] = "default:default"; |
| 88 } | 110 } |
| 89 | 111 |
| 90 class PrefValueStoreTest : public testing::Test { | 112 class PrefValueStoreTest : public testing::Test { |
| 91 protected: | 113 protected: |
| 92 virtual void SetUp() { | 114 virtual void SetUp() { |
| 93 // Create TestingPrefStores. | 115 // Create TestingPrefStores. |
| 94 CreateManagedPlatformPrefs(); | 116 CreateManagedPlatformPrefs(); |
| 95 CreateDeviceManagementPrefs(); | 117 CreateManagedCloudPrefs(); |
| 96 CreateExtensionPrefs(); | 118 CreateExtensionPrefs(); |
| 97 CreateCommandLinePrefs(); | 119 CreateCommandLinePrefs(); |
| 98 CreateUserPrefs(); | 120 CreateUserPrefs(); |
| 99 CreateRecommendedPrefs(); | 121 CreateRecommendedPlatformPrefs(); |
| 122 CreateRecommendedCloudPrefs(); |
| 100 CreateDefaultPrefs(); | 123 CreateDefaultPrefs(); |
| 101 | 124 |
| 102 // Create a fresh PrefValueStore. | 125 // Create a fresh PrefValueStore. |
| 103 pref_value_store_.reset(new PrefValueStore( | 126 pref_value_store_.reset(new PrefValueStore( |
| 104 managed_platform_pref_store_, | 127 managed_platform_pref_store_, |
| 105 device_management_pref_store_, | 128 managed_cloud_pref_store_, |
| 106 extension_pref_store_, | 129 extension_pref_store_, |
| 107 command_line_pref_store_, | 130 command_line_pref_store_, |
| 108 user_pref_store_, | 131 user_pref_store_, |
| 109 recommended_pref_store_, | 132 recommended_platform_pref_store_, |
| 133 recommended_cloud_pref_store_, |
| 110 default_pref_store_, | 134 default_pref_store_, |
| 111 &pref_notifier_)); | 135 &pref_notifier_)); |
| 112 } | 136 } |
| 113 | 137 |
| 114 // Creates a new dictionary and stores some sample user preferences | 138 void CreateManagedPlatformPrefs() { |
| 115 // in it. | 139 managed_platform_pref_store_ = new TestingPrefStore; |
| 140 managed_platform_pref_store_->SetString( |
| 141 prefs::kManagedPlatformPref, |
| 142 managed_platform_pref::kManagedPlatformValue); |
| 143 } |
| 144 |
| 145 void CreateManagedCloudPrefs() { |
| 146 managed_cloud_pref_store_ = new TestingPrefStore; |
| 147 managed_cloud_pref_store_->SetString( |
| 148 prefs::kManagedPlatformPref, |
| 149 managed_cloud_pref::kManagedPlatformValue); |
| 150 managed_cloud_pref_store_->SetString( |
| 151 prefs::kManagedCloudPref, |
| 152 managed_cloud_pref::kManagedCloudValue); |
| 153 } |
| 154 |
| 155 void CreateExtensionPrefs() { |
| 156 extension_pref_store_ = new TestingPrefStore; |
| 157 extension_pref_store_->SetString( |
| 158 prefs::kManagedPlatformPref, |
| 159 extension_pref::kManagedPlatformValue); |
| 160 extension_pref_store_->SetString( |
| 161 prefs::kManagedCloudPref, |
| 162 extension_pref::kManagedCloudValue); |
| 163 extension_pref_store_->SetString( |
| 164 prefs::kExtensionPref, |
| 165 extension_pref::kExtensionValue); |
| 166 } |
| 167 |
| 168 void CreateCommandLinePrefs() { |
| 169 command_line_pref_store_ = new TestingPrefStore; |
| 170 command_line_pref_store_->SetString( |
| 171 prefs::kManagedPlatformPref, |
| 172 command_line_pref::kManagedPlatformValue); |
| 173 command_line_pref_store_->SetString( |
| 174 prefs::kManagedCloudPref, |
| 175 command_line_pref::kManagedCloudValue); |
| 176 command_line_pref_store_->SetString( |
| 177 prefs::kExtensionPref, |
| 178 command_line_pref::kExtensionValue); |
| 179 command_line_pref_store_->SetString( |
| 180 prefs::kCommandLinePref, |
| 181 command_line_pref::kCommandLineValue); |
| 182 } |
| 183 |
| 116 void CreateUserPrefs() { | 184 void CreateUserPrefs() { |
| 117 user_pref_store_ = new TestingPrefStore; | 185 user_pref_store_ = new TestingPrefStore; |
| 118 user_pref_store_->SetBoolean(prefs::kDeleteCache, | 186 user_pref_store_->SetString( |
| 119 user_pref::kDeleteCacheValue); | 187 prefs::kManagedPlatformPref, |
| 120 user_pref_store_->SetInteger(prefs::kStabilityLaunchCount, | 188 user_pref::kManagedPlatformValue); |
| 121 user_pref::kStabilityLaunchCountValue); | 189 user_pref_store_->SetString( |
| 122 user_pref_store_->SetString(prefs::kCurrentThemeID, | 190 prefs::kManagedCloudPref, |
| 123 user_pref::kCurrentThemeIDValue); | 191 user_pref::kManagedCloudValue); |
| 124 user_pref_store_->SetString(prefs::kApplicationLocale, | 192 user_pref_store_->SetString( |
| 125 user_pref::kApplicationLocaleValue); | 193 prefs::kCommandLinePref, |
| 126 user_pref_store_->SetString(prefs::kDefaultSearchProviderName, | 194 user_pref::kCommandLineValue); |
| 127 user_pref::kSearchProviderNameValue); | 195 user_pref_store_->SetString( |
| 128 user_pref_store_->SetString(prefs::kHomePage, | 196 prefs::kExtensionPref, |
| 129 user_pref::kHomepageValue); | 197 user_pref::kExtensionValue); |
| 130 } | 198 user_pref_store_->SetString( |
| 131 | 199 prefs::kUserPref, |
| 132 void CreateManagedPlatformPrefs() { | 200 user_pref::kUserValue); |
| 133 managed_platform_pref_store_ = new TestingPrefStore; | 201 } |
| 134 managed_platform_pref_store_->SetString(prefs::kHomePage, | 202 |
| 135 managed_platform_pref::kHomepageValue); | 203 void CreateRecommendedPlatformPrefs() { |
| 136 } | 204 recommended_platform_pref_store_ = new TestingPrefStore; |
| 137 | 205 recommended_platform_pref_store_->SetString( |
| 138 void CreateDeviceManagementPrefs() { | 206 prefs::kManagedPlatformPref, |
| 139 device_management_pref_store_ = new TestingPrefStore; | 207 recommended_platform_pref::kManagedPlatformValue); |
| 140 device_management_pref_store_->SetString(prefs::kDefaultSearchProviderName, | 208 recommended_platform_pref_store_->SetString( |
| 141 device_management_pref::kSearchProviderNameValue); | 209 prefs::kManagedCloudPref, |
| 142 device_management_pref_store_->SetString(prefs::kHomePage, | 210 recommended_platform_pref::kManagedCloudValue); |
| 143 device_management_pref::kHomepageValue); | 211 recommended_platform_pref_store_->SetString( |
| 144 } | 212 prefs::kCommandLinePref, |
| 145 | 213 recommended_platform_pref::kCommandLineValue); |
| 146 void CreateExtensionPrefs() { | 214 recommended_platform_pref_store_->SetString( |
| 147 extension_pref_store_ = new TestingPrefStore; | 215 prefs::kExtensionPref, |
| 148 extension_pref_store_->SetString(prefs::kCurrentThemeID, | 216 recommended_platform_pref::kExtensionValue); |
| 149 extension_pref::kCurrentThemeIDValue); | 217 recommended_platform_pref_store_->SetString( |
| 150 extension_pref_store_->SetString(prefs::kHomePage, | 218 prefs::kUserPref, |
| 151 extension_pref::kHomepageValue); | 219 recommended_platform_pref::kUserValue); |
| 152 extension_pref_store_->SetString(prefs::kDefaultSearchProviderName, | 220 recommended_platform_pref_store_->SetString( |
| 153 extension_pref::kSearchProviderNameValue); | 221 prefs::kRecommendedPlatformPref, |
| 154 } | 222 recommended_platform_pref::kRecommendedPlatformValue); |
| 155 | 223 } |
| 156 void CreateCommandLinePrefs() { | 224 |
| 157 command_line_pref_store_ = new TestingPrefStore; | 225 void CreateRecommendedCloudPrefs() { |
| 158 command_line_pref_store_->SetString(prefs::kCurrentThemeID, | 226 recommended_cloud_pref_store_ = new TestingPrefStore; |
| 159 command_line_pref::kCurrentThemeIDValue); | 227 recommended_cloud_pref_store_->SetString( |
| 160 command_line_pref_store_->SetString(prefs::kApplicationLocale, | 228 prefs::kManagedPlatformPref, |
| 161 command_line_pref::kApplicationLocaleValue); | 229 recommended_cloud_pref::kManagedPlatformValue); |
| 162 command_line_pref_store_->SetString(prefs::kHomePage, | 230 recommended_cloud_pref_store_->SetString( |
| 163 command_line_pref::kHomepageValue); | 231 prefs::kManagedCloudPref, |
| 164 command_line_pref_store_->SetString(prefs::kDefaultSearchProviderName, | 232 recommended_cloud_pref::kManagedCloudValue); |
| 165 command_line_pref::kSearchProviderNameValue); | 233 recommended_cloud_pref_store_->SetString( |
| 166 } | 234 prefs::kCommandLinePref, |
| 167 | 235 recommended_cloud_pref::kCommandLineValue); |
| 168 void CreateRecommendedPrefs() { | 236 recommended_cloud_pref_store_->SetString( |
| 169 recommended_pref_store_ = new TestingPrefStore; | 237 prefs::kExtensionPref, |
| 170 recommended_pref_store_->SetInteger(prefs::kStabilityLaunchCount, | 238 recommended_cloud_pref::kExtensionValue); |
| 171 recommended_pref::kStabilityLaunchCountValue); | 239 recommended_cloud_pref_store_->SetString( |
| 172 recommended_pref_store_->SetBoolean(prefs::kRecommendedPref, | 240 prefs::kUserPref, |
| 173 recommended_pref::kRecommendedPrefValue); | 241 recommended_cloud_pref::kUserValue); |
| 242 recommended_cloud_pref_store_->SetString( |
| 243 prefs::kRecommendedPlatformPref, |
| 244 recommended_cloud_pref::kRecommendedPlatformValue); |
| 245 recommended_cloud_pref_store_->SetString( |
| 246 prefs::kRecommendedCloudPref, |
| 247 recommended_cloud_pref::kRecommendedCloudValue); |
| 174 } | 248 } |
| 175 | 249 |
| 176 void CreateDefaultPrefs() { | 250 void CreateDefaultPrefs() { |
| 177 default_pref_store_ = new TestingPrefStore; | 251 default_pref_store_ = new TestingPrefStore; |
| 178 default_pref_store_->SetInteger(prefs::kDefaultPref, | 252 default_pref_store_->SetString( |
| 179 default_pref::kDefaultValue); | 253 prefs::kManagedPlatformPref, |
| 180 } | 254 default_pref::kManagedPlatformValue); |
| 181 | 255 default_pref_store_->SetString( |
| 182 DictionaryValue* CreateSampleDictValue() { | 256 prefs::kManagedCloudPref, |
| 183 DictionaryValue* sample_dict = new DictionaryValue(); | 257 default_pref::kManagedCloudValue); |
| 184 sample_dict->SetBoolean("issample", true); | 258 default_pref_store_->SetString( |
| 185 sample_dict->SetInteger("value", 4); | 259 prefs::kCommandLinePref, |
| 186 sample_dict->SetString("descr", "Sample Test Dictionary"); | 260 default_pref::kCommandLineValue); |
| 187 return sample_dict; | 261 default_pref_store_->SetString( |
| 188 } | 262 prefs::kExtensionPref, |
| 189 | 263 default_pref::kExtensionValue); |
| 190 ListValue* CreateSampleListValue() { | 264 default_pref_store_->SetString( |
| 191 ListValue* sample_list = new ListValue(); | 265 prefs::kUserPref, |
| 192 sample_list->Set(0, Value::CreateIntegerValue(0)); | 266 default_pref::kUserValue); |
| 193 sample_list->Set(1, Value::CreateIntegerValue(1)); | 267 default_pref_store_->SetString( |
| 194 sample_list->Set(2, Value::CreateIntegerValue(2)); | 268 prefs::kRecommendedPlatformPref, |
| 195 sample_list->Set(3, Value::CreateIntegerValue(3)); | 269 default_pref::kRecommendedPlatformValue); |
| 196 return sample_list; | 270 default_pref_store_->SetString( |
| 271 prefs::kRecommendedCloudPref, |
| 272 default_pref::kRecommendedCloudValue); |
| 273 default_pref_store_->SetString( |
| 274 prefs::kDefaultPref, |
| 275 default_pref::kDefaultValue); |
| 197 } | 276 } |
| 198 | 277 |
| 199 MockPrefNotifier pref_notifier_; | 278 MockPrefNotifier pref_notifier_; |
| 200 scoped_ptr<PrefValueStore> pref_value_store_; | 279 scoped_ptr<PrefValueStore> pref_value_store_; |
| 201 | 280 |
| 202 scoped_refptr<TestingPrefStore> managed_platform_pref_store_; | 281 scoped_refptr<TestingPrefStore> managed_platform_pref_store_; |
| 203 scoped_refptr<TestingPrefStore> device_management_pref_store_; | 282 scoped_refptr<TestingPrefStore> managed_cloud_pref_store_; |
| 204 scoped_refptr<TestingPrefStore> extension_pref_store_; | 283 scoped_refptr<TestingPrefStore> extension_pref_store_; |
| 205 scoped_refptr<TestingPrefStore> command_line_pref_store_; | 284 scoped_refptr<TestingPrefStore> command_line_pref_store_; |
| 206 scoped_refptr<TestingPrefStore> user_pref_store_; | 285 scoped_refptr<TestingPrefStore> user_pref_store_; |
| 207 scoped_refptr<TestingPrefStore> recommended_pref_store_; | 286 scoped_refptr<TestingPrefStore> recommended_platform_pref_store_; |
| 287 scoped_refptr<TestingPrefStore> recommended_cloud_pref_store_; |
| 208 scoped_refptr<TestingPrefStore> default_pref_store_; | 288 scoped_refptr<TestingPrefStore> default_pref_store_; |
| 209 }; | 289 }; |
| 210 | 290 |
| 211 TEST_F(PrefValueStoreTest, GetValue) { | 291 TEST_F(PrefValueStoreTest, GetValue) { |
| 212 Value* value; | 292 Value* value; |
| 213 | 293 |
| 214 // Test getting a managed platform value overwriting a user-defined and | 294 // The following tests read a value from the PrefService. The preferences are |
| 215 // extension-defined value. | 295 // set in a way such that all lower-priority stores have a value and we can |
| 216 value = NULL; | 296 // test whether overrides work correctly. |
| 217 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomePage, Value::TYPE_STRING, | 297 |
| 218 &value)); | 298 // Test getting a managed platform value. |
| 299 value = NULL; |
| 300 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kManagedPlatformPref, |
| 301 Value::TYPE_STRING, &value)); |
| 219 std::string actual_str_value; | 302 std::string actual_str_value; |
| 220 EXPECT_TRUE(value->GetAsString(&actual_str_value)); | 303 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 221 EXPECT_EQ(managed_platform_pref::kHomepageValue, actual_str_value); | 304 EXPECT_EQ(managed_platform_pref::kManagedPlatformValue, actual_str_value); |
| 222 | 305 |
| 223 // Test getting a managed platform value overwriting a user-defined value. | 306 // Test getting a managed cloud value. |
| 224 value = NULL; | 307 value = NULL; |
| 225 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultSearchProviderName, | 308 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kManagedCloudPref, |
| 226 Value::TYPE_STRING, &value)); | 309 Value::TYPE_STRING, &value)); |
| 227 EXPECT_TRUE(value->GetAsString(&actual_str_value)); | 310 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 228 EXPECT_EQ(device_management_pref::kSearchProviderNameValue, | 311 EXPECT_EQ(managed_cloud_pref::kManagedCloudValue, actual_str_value); |
| 312 |
| 313 // Test getting an extension value. |
| 314 value = NULL; |
| 315 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kExtensionPref, |
| 316 Value::TYPE_STRING, &value)); |
| 317 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 318 EXPECT_EQ(extension_pref::kExtensionValue, actual_str_value); |
| 319 |
| 320 // Test getting a command-line value. |
| 321 value = NULL; |
| 322 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCommandLinePref, |
| 323 Value::TYPE_STRING, &value)); |
| 324 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 325 EXPECT_EQ(command_line_pref::kCommandLineValue, actual_str_value); |
| 326 |
| 327 // Test getting a user-set value. |
| 328 value = NULL; |
| 329 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kUserPref, |
| 330 Value::TYPE_STRING, &value)); |
| 331 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 332 EXPECT_EQ(user_pref::kUserValue, actual_str_value); |
| 333 |
| 334 // Test getting a user set value overwriting a recommended value. |
| 335 value = NULL; |
| 336 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kRecommendedPlatformPref, |
| 337 Value::TYPE_STRING, &value)); |
| 338 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 339 EXPECT_EQ(recommended_platform_pref::kRecommendedPlatformValue, |
| 229 actual_str_value); | 340 actual_str_value); |
| 230 | 341 |
| 231 // Test getting an extension value overwriting a user-defined and | |
| 232 // command-line-defined value. | |
| 233 value = NULL; | |
| 234 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kCurrentThemeID, | |
| 235 Value::TYPE_STRING, &value)); | |
| 236 EXPECT_TRUE(value->GetAsString(&actual_str_value)); | |
| 237 EXPECT_EQ(extension_pref::kCurrentThemeIDValue, actual_str_value); | |
| 238 | |
| 239 // Test getting a command-line value overwriting a user-defined value. | |
| 240 value = NULL; | |
| 241 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kApplicationLocale, | |
| 242 Value::TYPE_STRING, &value)); | |
| 243 EXPECT_TRUE(value->GetAsString(&actual_str_value)); | |
| 244 EXPECT_EQ(command_line_pref::kApplicationLocaleValue, actual_str_value); | |
| 245 | |
| 246 // Test getting a user-set value. | |
| 247 value = NULL; | |
| 248 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDeleteCache, | |
| 249 Value::TYPE_BOOLEAN, &value)); | |
| 250 bool actual_bool_value = false; | |
| 251 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value)); | |
| 252 EXPECT_EQ(user_pref::kDeleteCacheValue, actual_bool_value); | |
| 253 | |
| 254 // Test getting a user set value overwriting a recommended value. | |
| 255 value = NULL; | |
| 256 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kStabilityLaunchCount, | |
| 257 Value::TYPE_INTEGER, &value)); | |
| 258 int actual_int_value = -1; | |
| 259 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); | |
| 260 EXPECT_EQ(user_pref::kStabilityLaunchCountValue, actual_int_value); | |
| 261 | |
| 262 // Test getting a recommended value. | 342 // Test getting a recommended value. |
| 263 value = NULL; | 343 value = NULL; |
| 264 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kRecommendedPref, | 344 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kRecommendedCloudPref, |
| 265 Value::TYPE_BOOLEAN, &value)); | 345 Value::TYPE_STRING, &value)); |
| 266 actual_bool_value = false; | 346 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 267 EXPECT_TRUE(value->GetAsBoolean(&actual_bool_value)); | 347 EXPECT_EQ(recommended_cloud_pref::kRecommendedCloudValue, actual_str_value); |
| 268 EXPECT_EQ(recommended_pref::kRecommendedPrefValue, actual_bool_value); | |
| 269 | 348 |
| 270 // Test getting a default value. | 349 // Test getting a default value. |
| 271 value = NULL; | 350 value = NULL; |
| 272 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultPref, | 351 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kDefaultPref, |
| 273 Value::TYPE_INTEGER, &value)); | 352 Value::TYPE_STRING, &value)); |
| 274 actual_int_value = -1; | 353 EXPECT_TRUE(value->GetAsString(&actual_str_value)); |
| 275 EXPECT_TRUE(value->GetAsInteger(&actual_int_value)); | 354 EXPECT_EQ(default_pref::kDefaultValue, actual_str_value); |
| 276 EXPECT_EQ(default_pref::kDefaultValue, actual_int_value); | |
| 277 | 355 |
| 278 // Test getting a preference value that the |PrefValueStore| | 356 // Test getting a preference value that the |PrefValueStore| |
| 279 // does not contain. | 357 // does not contain. |
| 280 FundamentalValue tmp_dummy_value(true); | 358 FundamentalValue tmp_dummy_value(true); |
| 281 Value* v_null = &tmp_dummy_value; | 359 value = &tmp_dummy_value; |
| 282 ASSERT_FALSE(pref_value_store_->GetValue(prefs::kMissingPref, | 360 ASSERT_FALSE(pref_value_store_->GetValue(prefs::kMissingPref, |
| 283 Value::TYPE_STRING, &v_null)); | 361 Value::TYPE_STRING, &value)); |
| 284 ASSERT_TRUE(v_null == NULL); | 362 ASSERT_TRUE(value == NULL); |
| 285 } | 363 } |
| 286 | 364 |
| 287 TEST_F(PrefValueStoreTest, PrefChanges) { | 365 TEST_F(PrefValueStoreTest, PrefChanges) { |
| 288 // Setup. | |
| 289 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(AnyNumber()); | |
| 290 const char managed_platform_pref_path[] = "managed_platform_pref"; | |
| 291 managed_platform_pref_store_->SetString(managed_platform_pref_path, | |
| 292 "managed value"); | |
| 293 const char user_pref_path[] = "user_pref"; | |
| 294 user_pref_store_->SetString(user_pref_path, "user value"); | |
| 295 const char default_pref_path[] = "default_pref"; | |
| 296 default_pref_store_->SetString(default_pref_path, "default value"); | |
| 297 Mock::VerifyAndClearExpectations(&pref_notifier_); | |
| 298 | |
| 299 // Check pref controlled by highest-priority store. | 366 // Check pref controlled by highest-priority store. |
| 300 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(managed_platform_pref_path)); | 367 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kManagedPlatformPref)); |
| 301 managed_platform_pref_store_->NotifyPrefValueChanged( | 368 managed_platform_pref_store_->NotifyPrefValueChanged( |
| 302 managed_platform_pref_path); | 369 prefs::kManagedPlatformPref); |
| 303 Mock::VerifyAndClearExpectations(&pref_notifier_); | 370 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 304 | 371 |
| 305 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); | 372 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); |
| 306 user_pref_store_->NotifyPrefValueChanged(managed_platform_pref_path); | 373 managed_cloud_pref_store_->NotifyPrefValueChanged( |
| 374 prefs::kManagedPlatformPref); |
| 375 extension_pref_store_->NotifyPrefValueChanged( |
| 376 prefs::kManagedPlatformPref); |
| 377 command_line_pref_store_->NotifyPrefValueChanged( |
| 378 prefs::kManagedPlatformPref); |
| 379 user_pref_store_->NotifyPrefValueChanged( |
| 380 prefs::kManagedPlatformPref); |
| 381 recommended_platform_pref_store_->NotifyPrefValueChanged( |
| 382 prefs::kManagedPlatformPref); |
| 383 recommended_cloud_pref_store_->NotifyPrefValueChanged( |
| 384 prefs::kManagedPlatformPref); |
| 385 default_pref_store_->NotifyPrefValueChanged( |
| 386 prefs::kManagedPlatformPref); |
| 307 Mock::VerifyAndClearExpectations(&pref_notifier_); | 387 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 308 | 388 |
| 309 // Check pref controlled by user store. | 389 // Check pref controlled by user store. |
| 310 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(user_pref_path)); | 390 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); |
| 311 managed_platform_pref_store_->NotifyPrefValueChanged(user_pref_path); | 391 managed_platform_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); |
| 312 Mock::VerifyAndClearExpectations(&pref_notifier_); | 392 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 313 | 393 |
| 314 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(user_pref_path)); | 394 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); |
| 315 user_pref_store_->NotifyPrefValueChanged(user_pref_path); | 395 managed_cloud_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); |
| 396 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 397 |
| 398 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); |
| 399 extension_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); |
| 400 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 401 |
| 402 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); |
| 403 command_line_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); |
| 404 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 405 |
| 406 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kUserPref)); |
| 407 user_pref_store_->NotifyPrefValueChanged(prefs::kUserPref); |
| 316 Mock::VerifyAndClearExpectations(&pref_notifier_); | 408 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 317 | 409 |
| 318 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); | 410 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(_)).Times(0); |
| 319 default_pref_store_->NotifyPrefValueChanged(user_pref_path); | 411 recommended_platform_pref_store_->NotifyPrefValueChanged( |
| 412 prefs::kUserPref); |
| 413 recommended_cloud_pref_store_->NotifyPrefValueChanged( |
| 414 prefs::kUserPref); |
| 415 default_pref_store_->NotifyPrefValueChanged( |
| 416 prefs::kUserPref); |
| 320 Mock::VerifyAndClearExpectations(&pref_notifier_); | 417 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 321 | 418 |
| 322 // Check pref controlled by default-pref store. | 419 // Check pref controlled by default-pref store. |
| 323 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(default_pref_path)); | 420 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
| 324 user_pref_store_->NotifyPrefValueChanged(default_pref_path); | 421 managed_platform_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
| 325 Mock::VerifyAndClearExpectations(&pref_notifier_); | 422 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 326 | 423 |
| 327 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(default_pref_path)); | 424 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
| 328 default_pref_store_->NotifyPrefValueChanged(default_pref_path); | 425 managed_cloud_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
| 426 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 427 |
| 428 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
| 429 extension_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
| 430 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 431 |
| 432 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
| 433 command_line_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
| 434 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 435 |
| 436 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
| 437 user_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
| 438 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 439 |
| 440 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
| 441 recommended_platform_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
| 442 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 443 |
| 444 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
| 445 recommended_cloud_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
| 446 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 447 |
| 448 EXPECT_CALL(pref_notifier_, OnPreferenceChanged(prefs::kDefaultPref)); |
| 449 default_pref_store_->NotifyPrefValueChanged(prefs::kDefaultPref); |
| 329 Mock::VerifyAndClearExpectations(&pref_notifier_); | 450 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 330 } | 451 } |
| 331 | 452 |
| 332 TEST_F(PrefValueStoreTest, OnInitializationCompleted) { | 453 TEST_F(PrefValueStoreTest, OnInitializationCompleted) { |
| 333 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(0); | 454 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(0); |
| 334 managed_platform_pref_store_->SetInitializationCompleted(); | 455 managed_platform_pref_store_->SetInitializationCompleted(); |
| 335 device_management_pref_store_->SetInitializationCompleted(); | 456 managed_cloud_pref_store_->SetInitializationCompleted(); |
| 336 extension_pref_store_->SetInitializationCompleted(); | 457 extension_pref_store_->SetInitializationCompleted(); |
| 337 command_line_pref_store_->SetInitializationCompleted(); | 458 command_line_pref_store_->SetInitializationCompleted(); |
| 338 recommended_pref_store_->SetInitializationCompleted(); | 459 recommended_platform_pref_store_->SetInitializationCompleted(); |
| 460 recommended_cloud_pref_store_->SetInitializationCompleted(); |
| 339 default_pref_store_->SetInitializationCompleted(); | 461 default_pref_store_->SetInitializationCompleted(); |
| 340 Mock::VerifyAndClearExpectations(&pref_notifier_); | 462 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 341 | 463 |
| 342 // The notification should only be triggered after the last store is done. | 464 // The notification should only be triggered after the last store is done. |
| 343 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(1); | 465 EXPECT_CALL(pref_notifier_, OnInitializationCompleted()).Times(1); |
| 344 user_pref_store_->SetInitializationCompleted(); | 466 user_pref_store_->SetInitializationCompleted(); |
| 345 Mock::VerifyAndClearExpectations(&pref_notifier_); | 467 Mock::VerifyAndClearExpectations(&pref_notifier_); |
| 346 } | 468 } |
| 347 | 469 |
| 348 TEST_F(PrefValueStoreTest, PrefValueInManagedPlatformStore) { | 470 TEST_F(PrefValueStoreTest, PrefValueInManagedStore) { |
| 349 // Test a managed platform preference. | 471 EXPECT_TRUE(pref_value_store_->PrefValueInManagedStore( |
| 350 EXPECT_TRUE(pref_value_store_->PrefValueInManagedPlatformStore( | 472 prefs::kManagedPlatformPref)); |
| 351 prefs::kHomePage)); | 473 EXPECT_TRUE(pref_value_store_->PrefValueInManagedStore( |
| 352 | 474 prefs::kManagedCloudPref)); |
| 353 // Test a device management preference. | 475 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( |
| 354 EXPECT_TRUE(pref_value_store_->PrefValueInDeviceManagementStore( | 476 prefs::kExtensionPref)); |
| 355 prefs::kDefaultSearchProviderName)); | 477 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( |
| 356 | 478 prefs::kCommandLinePref)); |
| 357 // Test an extension preference. | 479 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( |
| 358 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | 480 prefs::kUserPref)); |
| 359 prefs::kCurrentThemeID)); | 481 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( |
| 360 | 482 prefs::kRecommendedPlatformPref)); |
| 361 // Test a command-line preference. | 483 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( |
| 362 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | 484 prefs::kRecommendedCloudPref)); |
| 363 prefs::kApplicationLocale)); | 485 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( |
| 364 | |
| 365 // Test a user preference. | |
| 366 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | |
| 367 prefs::kStabilityLaunchCount)); | |
| 368 | |
| 369 // Test a preference from the recommended pref store. | |
| 370 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | |
| 371 prefs::kRecommendedPref)); | |
| 372 | |
| 373 // Test a preference from the default pref store. | |
| 374 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | |
| 375 prefs::kDefaultPref)); | 486 prefs::kDefaultPref)); |
| 376 | 487 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( |
| 377 // Test a preference for which the PrefValueStore does not contain a value. | |
| 378 EXPECT_FALSE(pref_value_store_->PrefValueInManagedPlatformStore( | |
| 379 prefs::kMissingPref)); | 488 prefs::kMissingPref)); |
| 380 } | 489 } |
| 381 | 490 |
| 382 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) { | 491 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) { |
| 383 // Test a managed platform preference. | |
| 384 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(prefs::kHomePage)); | |
| 385 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | |
| 386 prefs::kHomePage)); | |
| 387 | |
| 388 // Test a device management preference. | |
| 389 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( | 492 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( |
| 390 prefs::kDefaultSearchProviderName)); | 493 prefs::kManagedPlatformPref)); |
| 391 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | |
| 392 prefs::kDefaultSearchProviderName)); | |
| 393 | |
| 394 // Test an extension preference. | |
| 395 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( | 494 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( |
| 396 prefs::kCurrentThemeID)); | 495 prefs::kManagedCloudPref)); |
| 397 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore( | 496 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( |
| 398 prefs::kCurrentThemeID)); | 497 prefs::kExtensionPref)); |
| 399 | |
| 400 // Test a command-line preference. | |
| 401 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( | 498 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 402 prefs::kApplicationLocale)); | 499 prefs::kCommandLinePref)); |
| 403 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | |
| 404 prefs::kApplicationLocale)); | |
| 405 | |
| 406 // Test a user preference. | |
| 407 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( | 500 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 408 prefs::kStabilityLaunchCount)); | 501 prefs::kUserPref)); |
| 409 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | |
| 410 prefs::kStabilityLaunchCount)); | |
| 411 | |
| 412 // Test a preference from the recommended pref store. | |
| 413 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( | 502 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 414 prefs::kRecommendedPref)); | 503 prefs::kRecommendedPlatformPref)); |
| 415 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | 504 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 416 prefs::kRecommendedPref)); | 505 prefs::kRecommendedCloudPref)); |
| 417 | |
| 418 // Test a preference from the default pref store. | |
| 419 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( | 506 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 420 prefs::kDefaultPref)); | 507 prefs::kDefaultPref)); |
| 508 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 509 prefs::kMissingPref)); |
| 510 } |
| 511 |
| 512 TEST_F(PrefValueStoreTest, PrefValueInUserStore) { |
| 513 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( |
| 514 prefs::kManagedPlatformPref)); |
| 515 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( |
| 516 prefs::kManagedCloudPref)); |
| 517 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( |
| 518 prefs::kExtensionPref)); |
| 519 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( |
| 520 prefs::kCommandLinePref)); |
| 521 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( |
| 522 prefs::kUserPref)); |
| 523 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore( |
| 524 prefs::kRecommendedPlatformPref)); |
| 525 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore( |
| 526 prefs::kRecommendedCloudPref)); |
| 527 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore( |
| 528 prefs::kDefaultPref)); |
| 529 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore( |
| 530 prefs::kMissingPref)); |
| 531 } |
| 532 |
| 533 TEST_F(PrefValueStoreTest, PrefValueFromExtensionStore) { |
| 534 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 535 prefs::kManagedPlatformPref)); |
| 536 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 537 prefs::kManagedCloudPref)); |
| 538 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore( |
| 539 prefs::kExtensionPref)); |
| 540 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 541 prefs::kCommandLinePref)); |
| 542 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 543 prefs::kUserPref)); |
| 544 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 545 prefs::kRecommendedPlatformPref)); |
| 546 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 547 prefs::kRecommendedCloudPref)); |
| 421 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | 548 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 422 prefs::kDefaultPref)); | 549 prefs::kDefaultPref)); |
| 423 | |
| 424 // Test a preference for which the PrefValueStore does not contain a value. | |
| 425 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( | |
| 426 prefs::kMissingPref)); | |
| 427 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( | 550 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 428 prefs::kMissingPref)); | 551 prefs::kMissingPref)); |
| 429 } | 552 } |
| 430 | 553 |
| 431 TEST_F(PrefValueStoreTest, PrefValueInUserStore) { | 554 TEST_F(PrefValueStoreTest, PrefValueFromUserStore) { |
| 432 // Test a managed platform preference. | |
| 433 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(prefs::kHomePage)); | |
| 434 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kHomePage)); | |
| 435 | |
| 436 // Test a device management preference. | |
| 437 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( | |
| 438 prefs::kDefaultSearchProviderName)); | |
| 439 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( | 555 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 440 prefs::kDefaultSearchProviderName)); | 556 prefs::kManagedPlatformPref)); |
| 441 | |
| 442 // Test an extension preference. | |
| 443 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( | |
| 444 prefs::kCurrentThemeID)); | |
| 445 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( | 557 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 446 prefs::kCurrentThemeID)); | 558 prefs::kManagedCloudPref)); |
| 447 | |
| 448 // Test a command-line preference. | |
| 449 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( | |
| 450 prefs::kApplicationLocale)); | |
| 451 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( | 559 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 452 prefs::kApplicationLocale)); | 560 prefs::kExtensionPref)); |
| 453 | 561 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 454 // Test a user preference. | 562 prefs::kCommandLinePref)); |
| 455 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( | |
| 456 prefs::kStabilityLaunchCount)); | |
| 457 EXPECT_TRUE(pref_value_store_->PrefValueFromUserStore( | 563 EXPECT_TRUE(pref_value_store_->PrefValueFromUserStore( |
| 458 prefs::kStabilityLaunchCount)); | 564 prefs::kUserPref)); |
| 459 | |
| 460 // Test a preference from the recommended pref store. | |
| 461 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore( | |
| 462 prefs::kRecommendedPref)); | |
| 463 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( | 565 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 464 prefs::kRecommendedPref)); | 566 prefs::kRecommendedPlatformPref)); |
| 465 | 567 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 466 // Test a preference from the default pref store. | 568 prefs::kRecommendedCloudPref)); |
| 467 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kDefaultPref)); | 569 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 468 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kDefaultPref)); | 570 prefs::kDefaultPref)); |
| 469 | 571 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 470 // Test a preference for which the PrefValueStore does not contain a value. | 572 prefs::kMissingPref)); |
| 471 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kMissingPref)); | |
| 472 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kMissingPref)); | |
| 473 } | 573 } |
| 474 | 574 |
| 475 TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) { | 575 TEST_F(PrefValueStoreTest, PrefValueFromDefaultStore) { |
| 476 // Test a managed platform preference. | 576 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 477 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore(prefs::kHomePage)); | 577 prefs::kManagedPlatformPref)); |
| 578 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 579 prefs::kManagedCloudPref)); |
| 580 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 581 prefs::kExtensionPref)); |
| 582 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 583 prefs::kCommandLinePref)); |
| 584 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 585 prefs::kUserPref)); |
| 586 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 587 prefs::kRecommendedPlatformPref)); |
| 588 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 589 prefs::kRecommendedCloudPref)); |
| 590 EXPECT_TRUE(pref_value_store_->PrefValueFromDefaultStore( |
| 591 prefs::kDefaultPref)); |
| 592 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( |
| 593 prefs::kMissingPref)); |
| 594 } |
| 478 | 595 |
| 479 // Test a device management preference. | 596 TEST_F(PrefValueStoreTest, PrefValueUserModifiable) { |
| 480 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( | 597 EXPECT_FALSE(pref_value_store_->PrefValueUserModifiable( |
| 481 prefs::kDefaultSearchProviderName)); | 598 prefs::kManagedPlatformPref)); |
| 482 | 599 EXPECT_FALSE(pref_value_store_->PrefValueUserModifiable( |
| 483 // Test an extension preference. | 600 prefs::kManagedCloudPref)); |
| 484 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( | 601 EXPECT_FALSE(pref_value_store_->PrefValueUserModifiable( |
| 485 prefs::kCurrentThemeID)); | 602 prefs::kExtensionPref)); |
| 486 | 603 EXPECT_FALSE(pref_value_store_->PrefValueUserModifiable( |
| 487 // Test a command-line preference. | 604 prefs::kCommandLinePref)); |
| 488 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( | 605 EXPECT_TRUE(pref_value_store_->PrefValueUserModifiable( |
| 489 prefs::kApplicationLocale)); | 606 prefs::kUserPref)); |
| 490 | 607 EXPECT_TRUE(pref_value_store_->PrefValueUserModifiable( |
| 491 // Test a user preference. | 608 prefs::kRecommendedPlatformPref)); |
| 492 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( | 609 EXPECT_TRUE(pref_value_store_->PrefValueUserModifiable( |
| 493 prefs::kStabilityLaunchCount)); | 610 prefs::kRecommendedCloudPref)); |
| 494 | 611 EXPECT_TRUE(pref_value_store_->PrefValueUserModifiable( |
| 495 // Test a preference from the recommended pref store. | 612 prefs::kDefaultPref)); |
| 496 EXPECT_FALSE(pref_value_store_->PrefValueFromDefaultStore( | 613 EXPECT_TRUE(pref_value_store_->PrefValueUserModifiable( |
| 497 prefs::kRecommendedPref)); | 614 prefs::kMissingPref)); |
| 498 | |
| 499 // Test a preference from the default pref store. | |
| 500 EXPECT_TRUE( | |
| 501 pref_value_store_->PrefValueFromDefaultStore(prefs::kDefaultPref)); | |
| 502 | |
| 503 // Test a preference for which the PrefValueStore does not contain a value. | |
| 504 EXPECT_FALSE( | |
| 505 pref_value_store_->PrefValueFromDefaultStore(prefs::kMissingPref)); | |
| 506 } | 615 } |
| OLD | NEW |