OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/mock_pref_change_callback.h" | 5 #include "base/prefs/mock_pref_change_callback.h" |
6 #include "base/prefs/pref_change_registrar.h" | 6 #include "base/prefs/pref_change_registrar.h" |
7 #include "base/prefs/pref_registry_simple.h" | 7 #include "base/prefs/pref_registry_simple.h" |
8 #include "base/prefs/scoped_user_pref_update.h" | 8 #include "base/prefs/scoped_user_pref_update.h" |
9 #include "base/prefs/testing_pref_service.h" | 9 #include "base/prefs/testing_pref_service.h" |
10 #include "testing/gmock/include/gmock/gmock.h" | 10 #include "testing/gmock/include/gmock/gmock.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 MockPrefChangeCallback observer_; | 33 MockPrefChangeCallback observer_; |
34 PrefChangeRegistrar registrar_; | 34 PrefChangeRegistrar registrar_; |
35 }; | 35 }; |
36 | 36 |
37 const char ScopedUserPrefUpdateTest::kPref[] = "name"; | 37 const char ScopedUserPrefUpdateTest::kPref[] = "name"; |
38 const char ScopedUserPrefUpdateTest::kKey[] = "key"; | 38 const char ScopedUserPrefUpdateTest::kKey[] = "key"; |
39 const char ScopedUserPrefUpdateTest::kValue[] = "value"; | 39 const char ScopedUserPrefUpdateTest::kValue[] = "value"; |
40 | 40 |
41 TEST_F(ScopedUserPrefUpdateTest, RegularUse) { | 41 TEST_F(ScopedUserPrefUpdateTest, RegularUse) { |
42 // Dictionary that will be expected to be set at the end. | 42 // Dictionary that will be expected to be set at the end. |
43 DictionaryValue expected_dictionary; | 43 base::DictionaryValue expected_dictionary; |
44 expected_dictionary.SetString(kKey, kValue); | 44 expected_dictionary.SetString(kKey, kValue); |
45 | 45 |
46 { | 46 { |
47 EXPECT_CALL(observer_, OnPreferenceChanged(_)).Times(0); | 47 EXPECT_CALL(observer_, OnPreferenceChanged(_)).Times(0); |
48 DictionaryPrefUpdate update(&prefs_, kPref); | 48 DictionaryPrefUpdate update(&prefs_, kPref); |
49 DictionaryValue* value = update.Get(); | 49 base::DictionaryValue* value = update.Get(); |
50 ASSERT_TRUE(value); | 50 ASSERT_TRUE(value); |
51 value->SetString(kKey, kValue); | 51 value->SetString(kKey, kValue); |
52 | 52 |
53 // The dictionary was created for us but the creation should have happened | 53 // The dictionary was created for us but the creation should have happened |
54 // silently without notifications. | 54 // silently without notifications. |
55 Mock::VerifyAndClearExpectations(&observer_); | 55 Mock::VerifyAndClearExpectations(&observer_); |
56 | 56 |
57 // Modifications happen online and are instantly visible, though. | 57 // Modifications happen online and are instantly visible, though. |
58 const DictionaryValue* current_value = prefs_.GetDictionary(kPref); | 58 const base::DictionaryValue* current_value = prefs_.GetDictionary(kPref); |
59 ASSERT_TRUE(current_value); | 59 ASSERT_TRUE(current_value); |
60 EXPECT_TRUE(expected_dictionary.Equals(current_value)); | 60 EXPECT_TRUE(expected_dictionary.Equals(current_value)); |
61 | 61 |
62 // Now we are leaving the scope of the update so we should be notified. | 62 // Now we are leaving the scope of the update so we should be notified. |
63 observer_.Expect(kPref, &expected_dictionary); | 63 observer_.Expect(kPref, &expected_dictionary); |
64 } | 64 } |
65 Mock::VerifyAndClearExpectations(&observer_); | 65 Mock::VerifyAndClearExpectations(&observer_); |
66 | 66 |
67 const DictionaryValue* current_value = prefs_.GetDictionary(kPref); | 67 const base::DictionaryValue* current_value = prefs_.GetDictionary(kPref); |
68 ASSERT_TRUE(current_value); | 68 ASSERT_TRUE(current_value); |
69 EXPECT_TRUE(expected_dictionary.Equals(current_value)); | 69 EXPECT_TRUE(expected_dictionary.Equals(current_value)); |
70 } | 70 } |
71 | 71 |
72 TEST_F(ScopedUserPrefUpdateTest, NeverTouchAnything) { | 72 TEST_F(ScopedUserPrefUpdateTest, NeverTouchAnything) { |
73 const DictionaryValue* old_value = prefs_.GetDictionary(kPref); | 73 const base::DictionaryValue* old_value = prefs_.GetDictionary(kPref); |
74 EXPECT_CALL(observer_, OnPreferenceChanged(_)).Times(0); | 74 EXPECT_CALL(observer_, OnPreferenceChanged(_)).Times(0); |
75 { | 75 { |
76 DictionaryPrefUpdate update(&prefs_, kPref); | 76 DictionaryPrefUpdate update(&prefs_, kPref); |
77 } | 77 } |
78 const DictionaryValue* new_value = prefs_.GetDictionary(kPref); | 78 const base::DictionaryValue* new_value = prefs_.GetDictionary(kPref); |
79 EXPECT_EQ(old_value, new_value); | 79 EXPECT_EQ(old_value, new_value); |
80 Mock::VerifyAndClearExpectations(&observer_); | 80 Mock::VerifyAndClearExpectations(&observer_); |
81 } | 81 } |
OLD | NEW |