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

Side by Side Diff: components/prefs/in_memory_pref_store_unittest.cc

Issue 1881253003: Create a PrefStore in support of Blimp metrics collection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add in_memory_pref_store to prefs.gyp. Created 4 years, 8 months 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "components/prefs/in_memory_pref_store.h"
6
7 #include "base/values.h"
8 #include "components/prefs/pref_store_observer_mock.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 namespace {
12 const char kTestPref[] = "test.pref";
13
14 class InMemoryPrefStoreTest : public testing::Test {
15 public:
16 InMemoryPrefStoreTest() { }
17
18 void SetUp() override { store_ = new InMemoryPrefStore(); }
19 protected:
20 scoped_refptr<InMemoryPrefStore> store_;
21 PrefStoreObserverMock observer_;
22 };
23
24 TEST_F(InMemoryPrefStoreTest, SetGetValue) {
25 const base::Value* value = NULL;
26 base::Value* mutable_value = NULL;
27 EXPECT_FALSE(store_->GetValue(kTestPref, &value));
28 EXPECT_FALSE(store_->GetMutableValue(kTestPref, &mutable_value));
29
30 store_->SetValue(kTestPref, make_scoped_ptr(new base::FundamentalValue(42)),
31 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
32 EXPECT_TRUE(store_->GetValue(kTestPref, &value));
33 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
34 EXPECT_TRUE(store_->GetMutableValue(kTestPref, &mutable_value));
35 EXPECT_TRUE(base::FundamentalValue(42).Equals(mutable_value));
36
37 store_->RemoveValue(kTestPref, WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
38 EXPECT_FALSE(store_->GetValue(kTestPref, &value));
39 EXPECT_FALSE(store_->GetMutableValue(kTestPref, &mutable_value));
40 }
41
42 TEST_F(InMemoryPrefStoreTest, GetSetObserver) {
43 // Starts with no observers.
44 EXPECT_FALSE(store_->HasObservers());
45
46 // Add one.
47 store_->AddObserver(&observer_);
48 EXPECT_TRUE(store_->HasObservers());
49
50 // Remove only observer.
51 store_->RemoveObserver(&observer_);
52 EXPECT_FALSE(store_->HasObservers());
53 }
54
55 TEST_F(InMemoryPrefStoreTest, CallObserver) {
56 // With observer included.
57 store_->AddObserver(&observer_);
58
59 // Triggers on SetValue.
60 store_->SetValue(kTestPref, make_scoped_ptr(new base::FundamentalValue(42)),
61 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
62 observer_.VerifyAndResetChangedKey(kTestPref);
63
64 // And RemoveValue.
65 store_->RemoveValue(kTestPref, WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
66 observer_.VerifyAndResetChangedKey(kTestPref);
67
68 // But not SetValueSilently.
69 store_->SetValueSilently(kTestPref,
70 make_scoped_ptr(new base::FundamentalValue(42)),
71 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
72 EXPECT_EQ(0u, observer_.changed_keys.size());
73
74 // On multiple RemoveValues only the first one triggers observer.
75 store_->RemoveValue(kTestPref, WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
76 observer_.VerifyAndResetChangedKey(kTestPref);
77 store_->RemoveValue(kTestPref, WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
78 EXPECT_EQ(0u, observer_.changed_keys.size());
79
80 // Doesn't make call on removed observers.
81 store_->RemoveObserver(&observer_);
82 store_->SetValue(kTestPref, make_scoped_ptr(new base::FundamentalValue(42)),
83 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
84 store_->RemoveValue(kTestPref, WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
85 EXPECT_EQ(0u, observer_.changed_keys.size());
86 }
87
88 TEST_F(InMemoryPrefStoreTest, Initialization) {
89 EXPECT_TRUE(store_->IsInitializationComplete());
90 }
91
92 TEST_F(InMemoryPrefStoreTest, ReadOnly) {
93 EXPECT_FALSE(store_->ReadOnly());
94 }
95
96 TEST_F(InMemoryPrefStoreTest, GetReadError) {
97 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, store_->GetReadError());
98 }
99
100 TEST_F(InMemoryPrefStoreTest, ReadPrefs) {
101 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, store_->ReadPrefs());
102 }
103
104 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698