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