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

Side by Side Diff: base/prefs/overlay_user_pref_store_unittest.cc

Issue 11365112: Change PrefStore::ReadResult to a boolean. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 8 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/prefs/overlay_user_pref_store.h" 5 #include "base/prefs/overlay_user_pref_store.h"
6 #include "base/prefs/pref_store_observer_mock.h" 6 #include "base/prefs/pref_store_observer_mock.h"
7 #include "base/prefs/testing_pref_store.h" 7 #include "base/prefs/testing_pref_store.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/common/pref_names.h" 9 #include "chrome/common/pref_names.h"
10 #include "testing/gmock/include/gmock/gmock.h" 10 #include "testing/gmock/include/gmock/gmock.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 82
83 // Check successful unsubscription. 83 // Check successful unsubscription.
84 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(overlay_key))).Times(0); 84 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(overlay_key))).Times(0);
85 underlay_->SetValue(overlay_key, Value::CreateIntegerValue(47)); 85 underlay_->SetValue(overlay_key, Value::CreateIntegerValue(47));
86 overlay_->SetValue(overlay_key, Value::CreateIntegerValue(48)); 86 overlay_->SetValue(overlay_key, Value::CreateIntegerValue(48));
87 Mock::VerifyAndClearExpectations(&obs); 87 Mock::VerifyAndClearExpectations(&obs);
88 } 88 }
89 89
90 TEST_F(OverlayUserPrefStoreTest, GetAndSet) { 90 TEST_F(OverlayUserPrefStoreTest, GetAndSet) {
91 const Value* value = NULL; 91 const Value* value = NULL;
92 EXPECT_EQ(PrefStore::READ_NO_VALUE, 92 EXPECT_FALSE(overlay_->GetValue(overlay_key, &value));
93 overlay_->GetValue(overlay_key, &value)); 93 EXPECT_FALSE(underlay_->GetValue(overlay_key, &value));
94 EXPECT_EQ(PrefStore::READ_NO_VALUE,
95 underlay_->GetValue(overlay_key, &value));
96 94
97 underlay_->SetValue(overlay_key, Value::CreateIntegerValue(42)); 95 underlay_->SetValue(overlay_key, Value::CreateIntegerValue(42));
98 96
99 // Value shines through: 97 // Value shines through:
100 EXPECT_EQ(PrefStore::READ_OK, overlay_->GetValue(overlay_key, &value)); 98 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value));
101 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); 99 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
102 100
103 EXPECT_EQ(PrefStore::READ_OK, underlay_->GetValue(overlay_key, &value)); 101 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value));
104 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); 102 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
105 103
106 overlay_->SetValue(overlay_key, Value::CreateIntegerValue(43)); 104 overlay_->SetValue(overlay_key, Value::CreateIntegerValue(43));
107 105
108 EXPECT_EQ(PrefStore::READ_OK, overlay_->GetValue(overlay_key, &value)); 106 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value));
109 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 107 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
110 108
111 EXPECT_EQ(PrefStore::READ_OK, underlay_->GetValue(overlay_key, &value)); 109 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value));
112 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); 110 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
113 111
114 overlay_->RemoveValue(overlay_key); 112 overlay_->RemoveValue(overlay_key);
115 113
116 // Value shines through: 114 // Value shines through:
117 EXPECT_EQ(PrefStore::READ_OK, overlay_->GetValue(overlay_key, &value)); 115 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value));
118 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); 116 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
119 117
120 EXPECT_EQ(PrefStore::READ_OK, underlay_->GetValue(overlay_key, &value)); 118 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value));
121 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); 119 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
122 } 120 }
123 121
124 // Check that GetMutableValue does not return the dictionary of the underlay. 122 // Check that GetMutableValue does not return the dictionary of the underlay.
125 TEST_F(OverlayUserPrefStoreTest, ModifyDictionaries) { 123 TEST_F(OverlayUserPrefStoreTest, ModifyDictionaries) {
126 underlay_->SetValue(overlay_key, new DictionaryValue); 124 underlay_->SetValue(overlay_key, new DictionaryValue);
127 125
128 Value* modify = NULL; 126 Value* modify = NULL;
129 EXPECT_EQ(PrefStore::READ_OK, 127 EXPECT_TRUE(overlay_->GetMutableValue(overlay_key, &modify));
130 overlay_->GetMutableValue(overlay_key, &modify));
131 ASSERT_TRUE(modify); 128 ASSERT_TRUE(modify);
132 ASSERT_TRUE(modify->IsType(Value::TYPE_DICTIONARY)); 129 ASSERT_TRUE(modify->IsType(Value::TYPE_DICTIONARY));
133 static_cast<DictionaryValue*>(modify)->SetInteger(overlay_key, 42); 130 static_cast<DictionaryValue*>(modify)->SetInteger(overlay_key, 42);
134 131
135 Value* original_in_underlay = NULL; 132 Value* original_in_underlay = NULL;
136 EXPECT_EQ(PrefStore::READ_OK, 133 EXPECT_TRUE(underlay_->GetMutableValue(overlay_key, &original_in_underlay));
137 underlay_->GetMutableValue(overlay_key, &original_in_underlay));
138 ASSERT_TRUE(original_in_underlay); 134 ASSERT_TRUE(original_in_underlay);
139 ASSERT_TRUE(original_in_underlay->IsType(Value::TYPE_DICTIONARY)); 135 ASSERT_TRUE(original_in_underlay->IsType(Value::TYPE_DICTIONARY));
140 EXPECT_TRUE(static_cast<DictionaryValue*>(original_in_underlay)->empty()); 136 EXPECT_TRUE(static_cast<DictionaryValue*>(original_in_underlay)->empty());
141 137
142 Value* modified = NULL; 138 Value* modified = NULL;
143 EXPECT_EQ(PrefStore::READ_OK, 139 EXPECT_TRUE(overlay_->GetMutableValue(overlay_key, &modified));
144 overlay_->GetMutableValue(overlay_key, &modified));
145 ASSERT_TRUE(modified); 140 ASSERT_TRUE(modified);
146 ASSERT_TRUE(modified->IsType(Value::TYPE_DICTIONARY)); 141 ASSERT_TRUE(modified->IsType(Value::TYPE_DICTIONARY));
147 EXPECT_TRUE(Value::Equals(modify, static_cast<DictionaryValue*>(modified))); 142 EXPECT_TRUE(Value::Equals(modify, static_cast<DictionaryValue*>(modified)));
148 } 143 }
149 144
150 // Here we consider a global preference that is not overlayed. 145 // Here we consider a global preference that is not overlayed.
151 TEST_F(OverlayUserPrefStoreTest, GlobalPref) { 146 TEST_F(OverlayUserPrefStoreTest, GlobalPref) {
152 PrefStoreObserverMock obs; 147 PrefStoreObserverMock obs;
153 overlay_->AddObserver(&obs); 148 overlay_->AddObserver(&obs);
154 149
155 const Value* value = NULL; 150 const Value* value = NULL;
156 151
157 // Check that underlay first value is reported. 152 // Check that underlay first value is reported.
158 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1); 153 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1);
159 underlay_->SetValue(regular_key, Value::CreateIntegerValue(42)); 154 underlay_->SetValue(regular_key, Value::CreateIntegerValue(42));
160 Mock::VerifyAndClearExpectations(&obs); 155 Mock::VerifyAndClearExpectations(&obs);
161 156
162 // Check that underlay overwriting is reported. 157 // Check that underlay overwriting is reported.
163 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1); 158 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1);
164 underlay_->SetValue(regular_key, Value::CreateIntegerValue(43)); 159 underlay_->SetValue(regular_key, Value::CreateIntegerValue(43));
165 Mock::VerifyAndClearExpectations(&obs); 160 Mock::VerifyAndClearExpectations(&obs);
166 161
167 // Check that we get this value from the overlay 162 // Check that we get this value from the overlay
168 EXPECT_EQ(PrefStore::READ_OK, overlay_->GetValue(regular_key, &value)); 163 EXPECT_TRUE(overlay_->GetValue(regular_key, &value));
169 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 164 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
170 165
171 // Check that overwriting change in overlay is reported. 166 // Check that overwriting change in overlay is reported.
172 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1); 167 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1);
173 overlay_->SetValue(regular_key, Value::CreateIntegerValue(44)); 168 overlay_->SetValue(regular_key, Value::CreateIntegerValue(44));
174 Mock::VerifyAndClearExpectations(&obs); 169 Mock::VerifyAndClearExpectations(&obs);
175 170
176 // Check that we get this value from the overlay and the underlay. 171 // Check that we get this value from the overlay and the underlay.
177 EXPECT_EQ(PrefStore::READ_OK, overlay_->GetValue(regular_key, &value)); 172 EXPECT_TRUE(overlay_->GetValue(regular_key, &value));
178 EXPECT_TRUE(base::FundamentalValue(44).Equals(value)); 173 EXPECT_TRUE(base::FundamentalValue(44).Equals(value));
179 EXPECT_EQ(PrefStore::READ_OK, underlay_->GetValue(regular_key, &value)); 174 EXPECT_TRUE(underlay_->GetValue(regular_key, &value));
180 EXPECT_TRUE(base::FundamentalValue(44).Equals(value)); 175 EXPECT_TRUE(base::FundamentalValue(44).Equals(value));
181 176
182 // Check that overlay remove is reported. 177 // Check that overlay remove is reported.
183 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1); 178 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1);
184 overlay_->RemoveValue(regular_key); 179 overlay_->RemoveValue(regular_key);
185 Mock::VerifyAndClearExpectations(&obs); 180 Mock::VerifyAndClearExpectations(&obs);
186 181
187 // Check that value was removed from overlay and underlay 182 // Check that value was removed from overlay and underlay
188 EXPECT_EQ(PrefStore::READ_NO_VALUE, overlay_->GetValue(regular_key, &value)); 183 EXPECT_FALSE(overlay_->GetValue(regular_key, &value));
189 EXPECT_EQ(PrefStore::READ_NO_VALUE, underlay_->GetValue(regular_key, &value)); 184 EXPECT_FALSE(underlay_->GetValue(regular_key, &value));
190 185
191 // Check respecting of silence. 186 // Check respecting of silence.
192 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(0); 187 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(0);
193 overlay_->SetValueSilently(regular_key, Value::CreateIntegerValue(46)); 188 overlay_->SetValueSilently(regular_key, Value::CreateIntegerValue(46));
194 Mock::VerifyAndClearExpectations(&obs); 189 Mock::VerifyAndClearExpectations(&obs);
195 190
196 overlay_->RemoveObserver(&obs); 191 overlay_->RemoveObserver(&obs);
197 192
198 // Check successful unsubscription. 193 // Check successful unsubscription.
199 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(0); 194 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(0);
(...skipping 14 matching lines...) Expand all
214 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1); 209 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1);
215 underlay_->SetValue(mapped_underlay_key, Value::CreateIntegerValue(42)); 210 underlay_->SetValue(mapped_underlay_key, Value::CreateIntegerValue(42));
216 Mock::VerifyAndClearExpectations(&obs); 211 Mock::VerifyAndClearExpectations(&obs);
217 212
218 // Check that underlay overwriting is reported. 213 // Check that underlay overwriting is reported.
219 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1); 214 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1);
220 underlay_->SetValue(mapped_underlay_key, Value::CreateIntegerValue(43)); 215 underlay_->SetValue(mapped_underlay_key, Value::CreateIntegerValue(43));
221 Mock::VerifyAndClearExpectations(&obs); 216 Mock::VerifyAndClearExpectations(&obs);
222 217
223 // Check that we get this value from the overlay with both keys 218 // Check that we get this value from the overlay with both keys
224 EXPECT_EQ(PrefStore::READ_OK, overlay_->GetValue(mapped_overlay_key, &value)); 219 EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value));
225 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 220 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
226 // In this case, overlay reads directly from the underlay. 221 // In this case, overlay reads directly from the underlay.
227 EXPECT_EQ(PrefStore::READ_OK, 222 EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value));
228 overlay_->GetValue(mapped_underlay_key, &value));
229 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 223 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
230 224
231 // Check that overwriting change in overlay is reported. 225 // Check that overwriting change in overlay is reported.
232 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1); 226 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1);
233 overlay_->SetValue(mapped_overlay_key, Value::CreateIntegerValue(44)); 227 overlay_->SetValue(mapped_overlay_key, Value::CreateIntegerValue(44));
234 Mock::VerifyAndClearExpectations(&obs); 228 Mock::VerifyAndClearExpectations(&obs);
235 229
236 // Check that we get an overriden value from overlay, while reading the 230 // Check that we get an overriden value from overlay, while reading the
237 // value from underlay still holds an old value. 231 // value from underlay still holds an old value.
238 EXPECT_EQ(PrefStore::READ_OK, overlay_->GetValue(mapped_overlay_key, &value)); 232 EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value));
239 EXPECT_TRUE(base::FundamentalValue(44).Equals(value)); 233 EXPECT_TRUE(base::FundamentalValue(44).Equals(value));
240 EXPECT_EQ(PrefStore::READ_OK, 234 EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value));
241 overlay_->GetValue(mapped_underlay_key, &value));
242 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 235 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
243 EXPECT_EQ(PrefStore::READ_OK, 236 EXPECT_TRUE(underlay_->GetValue(mapped_underlay_key, &value));
244 underlay_->GetValue(mapped_underlay_key, &value));
245 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 237 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
246 238
247 // Check that hidden underlay change is not reported. 239 // Check that hidden underlay change is not reported.
248 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(0); 240 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(0);
249 underlay_->SetValue(mapped_underlay_key, Value::CreateIntegerValue(45)); 241 underlay_->SetValue(mapped_underlay_key, Value::CreateIntegerValue(45));
250 Mock::VerifyAndClearExpectations(&obs); 242 Mock::VerifyAndClearExpectations(&obs);
251 243
252 // Check that overlay remove is reported. 244 // Check that overlay remove is reported.
253 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1); 245 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1);
254 overlay_->RemoveValue(mapped_overlay_key); 246 overlay_->RemoveValue(mapped_overlay_key);
255 Mock::VerifyAndClearExpectations(&obs); 247 Mock::VerifyAndClearExpectations(&obs);
256 248
257 // Check that underlay remove is reported. 249 // Check that underlay remove is reported.
258 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1); 250 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1);
259 underlay_->RemoveValue(mapped_underlay_key); 251 underlay_->RemoveValue(mapped_underlay_key);
260 Mock::VerifyAndClearExpectations(&obs); 252 Mock::VerifyAndClearExpectations(&obs);
261 253
262 // Check that value was removed. 254 // Check that value was removed.
263 EXPECT_EQ(PrefStore::READ_NO_VALUE, 255 EXPECT_FALSE(overlay_->GetValue(mapped_overlay_key, &value));
264 overlay_->GetValue(mapped_overlay_key, &value)); 256 EXPECT_FALSE(overlay_->GetValue(mapped_underlay_key, &value));
265 EXPECT_EQ(PrefStore::READ_NO_VALUE,
266 overlay_->GetValue(mapped_underlay_key, &value));
267 257
268 // Check respecting of silence. 258 // Check respecting of silence.
269 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(0); 259 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(0);
270 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_underlay_key))).Times(0); 260 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_underlay_key))).Times(0);
271 overlay_->SetValueSilently(mapped_overlay_key, Value::CreateIntegerValue(46)); 261 overlay_->SetValueSilently(mapped_overlay_key, Value::CreateIntegerValue(46));
272 Mock::VerifyAndClearExpectations(&obs); 262 Mock::VerifyAndClearExpectations(&obs);
273 263
274 overlay_->RemoveObserver(&obs); 264 overlay_->RemoveObserver(&obs);
275 265
276 // Check successful unsubscription. 266 // Check successful unsubscription.
277 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(0); 267 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(0);
278 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_underlay_key))).Times(0); 268 EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_underlay_key))).Times(0);
279 underlay_->SetValue(mapped_underlay_key, Value::CreateIntegerValue(47)); 269 underlay_->SetValue(mapped_underlay_key, Value::CreateIntegerValue(47));
280 overlay_->SetValue(mapped_overlay_key, Value::CreateIntegerValue(48)); 270 overlay_->SetValue(mapped_overlay_key, Value::CreateIntegerValue(48));
281 Mock::VerifyAndClearExpectations(&obs); 271 Mock::VerifyAndClearExpectations(&obs);
282 } 272 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698