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

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: Rebase and fix conflict with ptr migration work. 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
« no previous file with comments | « components/prefs/in_memory_pref_store.cc ('k') | components/prefs/prefs.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/memory/ptr_util.h"
8 #include "base/values.h"
9 #include "components/prefs/pref_store_observer_mock.h"
10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12 namespace {
13 const char kTestPref[] = "test.pref";
14
15 class InMemoryPrefStoreTest : public testing::Test {
16 public:
17 InMemoryPrefStoreTest() { }
18
19 void SetUp() override { store_ = new InMemoryPrefStore(); }
20 protected:
21 scoped_refptr<InMemoryPrefStore> store_;
22 PrefStoreObserverMock observer_;
23 };
24
25 TEST_F(InMemoryPrefStoreTest, SetGetValue) {
26 const base::Value* value = NULL;
27 base::Value* mutable_value = NULL;
28 EXPECT_FALSE(store_->GetValue(kTestPref, &value));
29 EXPECT_FALSE(store_->GetMutableValue(kTestPref, &mutable_value));
30
31 store_->SetValue(kTestPref, base::WrapUnique(new base::FundamentalValue(42)),
32 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
33 EXPECT_TRUE(store_->GetValue(kTestPref, &value));
34 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
35 EXPECT_TRUE(store_->GetMutableValue(kTestPref, &mutable_value));
36 EXPECT_TRUE(base::FundamentalValue(42).Equals(mutable_value));
37
38 store_->RemoveValue(kTestPref, WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
39 EXPECT_FALSE(store_->GetValue(kTestPref, &value));
40 EXPECT_FALSE(store_->GetMutableValue(kTestPref, &mutable_value));
41 }
42
43 TEST_F(InMemoryPrefStoreTest, GetSetObserver) {
44 // Starts with no observers.
45 EXPECT_FALSE(store_->HasObservers());
46
47 // Add one.
48 store_->AddObserver(&observer_);
49 EXPECT_TRUE(store_->HasObservers());
50
51 // Remove only observer.
52 store_->RemoveObserver(&observer_);
53 EXPECT_FALSE(store_->HasObservers());
54 }
55
56 TEST_F(InMemoryPrefStoreTest, CallObserver) {
57 // With observer included.
58 store_->AddObserver(&observer_);
59
60 // Triggers on SetValue.
61 store_->SetValue(kTestPref, base::WrapUnique(new base::FundamentalValue(42)),
62 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
63 observer_.VerifyAndResetChangedKey(kTestPref);
64
65 // And RemoveValue.
66 store_->RemoveValue(kTestPref, WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
67 observer_.VerifyAndResetChangedKey(kTestPref);
68
69 // But not SetValueSilently.
70 store_->SetValueSilently(kTestPref,
71 base::WrapUnique(new base::FundamentalValue(42)),
72 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
73 EXPECT_EQ(0u, observer_.changed_keys.size());
74
75 // On multiple RemoveValues only the first one triggers observer.
76 store_->RemoveValue(kTestPref, WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
77 observer_.VerifyAndResetChangedKey(kTestPref);
78 store_->RemoveValue(kTestPref, WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
79 EXPECT_EQ(0u, observer_.changed_keys.size());
80
81 // Doesn't make call on removed observers.
82 store_->RemoveObserver(&observer_);
83 store_->SetValue(kTestPref, base::WrapUnique(new base::FundamentalValue(42)),
84 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
85 store_->RemoveValue(kTestPref, WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
86 EXPECT_EQ(0u, observer_.changed_keys.size());
87 }
88
89 TEST_F(InMemoryPrefStoreTest, Initialization) {
90 EXPECT_TRUE(store_->IsInitializationComplete());
91 }
92
93 TEST_F(InMemoryPrefStoreTest, ReadOnly) {
94 EXPECT_FALSE(store_->ReadOnly());
95 }
96
97 TEST_F(InMemoryPrefStoreTest, GetReadError) {
98 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, store_->GetReadError());
99 }
100
101 TEST_F(InMemoryPrefStoreTest, ReadPrefs) {
102 EXPECT_EQ(PersistentPrefStore::PREF_READ_ERROR_NONE, store_->ReadPrefs());
103 }
104
105 } // namespace
OLDNEW
« no previous file with comments | « components/prefs/in_memory_pref_store.cc ('k') | components/prefs/prefs.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698