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

Side by Side Diff: components/user_prefs/tracked/segregated_pref_store_unittest.cc

Issue 2704133006: Revert of Add PrefStore::GetValues (Closed)
Patch Set: Created 3 years, 10 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/user_prefs/tracked/segregated_pref_store.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/user_prefs/tracked/segregated_pref_store.h" 5 #include "components/user_prefs/tracked/segregated_pref_store.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/callback.h" 13 #include "base/callback.h"
14 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
15 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
16 #include "base/values.h" 16 #include "base/values.h"
17 #include "components/prefs/persistent_pref_store.h" 17 #include "components/prefs/persistent_pref_store.h"
18 #include "components/prefs/pref_store_observer_mock.h" 18 #include "components/prefs/pref_store_observer_mock.h"
19 #include "components/prefs/testing_pref_store.h" 19 #include "components/prefs/testing_pref_store.h"
20 #include "components/user_prefs/tracked/segregated_pref_store.h" 20 #include "components/user_prefs/tracked/segregated_pref_store.h"
21 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
22 22
23 namespace { 23 namespace {
24 24
25 const char kSelectedPref[] = "selected_pref"; 25 const char kSelectedPref[] = "selected_pref";
26 const char kUnselectedPref[] = "unselected_pref"; 26 const char kUnselectedPref[] = "unselected_pref";
27 const char kSharedPref[] = "shared_pref";
28 27
29 const char kValue1[] = "value1"; 28 const char kValue1[] = "value1";
30 const char kValue2[] = "value2"; 29 const char kValue2[] = "value2";
31 30
32 class MockReadErrorDelegate : public PersistentPrefStore::ReadErrorDelegate { 31 class MockReadErrorDelegate : public PersistentPrefStore::ReadErrorDelegate {
33 public: 32 public:
34 struct Data { 33 struct Data {
35 Data(bool invoked_in, PersistentPrefStore::PrefReadError read_error_in) 34 Data(bool invoked_in, PersistentPrefStore::PrefReadError read_error_in)
36 : invoked(invoked_in), read_error(read_error_in) {} 35 : invoked(invoked_in), read_error(read_error_in) {}
37 36
(...skipping 26 matching lines...) Expand all
64 PersistentPrefStore::PREF_READ_ERROR_NONE), 63 PersistentPrefStore::PREF_READ_ERROR_NONE),
65 read_error_delegate_( 64 read_error_delegate_(
66 new MockReadErrorDelegate(&read_error_delegate_data_)) {} 65 new MockReadErrorDelegate(&read_error_delegate_data_)) {}
67 66
68 void SetUp() override { 67 void SetUp() override {
69 selected_store_ = new TestingPrefStore; 68 selected_store_ = new TestingPrefStore;
70 default_store_ = new TestingPrefStore; 69 default_store_ = new TestingPrefStore;
71 70
72 std::set<std::string> selected_pref_names; 71 std::set<std::string> selected_pref_names;
73 selected_pref_names.insert(kSelectedPref); 72 selected_pref_names.insert(kSelectedPref);
74 selected_pref_names.insert(kSharedPref);
75 73
76 segregated_store_ = new SegregatedPrefStore(default_store_, selected_store_, 74 segregated_store_ = new SegregatedPrefStore(default_store_, selected_store_,
77 selected_pref_names); 75 selected_pref_names);
78 76
79 segregated_store_->AddObserver(&observer_); 77 segregated_store_->AddObserver(&observer_);
80 } 78 }
81 79
82 void TearDown() override { segregated_store_->RemoveObserver(&observer_); } 80 void TearDown() override { segregated_store_->RemoveObserver(&observer_); }
83 81
84 protected: 82 protected:
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 selected_store_->SetBlockAsyncRead(true); 267 selected_store_->SetBlockAsyncRead(true);
270 default_store_->SetBlockAsyncRead(true); 268 default_store_->SetBlockAsyncRead(true);
271 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); 269 EXPECT_FALSE(segregated_store_->IsInitializationComplete());
272 segregated_store_->ReadPrefsAsync(NULL); 270 segregated_store_->ReadPrefsAsync(NULL);
273 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); 271 EXPECT_FALSE(segregated_store_->IsInitializationComplete());
274 selected_store_->SetBlockAsyncRead(false); 272 selected_store_->SetBlockAsyncRead(false);
275 EXPECT_FALSE(segregated_store_->IsInitializationComplete()); 273 EXPECT_FALSE(segregated_store_->IsInitializationComplete());
276 default_store_->SetBlockAsyncRead(false); 274 default_store_->SetBlockAsyncRead(false);
277 EXPECT_TRUE(segregated_store_->IsInitializationComplete()); 275 EXPECT_TRUE(segregated_store_->IsInitializationComplete());
278 } 276 }
279
280 TEST_F(SegregatedPrefStoreTest, GetValues) {
281 // To check merge behavior, create selected and default stores so each has a
282 // key the other doesn't have and they have one key in common.
283 selected_store_->SetValue(kSelectedPref,
284 base::MakeUnique<base::StringValue>(kValue1),
285 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
286 default_store_->SetValue(kUnselectedPref,
287 base::MakeUnique<base::StringValue>(kValue2),
288 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
289 selected_store_->SetValue(kSharedPref,
290 base::MakeUnique<base::StringValue>(kValue1),
291 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
292
293 auto values = segregated_store_->GetValues();
294 const base::Value* value = nullptr;
295 // Check that a selected preference is returned.
296 ASSERT_TRUE(values->Get(kSelectedPref, &value));
297 EXPECT_TRUE(base::FundamentalValue(kValue1).Equals(value));
298
299 // Check that a a default preference is returned.
300 ASSERT_TRUE(values->Get(kUnselectedPref, &value));
301 EXPECT_TRUE(base::FundamentalValue(kValue2).Equals(value));
302
303 // Check that the selected preference is preferred.
304 ASSERT_TRUE(values->Get(kSharedPref, &value));
305 EXPECT_TRUE(base::FundamentalValue(kValue1).Equals(value));
306 }
OLDNEW
« no previous file with comments | « components/user_prefs/tracked/segregated_pref_store.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698