| OLD | NEW |
| 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 "components/prefs/overlay_user_pref_store.h" | 5 #include "components/prefs/overlay_user_pref_store.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 #include "components/prefs/pref_store_observer_mock.h" | 9 #include "components/prefs/pref_store_observer_mock.h" |
| 10 #include "components/prefs/testing_pref_store.h" | 10 #include "components/prefs/testing_pref_store.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 | 45 |
| 46 scoped_refptr<TestingPrefStore> underlay_; | 46 scoped_refptr<TestingPrefStore> underlay_; |
| 47 scoped_refptr<OverlayUserPrefStore> overlay_; | 47 scoped_refptr<OverlayUserPrefStore> overlay_; |
| 48 }; | 48 }; |
| 49 | 49 |
| 50 TEST_F(OverlayUserPrefStoreTest, Observer) { | 50 TEST_F(OverlayUserPrefStoreTest, Observer) { |
| 51 PrefStoreObserverMock obs; | 51 PrefStoreObserverMock obs; |
| 52 overlay_->AddObserver(&obs); | 52 overlay_->AddObserver(&obs); |
| 53 | 53 |
| 54 // Check that underlay first value is reported. | 54 // Check that underlay first value is reported. |
| 55 underlay_->SetValue(overlay_key, base::MakeUnique<FundamentalValue>(42), | 55 underlay_->SetValue(overlay_key, base::MakeUnique<Value>(42), |
| 56 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 56 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 57 obs.VerifyAndResetChangedKey(overlay_key); | 57 obs.VerifyAndResetChangedKey(overlay_key); |
| 58 | 58 |
| 59 // Check that underlay overwriting is reported. | 59 // Check that underlay overwriting is reported. |
| 60 underlay_->SetValue(overlay_key, base::MakeUnique<FundamentalValue>(43), | 60 underlay_->SetValue(overlay_key, base::MakeUnique<Value>(43), |
| 61 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 61 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 62 obs.VerifyAndResetChangedKey(overlay_key); | 62 obs.VerifyAndResetChangedKey(overlay_key); |
| 63 | 63 |
| 64 // Check that overwriting change in overlay is reported. | 64 // Check that overwriting change in overlay is reported. |
| 65 overlay_->SetValue(overlay_key, base::MakeUnique<FundamentalValue>(44), | 65 overlay_->SetValue(overlay_key, base::MakeUnique<Value>(44), |
| 66 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 66 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 67 obs.VerifyAndResetChangedKey(overlay_key); | 67 obs.VerifyAndResetChangedKey(overlay_key); |
| 68 | 68 |
| 69 // Check that hidden underlay change is not reported. | 69 // Check that hidden underlay change is not reported. |
| 70 underlay_->SetValue(overlay_key, base::MakeUnique<FundamentalValue>(45), | 70 underlay_->SetValue(overlay_key, base::MakeUnique<Value>(45), |
| 71 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 71 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 72 EXPECT_TRUE(obs.changed_keys.empty()); | 72 EXPECT_TRUE(obs.changed_keys.empty()); |
| 73 | 73 |
| 74 // Check that overlay remove is reported. | 74 // Check that overlay remove is reported. |
| 75 overlay_->RemoveValue(overlay_key, | 75 overlay_->RemoveValue(overlay_key, |
| 76 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 76 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 77 obs.VerifyAndResetChangedKey(overlay_key); | 77 obs.VerifyAndResetChangedKey(overlay_key); |
| 78 | 78 |
| 79 // Check that underlay remove is reported. | 79 // Check that underlay remove is reported. |
| 80 underlay_->RemoveValue(overlay_key, | 80 underlay_->RemoveValue(overlay_key, |
| 81 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 81 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 82 obs.VerifyAndResetChangedKey(overlay_key); | 82 obs.VerifyAndResetChangedKey(overlay_key); |
| 83 | 83 |
| 84 // Check respecting of silence. | 84 // Check respecting of silence. |
| 85 overlay_->SetValueSilently(overlay_key, | 85 overlay_->SetValueSilently(overlay_key, base::MakeUnique<Value>(46), |
| 86 base::MakeUnique<FundamentalValue>(46), | |
| 87 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 86 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 88 EXPECT_TRUE(obs.changed_keys.empty()); | 87 EXPECT_TRUE(obs.changed_keys.empty()); |
| 89 | 88 |
| 90 overlay_->RemoveObserver(&obs); | 89 overlay_->RemoveObserver(&obs); |
| 91 | 90 |
| 92 // Check successful unsubscription. | 91 // Check successful unsubscription. |
| 93 underlay_->SetValue(overlay_key, base::MakeUnique<FundamentalValue>(47), | 92 underlay_->SetValue(overlay_key, base::MakeUnique<Value>(47), |
| 94 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 93 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 95 overlay_->SetValue(overlay_key, base::MakeUnique<FundamentalValue>(48), | 94 overlay_->SetValue(overlay_key, base::MakeUnique<Value>(48), |
| 96 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 95 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 97 EXPECT_TRUE(obs.changed_keys.empty()); | 96 EXPECT_TRUE(obs.changed_keys.empty()); |
| 98 } | 97 } |
| 99 | 98 |
| 100 TEST_F(OverlayUserPrefStoreTest, GetAndSet) { | 99 TEST_F(OverlayUserPrefStoreTest, GetAndSet) { |
| 101 const Value* value = NULL; | 100 const Value* value = NULL; |
| 102 EXPECT_FALSE(overlay_->GetValue(overlay_key, &value)); | 101 EXPECT_FALSE(overlay_->GetValue(overlay_key, &value)); |
| 103 EXPECT_FALSE(underlay_->GetValue(overlay_key, &value)); | 102 EXPECT_FALSE(underlay_->GetValue(overlay_key, &value)); |
| 104 | 103 |
| 105 underlay_->SetValue(overlay_key, base::MakeUnique<FundamentalValue>(42), | 104 underlay_->SetValue(overlay_key, base::MakeUnique<Value>(42), |
| 106 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 105 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 107 | 106 |
| 108 // Value shines through: | 107 // Value shines through: |
| 109 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); | 108 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); |
| 110 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); | 109 EXPECT_TRUE(base::Value(42).Equals(value)); |
| 111 | 110 |
| 112 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value)); | 111 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value)); |
| 113 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); | 112 EXPECT_TRUE(base::Value(42).Equals(value)); |
| 114 | 113 |
| 115 overlay_->SetValue(overlay_key, base::MakeUnique<FundamentalValue>(43), | 114 overlay_->SetValue(overlay_key, base::MakeUnique<Value>(43), |
| 116 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 115 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 117 | 116 |
| 118 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); | 117 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); |
| 119 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); | 118 EXPECT_TRUE(base::Value(43).Equals(value)); |
| 120 | 119 |
| 121 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value)); | 120 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value)); |
| 122 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); | 121 EXPECT_TRUE(base::Value(42).Equals(value)); |
| 123 | 122 |
| 124 overlay_->RemoveValue(overlay_key, | 123 overlay_->RemoveValue(overlay_key, |
| 125 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 124 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 126 | 125 |
| 127 // Value shines through: | 126 // Value shines through: |
| 128 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); | 127 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); |
| 129 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); | 128 EXPECT_TRUE(base::Value(42).Equals(value)); |
| 130 | 129 |
| 131 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value)); | 130 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value)); |
| 132 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); | 131 EXPECT_TRUE(base::Value(42).Equals(value)); |
| 133 } | 132 } |
| 134 | 133 |
| 135 // Check that GetMutableValue does not return the dictionary of the underlay. | 134 // Check that GetMutableValue does not return the dictionary of the underlay. |
| 136 TEST_F(OverlayUserPrefStoreTest, ModifyDictionaries) { | 135 TEST_F(OverlayUserPrefStoreTest, ModifyDictionaries) { |
| 137 underlay_->SetValue(overlay_key, base::WrapUnique(new DictionaryValue), | 136 underlay_->SetValue(overlay_key, base::WrapUnique(new DictionaryValue), |
| 138 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 137 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 139 | 138 |
| 140 Value* modify = NULL; | 139 Value* modify = NULL; |
| 141 EXPECT_TRUE(overlay_->GetMutableValue(overlay_key, &modify)); | 140 EXPECT_TRUE(overlay_->GetMutableValue(overlay_key, &modify)); |
| 142 ASSERT_TRUE(modify); | 141 ASSERT_TRUE(modify); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 157 } | 156 } |
| 158 | 157 |
| 159 // Here we consider a global preference that is not overlayed. | 158 // Here we consider a global preference that is not overlayed. |
| 160 TEST_F(OverlayUserPrefStoreTest, GlobalPref) { | 159 TEST_F(OverlayUserPrefStoreTest, GlobalPref) { |
| 161 PrefStoreObserverMock obs; | 160 PrefStoreObserverMock obs; |
| 162 overlay_->AddObserver(&obs); | 161 overlay_->AddObserver(&obs); |
| 163 | 162 |
| 164 const Value* value = NULL; | 163 const Value* value = NULL; |
| 165 | 164 |
| 166 // Check that underlay first value is reported. | 165 // Check that underlay first value is reported. |
| 167 underlay_->SetValue(regular_key, base::WrapUnique(new FundamentalValue(42)), | 166 underlay_->SetValue(regular_key, base::WrapUnique(new Value(42)), |
| 168 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 167 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 169 obs.VerifyAndResetChangedKey(regular_key); | 168 obs.VerifyAndResetChangedKey(regular_key); |
| 170 | 169 |
| 171 // Check that underlay overwriting is reported. | 170 // Check that underlay overwriting is reported. |
| 172 underlay_->SetValue(regular_key, base::WrapUnique(new FundamentalValue(43)), | 171 underlay_->SetValue(regular_key, base::WrapUnique(new Value(43)), |
| 173 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 172 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 174 obs.VerifyAndResetChangedKey(regular_key); | 173 obs.VerifyAndResetChangedKey(regular_key); |
| 175 | 174 |
| 176 // Check that we get this value from the overlay | 175 // Check that we get this value from the overlay |
| 177 EXPECT_TRUE(overlay_->GetValue(regular_key, &value)); | 176 EXPECT_TRUE(overlay_->GetValue(regular_key, &value)); |
| 178 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); | 177 EXPECT_TRUE(base::Value(43).Equals(value)); |
| 179 | 178 |
| 180 // Check that overwriting change in overlay is reported. | 179 // Check that overwriting change in overlay is reported. |
| 181 overlay_->SetValue(regular_key, base::WrapUnique(new FundamentalValue(44)), | 180 overlay_->SetValue(regular_key, base::WrapUnique(new Value(44)), |
| 182 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 181 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 183 obs.VerifyAndResetChangedKey(regular_key); | 182 obs.VerifyAndResetChangedKey(regular_key); |
| 184 | 183 |
| 185 // Check that we get this value from the overlay and the underlay. | 184 // Check that we get this value from the overlay and the underlay. |
| 186 EXPECT_TRUE(overlay_->GetValue(regular_key, &value)); | 185 EXPECT_TRUE(overlay_->GetValue(regular_key, &value)); |
| 187 EXPECT_TRUE(base::FundamentalValue(44).Equals(value)); | 186 EXPECT_TRUE(base::Value(44).Equals(value)); |
| 188 EXPECT_TRUE(underlay_->GetValue(regular_key, &value)); | 187 EXPECT_TRUE(underlay_->GetValue(regular_key, &value)); |
| 189 EXPECT_TRUE(base::FundamentalValue(44).Equals(value)); | 188 EXPECT_TRUE(base::Value(44).Equals(value)); |
| 190 | 189 |
| 191 // Check that overlay remove is reported. | 190 // Check that overlay remove is reported. |
| 192 overlay_->RemoveValue(regular_key, | 191 overlay_->RemoveValue(regular_key, |
| 193 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 192 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 194 obs.VerifyAndResetChangedKey(regular_key); | 193 obs.VerifyAndResetChangedKey(regular_key); |
| 195 | 194 |
| 196 // Check that value was removed from overlay and underlay | 195 // Check that value was removed from overlay and underlay |
| 197 EXPECT_FALSE(overlay_->GetValue(regular_key, &value)); | 196 EXPECT_FALSE(overlay_->GetValue(regular_key, &value)); |
| 198 EXPECT_FALSE(underlay_->GetValue(regular_key, &value)); | 197 EXPECT_FALSE(underlay_->GetValue(regular_key, &value)); |
| 199 | 198 |
| 200 // Check respecting of silence. | 199 // Check respecting of silence. |
| 201 overlay_->SetValueSilently(regular_key, | 200 overlay_->SetValueSilently(regular_key, base::WrapUnique(new Value(46)), |
| 202 base::WrapUnique(new FundamentalValue(46)), | |
| 203 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 201 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 204 EXPECT_TRUE(obs.changed_keys.empty()); | 202 EXPECT_TRUE(obs.changed_keys.empty()); |
| 205 | 203 |
| 206 overlay_->RemoveObserver(&obs); | 204 overlay_->RemoveObserver(&obs); |
| 207 | 205 |
| 208 // Check successful unsubscription. | 206 // Check successful unsubscription. |
| 209 underlay_->SetValue(regular_key, base::WrapUnique(new FundamentalValue(47)), | 207 underlay_->SetValue(regular_key, base::WrapUnique(new Value(47)), |
| 210 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 208 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 211 overlay_->SetValue(regular_key, base::WrapUnique(new FundamentalValue(48)), | 209 overlay_->SetValue(regular_key, base::WrapUnique(new Value(48)), |
| 212 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 210 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 213 EXPECT_TRUE(obs.changed_keys.empty()); | 211 EXPECT_TRUE(obs.changed_keys.empty()); |
| 214 } | 212 } |
| 215 | 213 |
| 216 // Check that names mapping works correctly. | 214 // Check that names mapping works correctly. |
| 217 TEST_F(OverlayUserPrefStoreTest, NamesMapping) { | 215 TEST_F(OverlayUserPrefStoreTest, NamesMapping) { |
| 218 PrefStoreObserverMock obs; | 216 PrefStoreObserverMock obs; |
| 219 overlay_->AddObserver(&obs); | 217 overlay_->AddObserver(&obs); |
| 220 | 218 |
| 221 const Value* value = NULL; | 219 const Value* value = NULL; |
| 222 | 220 |
| 223 // Check that if there is no override in the overlay, changing underlay value | 221 // Check that if there is no override in the overlay, changing underlay value |
| 224 // is reported as changing an overlay value. | 222 // is reported as changing an overlay value. |
| 225 underlay_->SetValue(mapped_underlay_key, | 223 underlay_->SetValue(mapped_underlay_key, base::WrapUnique(new Value(42)), |
| 226 base::WrapUnique(new FundamentalValue(42)), | |
| 227 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 224 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 228 obs.VerifyAndResetChangedKey(mapped_overlay_key); | 225 obs.VerifyAndResetChangedKey(mapped_overlay_key); |
| 229 | 226 |
| 230 // Check that underlay overwriting is reported. | 227 // Check that underlay overwriting is reported. |
| 231 underlay_->SetValue(mapped_underlay_key, | 228 underlay_->SetValue(mapped_underlay_key, base::WrapUnique(new Value(43)), |
| 232 base::WrapUnique(new FundamentalValue(43)), | |
| 233 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 229 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 234 obs.VerifyAndResetChangedKey(mapped_overlay_key); | 230 obs.VerifyAndResetChangedKey(mapped_overlay_key); |
| 235 | 231 |
| 236 // Check that we get this value from the overlay with both keys | 232 // Check that we get this value from the overlay with both keys |
| 237 EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value)); | 233 EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value)); |
| 238 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); | 234 EXPECT_TRUE(base::Value(43).Equals(value)); |
| 239 // In this case, overlay reads directly from the underlay. | 235 // In this case, overlay reads directly from the underlay. |
| 240 EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value)); | 236 EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value)); |
| 241 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); | 237 EXPECT_TRUE(base::Value(43).Equals(value)); |
| 242 | 238 |
| 243 // Check that overwriting change in overlay is reported. | 239 // Check that overwriting change in overlay is reported. |
| 244 overlay_->SetValue(mapped_overlay_key, | 240 overlay_->SetValue(mapped_overlay_key, base::WrapUnique(new Value(44)), |
| 245 base::WrapUnique(new FundamentalValue(44)), | |
| 246 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 241 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 247 obs.VerifyAndResetChangedKey(mapped_overlay_key); | 242 obs.VerifyAndResetChangedKey(mapped_overlay_key); |
| 248 | 243 |
| 249 // Check that we get an overriden value from overlay, while reading the | 244 // Check that we get an overriden value from overlay, while reading the |
| 250 // value from underlay still holds an old value. | 245 // value from underlay still holds an old value. |
| 251 EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value)); | 246 EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value)); |
| 252 EXPECT_TRUE(base::FundamentalValue(44).Equals(value)); | 247 EXPECT_TRUE(base::Value(44).Equals(value)); |
| 253 EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value)); | 248 EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value)); |
| 254 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); | 249 EXPECT_TRUE(base::Value(43).Equals(value)); |
| 255 EXPECT_TRUE(underlay_->GetValue(mapped_underlay_key, &value)); | 250 EXPECT_TRUE(underlay_->GetValue(mapped_underlay_key, &value)); |
| 256 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); | 251 EXPECT_TRUE(base::Value(43).Equals(value)); |
| 257 | 252 |
| 258 // Check that hidden underlay change is not reported. | 253 // Check that hidden underlay change is not reported. |
| 259 underlay_->SetValue(mapped_underlay_key, | 254 underlay_->SetValue(mapped_underlay_key, base::WrapUnique(new Value(45)), |
| 260 base::WrapUnique(new FundamentalValue(45)), | |
| 261 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 255 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 262 EXPECT_TRUE(obs.changed_keys.empty()); | 256 EXPECT_TRUE(obs.changed_keys.empty()); |
| 263 | 257 |
| 264 // Check that overlay remove is reported. | 258 // Check that overlay remove is reported. |
| 265 overlay_->RemoveValue(mapped_overlay_key, | 259 overlay_->RemoveValue(mapped_overlay_key, |
| 266 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 260 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 267 obs.VerifyAndResetChangedKey(mapped_overlay_key); | 261 obs.VerifyAndResetChangedKey(mapped_overlay_key); |
| 268 | 262 |
| 269 // Check that underlay remove is reported. | 263 // Check that underlay remove is reported. |
| 270 underlay_->RemoveValue(mapped_underlay_key, | 264 underlay_->RemoveValue(mapped_underlay_key, |
| 271 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 265 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 272 obs.VerifyAndResetChangedKey(mapped_overlay_key); | 266 obs.VerifyAndResetChangedKey(mapped_overlay_key); |
| 273 | 267 |
| 274 // Check that value was removed. | 268 // Check that value was removed. |
| 275 EXPECT_FALSE(overlay_->GetValue(mapped_overlay_key, &value)); | 269 EXPECT_FALSE(overlay_->GetValue(mapped_overlay_key, &value)); |
| 276 EXPECT_FALSE(overlay_->GetValue(mapped_underlay_key, &value)); | 270 EXPECT_FALSE(overlay_->GetValue(mapped_underlay_key, &value)); |
| 277 | 271 |
| 278 // Check respecting of silence. | 272 // Check respecting of silence. |
| 279 overlay_->SetValueSilently(mapped_overlay_key, | 273 overlay_->SetValueSilently(mapped_overlay_key, |
| 280 base::WrapUnique(new FundamentalValue(46)), | 274 base::WrapUnique(new Value(46)), |
| 281 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 275 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 282 EXPECT_TRUE(obs.changed_keys.empty()); | 276 EXPECT_TRUE(obs.changed_keys.empty()); |
| 283 | 277 |
| 284 overlay_->RemoveObserver(&obs); | 278 overlay_->RemoveObserver(&obs); |
| 285 | 279 |
| 286 // Check successful unsubscription. | 280 // Check successful unsubscription. |
| 287 underlay_->SetValue(mapped_underlay_key, | 281 underlay_->SetValue(mapped_underlay_key, base::WrapUnique(new Value(47)), |
| 288 base::WrapUnique(new FundamentalValue(47)), | |
| 289 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 282 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 290 overlay_->SetValue(mapped_overlay_key, | 283 overlay_->SetValue(mapped_overlay_key, base::WrapUnique(new Value(48)), |
| 291 base::WrapUnique(new FundamentalValue(48)), | |
| 292 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 284 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 293 EXPECT_TRUE(obs.changed_keys.empty()); | 285 EXPECT_TRUE(obs.changed_keys.empty()); |
| 294 } | 286 } |
| 295 | 287 |
| 296 // Check that mutable values are removed correctly. | 288 // Check that mutable values are removed correctly. |
| 297 TEST_F(OverlayUserPrefStoreTest, ClearMutableValues) { | 289 TEST_F(OverlayUserPrefStoreTest, ClearMutableValues) { |
| 298 // Set in overlay and underlay the same preference. | 290 // Set in overlay and underlay the same preference. |
| 299 underlay_->SetValue(overlay_key, base::WrapUnique(new FundamentalValue(42)), | 291 underlay_->SetValue(overlay_key, base::WrapUnique(new Value(42)), |
| 300 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 292 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 301 overlay_->SetValue(overlay_key, base::WrapUnique(new FundamentalValue(43)), | 293 overlay_->SetValue(overlay_key, base::WrapUnique(new Value(43)), |
| 302 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 294 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 303 | 295 |
| 304 const Value* value = nullptr; | 296 const Value* value = nullptr; |
| 305 // Check that an overlay preference is returned. | 297 // Check that an overlay preference is returned. |
| 306 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); | 298 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); |
| 307 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); | 299 EXPECT_TRUE(base::Value(43).Equals(value)); |
| 308 overlay_->ClearMutableValues(); | 300 overlay_->ClearMutableValues(); |
| 309 | 301 |
| 310 // Check that an underlay preference is returned. | 302 // Check that an underlay preference is returned. |
| 311 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); | 303 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); |
| 312 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); | 304 EXPECT_TRUE(base::Value(42).Equals(value)); |
| 313 } | 305 } |
| 314 | 306 |
| 315 TEST_F(OverlayUserPrefStoreTest, GetValues) { | 307 TEST_F(OverlayUserPrefStoreTest, GetValues) { |
| 316 // To check merge behavior, create underlay and overlay so each has a key the | 308 // To check merge behavior, create underlay and overlay so each has a key the |
| 317 // other doesn't have and they have one key in common. | 309 // other doesn't have and they have one key in common. |
| 318 underlay_->SetValue(regular_key, base::WrapUnique(new FundamentalValue(42)), | 310 underlay_->SetValue(regular_key, base::WrapUnique(new Value(42)), |
| 319 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 311 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 320 overlay_->SetValue(overlay_key, base::WrapUnique(new FundamentalValue(43)), | 312 overlay_->SetValue(overlay_key, base::WrapUnique(new Value(43)), |
| 321 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 313 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 322 underlay_->SetValue(shared_key, base::WrapUnique(new FundamentalValue(42)), | 314 underlay_->SetValue(shared_key, base::WrapUnique(new Value(42)), |
| 323 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 315 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 324 overlay_->SetValue(shared_key, base::WrapUnique(new FundamentalValue(43)), | 316 overlay_->SetValue(shared_key, base::WrapUnique(new Value(43)), |
| 325 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 317 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 326 underlay_->SetValue(mapped_underlay_key, | 318 underlay_->SetValue(mapped_underlay_key, base::WrapUnique(new Value(42)), |
| 327 base::WrapUnique(new FundamentalValue(42)), | |
| 328 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 319 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 329 overlay_->SetValue(mapped_overlay_key, | 320 overlay_->SetValue(mapped_overlay_key, base::WrapUnique(new Value(43)), |
| 330 base::WrapUnique(new FundamentalValue(43)), | |
| 331 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); | 321 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
| 332 | 322 |
| 333 auto values = overlay_->GetValues(); | 323 auto values = overlay_->GetValues(); |
| 334 const Value* value = nullptr; | 324 const Value* value = nullptr; |
| 335 // Check that an overlay preference is returned. | 325 // Check that an overlay preference is returned. |
| 336 ASSERT_TRUE(values->Get(overlay_key, &value)); | 326 ASSERT_TRUE(values->Get(overlay_key, &value)); |
| 337 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); | 327 EXPECT_TRUE(base::Value(43).Equals(value)); |
| 338 | 328 |
| 339 // Check that an underlay preference is returned. | 329 // Check that an underlay preference is returned. |
| 340 ASSERT_TRUE(values->Get(regular_key, &value)); | 330 ASSERT_TRUE(values->Get(regular_key, &value)); |
| 341 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); | 331 EXPECT_TRUE(base::Value(42).Equals(value)); |
| 342 | 332 |
| 343 // Check that the overlay is preferred. | 333 // Check that the overlay is preferred. |
| 344 ASSERT_TRUE(values->Get(shared_key, &value)); | 334 ASSERT_TRUE(values->Get(shared_key, &value)); |
| 345 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); | 335 EXPECT_TRUE(base::Value(43).Equals(value)); |
| 346 | 336 |
| 347 // Check that mapping works. | 337 // Check that mapping works. |
| 348 ASSERT_TRUE(values->Get(mapped_overlay_key, &value)); | 338 ASSERT_TRUE(values->Get(mapped_overlay_key, &value)); |
| 349 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); | 339 EXPECT_TRUE(base::Value(43).Equals(value)); |
| 350 EXPECT_FALSE(values->Get(mapped_underlay_key, &value)); | 340 EXPECT_FALSE(values->Get(mapped_underlay_key, &value)); |
| 351 } | 341 } |
| 352 | 342 |
| 353 } // namespace base | 343 } // namespace base |
| OLD | NEW |