OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 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 "services/preferences/public/cpp/pref_observer_store.h" | 5 #include "services/preferences/public/cpp/pref_observer_store.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 | 28 |
29 bool add_observer_called() { return add_observer_called_; } | 29 bool add_observer_called() { return add_observer_called_; } |
30 const std::set<std::string>& last_preference_set() { | 30 const std::set<std::string>& last_preference_set() { |
31 return last_preference_set_; | 31 return last_preference_set_; |
32 } | 32 } |
33 bool set_preferences_called() { return set_preferences_called_; } | 33 bool set_preferences_called() { return set_preferences_called_; } |
34 | 34 |
35 // prefs::mojom::TestPreferenceManager: | 35 // prefs::mojom::TestPreferenceManager: |
36 void AddObserver(const std::vector<std::string>& preferences, | 36 void AddObserver(const std::vector<std::string>& preferences, |
37 prefs::mojom::PreferencesObserverPtr client) override; | 37 prefs::mojom::PreferencesObserverPtr client) override; |
38 void SetPreferences(const base::DictionaryValue& preferences) override; | 38 void SetPreferences( |
| 39 std::unique_ptr<base::DictionaryValue> preferences) override; |
39 | 40 |
40 private: | 41 private: |
41 bool add_observer_called_; | 42 bool add_observer_called_; |
42 std::set<std::string> last_preference_set_; | 43 std::set<std::string> last_preference_set_; |
43 bool set_preferences_called_; | 44 bool set_preferences_called_; |
44 mojo::Binding<PreferencesManager> binding_; | 45 mojo::Binding<PreferencesManager> binding_; |
45 | 46 |
46 DISALLOW_COPY_AND_ASSIGN(TestPreferenceManager); | 47 DISALLOW_COPY_AND_ASSIGN(TestPreferenceManager); |
47 }; | 48 }; |
48 | 49 |
49 void TestPreferenceManager::AddObserver( | 50 void TestPreferenceManager::AddObserver( |
50 const std::vector<std::string>& preferences, | 51 const std::vector<std::string>& preferences, |
51 prefs::mojom::PreferencesObserverPtr client) { | 52 prefs::mojom::PreferencesObserverPtr client) { |
52 add_observer_called_ = true; | 53 add_observer_called_ = true; |
53 last_preference_set_.clear(); | 54 last_preference_set_.clear(); |
54 last_preference_set_.insert(preferences.begin(), preferences.end()); | 55 last_preference_set_.insert(preferences.begin(), preferences.end()); |
55 } | 56 } |
56 | 57 |
57 void TestPreferenceManager::SetPreferences( | 58 void TestPreferenceManager::SetPreferences( |
58 const base::DictionaryValue& preferences) { | 59 std::unique_ptr<base::DictionaryValue> preferences) { |
59 set_preferences_called_ = true; | 60 set_preferences_called_ = true; |
60 } | 61 } |
61 | 62 |
62 } // namespace | 63 } // namespace |
63 | 64 |
64 class PrefObserverStoreTest : public testing::Test { | 65 class PrefObserverStoreTest : public testing::Test { |
65 public: | 66 public: |
66 PrefObserverStoreTest() {} | 67 PrefObserverStoreTest() {} |
67 ~PrefObserverStoreTest() override {} | 68 ~PrefObserverStoreTest() override {} |
68 | 69 |
69 TestPreferenceManager* manager() { return manager_.get(); } | 70 TestPreferenceManager* manager() { return manager_.get(); } |
70 PrefStoreObserverMock* observer() { return &observer_; } | 71 PrefStoreObserverMock* observer() { return &observer_; } |
71 PrefObserverStore* store() { return store_.get(); } | 72 PrefObserverStore* store() { return store_.get(); } |
72 | 73 |
73 bool Initialized() { return store_->initialized_; } | 74 bool Initialized() { return store_->initialized_; } |
74 void OnPreferencesChanged(const base::DictionaryValue& preferences) { | 75 void OnPreferencesChanged(const base::DictionaryValue& preferences) { |
75 store_->OnPreferencesChanged(std::move(preferences)); | 76 store_->OnPreferencesChanged(preferences.CreateDeepCopy()); |
76 } | 77 } |
77 | 78 |
78 // testing::Test: | 79 // testing::Test: |
79 void SetUp() override; | 80 void SetUp() override; |
80 void TearDown() override; | 81 void TearDown() override; |
81 | 82 |
82 private: | 83 private: |
83 scoped_refptr<PrefObserverStore> store_; | 84 scoped_refptr<PrefObserverStore> store_; |
84 prefs::mojom::PreferencesManagerPtr proxy_; | 85 prefs::mojom::PreferencesManagerPtr proxy_; |
85 std::unique_ptr<TestPreferenceManager> manager_; | 86 std::unique_ptr<TestPreferenceManager> manager_; |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 observer()->changed_keys.end(), key2)); | 327 observer()->changed_keys.end(), key2)); |
327 | 328 |
328 observer()->changed_keys.clear(); | 329 observer()->changed_keys.clear(); |
329 const int kValue3 = 9001; | 330 const int kValue3 = 9001; |
330 base::FundamentalValue pref3(kValue3); | 331 base::FundamentalValue pref3(kValue3); |
331 store()->SetValue(key1, pref3.CreateDeepCopy(), 0); | 332 store()->SetValue(key1, pref3.CreateDeepCopy(), 0); |
332 base::RunLoop().RunUntilIdle(); | 333 base::RunLoop().RunUntilIdle(); |
333 EXPECT_EQ(1u, observer()->changed_keys.size()); | 334 EXPECT_EQ(1u, observer()->changed_keys.size()); |
334 EXPECT_TRUE(manager()->set_preferences_called()); | 335 EXPECT_TRUE(manager()->set_preferences_called()); |
335 } | 336 } |
OLD | NEW |