| Index: trunk/src/chrome/browser/prefs/tracked/segregated_pref_store_unittest.cc
|
| ===================================================================
|
| --- trunk/src/chrome/browser/prefs/tracked/segregated_pref_store_unittest.cc (revision 269437)
|
| +++ trunk/src/chrome/browser/prefs/tracked/segregated_pref_store_unittest.cc (working copy)
|
| @@ -57,7 +57,8 @@
|
| class SegregatedPrefStoreTest : public testing::Test {
|
| public:
|
| SegregatedPrefStoreTest()
|
| - : read_error_delegate_data_(false,
|
| + : initialization_callback_invoked_(false),
|
| + read_error_delegate_data_(false,
|
| PersistentPrefStore::PREF_READ_ERROR_NONE),
|
| read_error_delegate_(
|
| new MockReadErrorDelegate(&read_error_delegate_data_)) {}
|
| @@ -72,7 +73,9 @@
|
| segregated_store_ = new SegregatedPrefStore(
|
| default_store_,
|
| selected_store_,
|
| - selected_pref_names);
|
| + selected_pref_names,
|
| + base::Bind(&SegregatedPrefStoreTest::InitializationCallback,
|
| + base::Unretained(this)));
|
|
|
| segregated_store_->AddObserver(&observer_);
|
| }
|
| @@ -89,6 +92,7 @@
|
| }
|
|
|
| PrefStoreObserverMock observer_;
|
| + bool initialization_callback_invoked_;
|
|
|
| scoped_refptr<TestingPrefStore> default_store_;
|
| scoped_refptr<TestingPrefStore> selected_store_;
|
| @@ -97,6 +101,12 @@
|
| MockReadErrorDelegate::Data read_error_delegate_data_;
|
|
|
| private:
|
| + void InitializationCallback() {
|
| + EXPECT_FALSE(observer_.initialized);
|
| + EXPECT_FALSE(initialization_callback_invoked_);
|
| + initialization_callback_invoked_ = true;
|
| + }
|
| +
|
| scoped_ptr<MockReadErrorDelegate> read_error_delegate_;
|
| };
|
|
|
| @@ -145,9 +155,26 @@
|
| ASSERT_TRUE(segregated_store_->GetValue(kUnselectedPref, NULL));
|
| }
|
|
|
| +TEST_F(SegregatedPrefStoreTest, PreviouslySelected) {
|
| + selected_store_->SetValue(kUnselectedPref, new base::StringValue(kValue1));
|
| + segregated_store_->ReadPrefs();
|
| + // It will read from the selected store.
|
| + ASSERT_TRUE(segregated_store_->GetValue(kUnselectedPref, NULL));
|
| + ASSERT_TRUE(selected_store_->GetValue(kUnselectedPref, NULL));
|
| + ASSERT_FALSE(default_store_->GetValue(kUnselectedPref, NULL));
|
| +
|
| + // But when we update the value...
|
| + segregated_store_->SetValue(kUnselectedPref, new base::StringValue(kValue2));
|
| + // ...it will be migrated.
|
| + ASSERT_TRUE(segregated_store_->GetValue(kUnselectedPref, NULL));
|
| + ASSERT_FALSE(selected_store_->GetValue(kUnselectedPref, NULL));
|
| + ASSERT_TRUE(default_store_->GetValue(kUnselectedPref, NULL));
|
| +}
|
| +
|
| TEST_F(SegregatedPrefStoreTest, Observer) {
|
| EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE,
|
| segregated_store_->ReadPrefs());
|
| + EXPECT_TRUE(initialization_callback_invoked_);
|
| EXPECT_TRUE(observer_.initialized);
|
| EXPECT_TRUE(observer_.initialization_success);
|
| EXPECT_TRUE(observer_.changed_keys.empty());
|
|
|