OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "app/test/data/resource.h" | 5 #include "app/test/data/resource.h" |
6 #include "base/scoped_ptr.h" | 6 #include "base/scoped_ptr.h" |
7 #include "base/values.h" | 7 #include "base/values.h" |
8 #include "chrome/browser/dummy_pref_store.h" | 8 #include "chrome/browser/dummy_pref_store.h" |
9 #include "chrome/browser/pref_value_store.h" | 9 #include "chrome/browser/pref_value_store.h" |
10 | 10 |
11 #include "testing/gmock/include/gmock/gmock.h" | 11 #include "testing/gmock/include/gmock/gmock.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
13 | 13 |
14 using testing::_; | 14 using testing::_; |
15 using testing::Mock; | 15 using testing::Mock; |
16 | 16 |
17 // Names of the preferences used in this test program. | 17 // Names of the preferences used in this test program. |
18 namespace prefs { | 18 namespace prefs { |
19 const wchar_t kCurrentThemeID[] = L"extensions.theme.id"; | 19 const wchar_t kCurrentThemeID[] = L"extensions.theme.id"; |
20 const wchar_t kDeleteCache[] = L"browser.clear_data.cache"; | 20 const wchar_t kDeleteCache[] = L"browser.clear_data.cache"; |
21 const wchar_t kExtensionPref[] = L"extension.pref"; | |
22 const wchar_t kHomepage[] = L"homepage"; | 21 const wchar_t kHomepage[] = L"homepage"; |
23 const wchar_t kMaxTabs[] = L"tabs.max_tabs"; | 22 const wchar_t kMaxTabs[] = L"tabs.max_tabs"; |
24 const wchar_t kMissingPref[] = L"this.pref.does_not_exist"; | 23 const wchar_t kMissingPref[] = L"this.pref.does_not_exist"; |
25 const wchar_t kRecommendedPref[] = L"this.pref.recommended_value_only"; | 24 const wchar_t kRecommendedPref[] = L"this.pref.recommended_value_only"; |
26 const wchar_t kSampleDict[] = L"sample.dict"; | 25 const wchar_t kSampleDict[] = L"sample.dict"; |
27 const wchar_t kSampleList[] = L"sample.list"; | 26 const wchar_t kSampleList[] = L"sample.list"; |
28 } | 27 } |
29 | 28 |
30 // Potentailly expected values of all preferences used in this test program. | 29 // Potentailly expected values of all preferences used in this test program. |
31 // The "user" namespace is defined globally in an ARM system header, so we need | 30 // The "user" namespace is defined globally in an ARM system header, so we need |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 user_pref_store_->set_prefs_written(false); | 229 user_pref_store_->set_prefs_written(false); |
231 pref_value_store_->WritePrefs(); | 230 pref_value_store_->WritePrefs(); |
232 ASSERT_TRUE(user_pref_store_->get_prefs_written()); | 231 ASSERT_TRUE(user_pref_store_->get_prefs_written()); |
233 } | 232 } |
234 | 233 |
235 TEST_F(PrefValueStoreTest, SetUserPrefValue) { | 234 TEST_F(PrefValueStoreTest, SetUserPrefValue) { |
236 Value* new_value = NULL; | 235 Value* new_value = NULL; |
237 Value* actual_value = NULL; | 236 Value* actual_value = NULL; |
238 | 237 |
239 // Test that enforced values can not be set. | 238 // Test that enforced values can not be set. |
240 ASSERT_TRUE(pref_value_store_->PrefValueIsManaged(prefs::kHomepage)); | 239 ASSERT_TRUE(pref_value_store_->PrefValueInManagedStore(prefs::kHomepage)); |
241 // The Ownership is tranfered to |PrefValueStore|. | 240 // The Ownership is tranfered to |PrefValueStore|. |
242 new_value = Value::CreateStringValue(L"http://www.youtube.com"); | 241 new_value = Value::CreateStringValue(L"http://www.youtube.com"); |
243 pref_value_store_->SetUserPrefValue(prefs::kHomepage, new_value); | 242 pref_value_store_->SetUserPrefValue(prefs::kHomepage, new_value); |
244 | 243 |
245 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomepage, &actual_value)); | 244 ASSERT_TRUE(pref_value_store_->GetValue(prefs::kHomepage, &actual_value)); |
246 std::wstring value_str; | 245 std::wstring value_str; |
247 actual_value->GetAsString(&value_str); | 246 actual_value->GetAsString(&value_str); |
248 ASSERT_EQ(enforced_pref::kHomepageValue, value_str); | 247 ASSERT_EQ(enforced_pref::kHomepageValue, value_str); |
249 | 248 |
250 // User preferences values can be set | 249 // User preferences values can be set |
251 ASSERT_FALSE(pref_value_store_->PrefValueIsManaged(prefs::kMaxTabs)); | 250 ASSERT_FALSE(pref_value_store_->PrefValueInManagedStore(prefs::kMaxTabs)); |
252 actual_value = NULL; | 251 actual_value = NULL; |
253 pref_value_store_->GetValue(prefs::kMaxTabs, &actual_value); | 252 pref_value_store_->GetValue(prefs::kMaxTabs, &actual_value); |
254 int int_value; | 253 int int_value; |
255 EXPECT_TRUE(actual_value->GetAsInteger(&int_value)); | 254 EXPECT_TRUE(actual_value->GetAsInteger(&int_value)); |
256 EXPECT_EQ(user_pref::kMaxTabsValue, int_value); | 255 EXPECT_EQ(user_pref::kMaxTabsValue, int_value); |
257 | 256 |
258 new_value = Value::CreateIntegerValue(1); | 257 new_value = Value::CreateIntegerValue(1); |
259 pref_value_store_->SetUserPrefValue(prefs::kMaxTabs, new_value); | 258 pref_value_store_->SetUserPrefValue(prefs::kMaxTabs, new_value); |
260 actual_value = NULL; | 259 actual_value = NULL; |
261 pref_value_store_->GetValue(prefs::kMaxTabs, &actual_value); | 260 pref_value_store_->GetValue(prefs::kMaxTabs, &actual_value); |
(...skipping 15 matching lines...) Expand all Loading... |
277 pref_value_store_->SetUserPrefValue(prefs::kSampleList, expected_list_value); | 276 pref_value_store_->SetUserPrefValue(prefs::kSampleList, expected_list_value); |
278 | 277 |
279 actual_value = NULL; | 278 actual_value = NULL; |
280 key = prefs::kSampleList; | 279 key = prefs::kSampleList; |
281 pref_value_store_->GetValue(key, &actual_value); | 280 pref_value_store_->GetValue(key, &actual_value); |
282 | 281 |
283 ASSERT_EQ(expected_list_value, actual_value); | 282 ASSERT_EQ(expected_list_value, actual_value); |
284 ASSERT_TRUE(expected_list_value->Equals(actual_value)); | 283 ASSERT_TRUE(expected_list_value->Equals(actual_value)); |
285 } | 284 } |
286 | 285 |
287 TEST_F(PrefValueStoreTest, PrefValueIsManaged) { | 286 TEST_F(PrefValueStoreTest, PrefValueInManagedStore) { |
288 // Test an enforced preference. | 287 // Test an enforced preference. |
289 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomepage)); | 288 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomepage)); |
290 EXPECT_TRUE(pref_value_store_->PrefValueIsManaged(prefs::kHomepage)); | 289 EXPECT_TRUE(pref_value_store_->PrefValueInManagedStore(prefs::kHomepage)); |
| 290 |
| 291 // Test an extension preference. |
| 292 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); |
| 293 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( |
| 294 prefs::kCurrentThemeID)); |
291 | 295 |
292 // Test a user preference. | 296 // Test a user preference. |
293 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kMaxTabs)); | 297 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kMaxTabs)); |
294 EXPECT_FALSE(pref_value_store_->PrefValueIsManaged(prefs::kMaxTabs)); | 298 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore(prefs::kMaxTabs)); |
295 | 299 |
296 // Test a preference from the recommended pref store. | 300 // Test a preference from the recommended pref store. |
297 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); | 301 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); |
298 EXPECT_FALSE(pref_value_store_->PrefValueIsManaged(prefs::kRecommendedPref)); | 302 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore( |
| 303 prefs::kRecommendedPref)); |
299 | 304 |
300 // Test a preference for which the PrefValueStore does not contain a value. | 305 // Test a preference for which the PrefValueStore does not contain a value. |
301 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); | 306 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); |
302 EXPECT_FALSE(pref_value_store_->PrefValueIsManaged(prefs::kMissingPref)); | 307 EXPECT_FALSE(pref_value_store_->PrefValueInManagedStore(prefs::kMissingPref)); |
303 } | 308 } |
304 | 309 |
| 310 TEST_F(PrefValueStoreTest, PrefValueInExtensionStore) { |
| 311 // Test an enforced preference. |
| 312 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomepage)); |
| 313 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore(prefs::kHomepage)); |
| 314 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 315 prefs::kHomepage)); |
| 316 |
| 317 // Test an extension preference. |
| 318 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); |
| 319 EXPECT_TRUE(pref_value_store_->PrefValueInExtensionStore( |
| 320 prefs::kCurrentThemeID)); |
| 321 EXPECT_TRUE(pref_value_store_->PrefValueFromExtensionStore( |
| 322 prefs::kCurrentThemeID)); |
| 323 |
| 324 // Test a user preference. |
| 325 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kMaxTabs)); |
| 326 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore(prefs::kMaxTabs)); |
| 327 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore(prefs::kMaxTabs)); |
| 328 |
| 329 // Test a preference from the recommended pref store. |
| 330 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); |
| 331 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 332 prefs::kRecommendedPref)); |
| 333 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 334 prefs::kRecommendedPref)); |
| 335 |
| 336 // Test a preference for which the PrefValueStore does not contain a value. |
| 337 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); |
| 338 EXPECT_FALSE(pref_value_store_->PrefValueInExtensionStore( |
| 339 prefs::kMissingPref)); |
| 340 EXPECT_FALSE(pref_value_store_->PrefValueFromExtensionStore( |
| 341 prefs::kMissingPref)); |
| 342 } |
| 343 |
| 344 TEST_F(PrefValueStoreTest, PrefValueInUserStore) { |
| 345 // Test an enforced preference. |
| 346 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kHomepage)); |
| 347 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(prefs::kHomepage)); |
| 348 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kHomepage)); |
| 349 |
| 350 // Test an extension preference. |
| 351 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kCurrentThemeID)); |
| 352 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore( |
| 353 prefs::kCurrentThemeID)); |
| 354 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 355 prefs::kCurrentThemeID)); |
| 356 |
| 357 // Test a user preference. |
| 358 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kMaxTabs)); |
| 359 EXPECT_TRUE(pref_value_store_->PrefValueInUserStore(prefs::kMaxTabs)); |
| 360 EXPECT_TRUE(pref_value_store_->PrefValueFromUserStore(prefs::kMaxTabs)); |
| 361 |
| 362 // Test a preference from the recommended pref store. |
| 363 ASSERT_TRUE(pref_value_store_->HasPrefPath(prefs::kRecommendedPref)); |
| 364 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore( |
| 365 prefs::kRecommendedPref)); |
| 366 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore( |
| 367 prefs::kRecommendedPref)); |
| 368 |
| 369 // Test a preference for which the PrefValueStore does not contain a value. |
| 370 ASSERT_FALSE(pref_value_store_->HasPrefPath(prefs::kMissingPref)); |
| 371 EXPECT_FALSE(pref_value_store_->PrefValueInUserStore(prefs::kMissingPref)); |
| 372 EXPECT_FALSE(pref_value_store_->PrefValueFromUserStore(prefs::kMissingPref)); |
| 373 } |
OLD | NEW |