| 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 "chrome/browser/content_settings/content_settings_pref_provider.h" | 5 #include "chrome/browser/content_settings/content_settings_pref_provider.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "chrome/browser/content_settings/content_settings_mock_observer.h" | 9 #include "chrome/browser/content_settings/content_settings_mock_observer.h" |
| 10 #include "chrome/browser/prefs/browser_prefs.h" | 10 #include "chrome/browser/prefs/browser_prefs.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 ASSERT_FALSE( | 48 ASSERT_FALSE( |
| 49 provider_.DefaultSettingIsManaged(CONTENT_SETTINGS_TYPE_COOKIES)); | 49 provider_.DefaultSettingIsManaged(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 50 | 50 |
| 51 // Check setting defaults. | 51 // Check setting defaults. |
| 52 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 52 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 53 provider_.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES)); | 53 provider_.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 54 provider_.UpdateDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES, | 54 provider_.UpdateDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES, |
| 55 CONTENT_SETTING_BLOCK); | 55 CONTENT_SETTING_BLOCK); |
| 56 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 56 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 57 provider_.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES)); | 57 provider_.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 58 |
| 59 EXPECT_EQ(CONTENT_SETTING_ASK, |
| 60 provider_.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION)); |
| 61 provider_.UpdateDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 62 CONTENT_SETTING_BLOCK); |
| 63 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 64 provider_.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION)); |
| 58 } | 65 } |
| 59 | 66 |
| 60 TEST_F(PrefDefaultProviderTest, Observer) { | 67 TEST_F(PrefDefaultProviderTest, Observer) { |
| 61 MockObserver mock_observer; | 68 MockObserver mock_observer; |
| 62 EXPECT_CALL(mock_observer, | 69 EXPECT_CALL(mock_observer, |
| 63 OnContentSettingChanged(_, | 70 OnContentSettingChanged(_, |
| 64 _, | 71 _, |
| 65 CONTENT_SETTINGS_TYPE_IMAGES, | 72 CONTENT_SETTINGS_TYPE_IMAGES, |
| 66 "")); | 73 "")); |
| 67 provider_.AddObserver(&mock_observer); | 74 provider_.AddObserver(&mock_observer); |
| 68 | 75 |
| 69 provider_.UpdateDefaultSetting( | 76 provider_.UpdateDefaultSetting( |
| 70 CONTENT_SETTINGS_TYPE_IMAGES, CONTENT_SETTING_BLOCK); | 77 CONTENT_SETTINGS_TYPE_IMAGES, CONTENT_SETTING_BLOCK); |
| 78 |
| 79 EXPECT_CALL(mock_observer, |
| 80 OnContentSettingChanged( |
| 81 _, _, CONTENT_SETTINGS_TYPE_GEOLOCATION, "")); |
| 82 provider_.UpdateDefaultSetting( |
| 83 CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_BLOCK); |
| 71 } | 84 } |
| 72 | 85 |
| 73 TEST_F(PrefDefaultProviderTest, ObserveDefaultPref) { | 86 TEST_F(PrefDefaultProviderTest, ObserveDefaultPref) { |
| 74 PrefService* prefs = profile_.GetPrefs(); | 87 PrefService* prefs = profile_.GetPrefs(); |
| 75 | 88 |
| 76 // Make a copy of the default pref value so we can reset it later. | 89 // Make a copy of the default pref value so we can reset it later. |
| 77 scoped_ptr<Value> default_value(prefs->FindPreference( | 90 scoped_ptr<Value> default_value(prefs->FindPreference( |
| 78 prefs::kDefaultContentSettings)->GetValue()->DeepCopy()); | 91 prefs::kDefaultContentSettings)->GetValue()->DeepCopy()); |
| 79 | 92 |
| 80 provider_.UpdateDefaultSetting( | 93 provider_.UpdateDefaultSetting( |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 otr_provider.UpdateDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES, | 132 otr_provider.UpdateDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES, |
| 120 CONTENT_SETTING_ALLOW); | 133 CONTENT_SETTING_ALLOW); |
| 121 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 134 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 122 provider_.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES)); | 135 provider_.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 123 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 136 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 124 otr_provider.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES)); | 137 otr_provider.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 125 | 138 |
| 126 otr_provider.ShutdownOnUIThread(); | 139 otr_provider.ShutdownOnUIThread(); |
| 127 } | 140 } |
| 128 | 141 |
| 142 TEST_F(PrefDefaultProviderTest, MigrateDefaultGeolocationContentSetting) { |
| 143 TestingProfile profile; |
| 144 TestingPrefService* prefs = profile.GetTestingPrefService(); |
| 145 |
| 146 // Set obsolete preference and test if it is migrated correctly. |
| 147 prefs->SetInteger(prefs::kGeolocationDefaultContentSetting, |
| 148 CONTENT_SETTING_ALLOW); |
| 149 PrefDefaultProvider provider(prefs, false); |
| 150 |
| 151 MockObserver mock_observer; |
| 152 EXPECT_CALL(mock_observer, |
| 153 OnContentSettingChanged( |
| 154 _, _, CONTENT_SETTINGS_TYPE_GEOLOCATION, "")); |
| 155 provider.AddObserver(&mock_observer); |
| 156 |
| 157 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 158 provider.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION)); |
| 159 |
| 160 // Change obsolete preference and test if it migrated correctly. |
| 161 prefs->SetInteger(prefs::kGeolocationDefaultContentSetting, |
| 162 CONTENT_SETTING_BLOCK); |
| 163 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 164 provider.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION)); |
| 165 |
| 166 provider.ShutdownOnUIThread(); |
| 167 } |
| 168 |
| 129 // //////////////////////////////////////////////////////////////////////////// | 169 // //////////////////////////////////////////////////////////////////////////// |
| 130 // PrefProviderTest | 170 // PrefProviderTest |
| 131 // | 171 // |
| 132 | 172 |
| 133 bool SettingsEqual(const ContentSettings& settings1, | 173 bool SettingsEqual(const ContentSettings& settings1, |
| 134 const ContentSettings& settings2) { | 174 const ContentSettings& settings2) { |
| 135 for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) { | 175 for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) { |
| 136 if (settings1.settings[i] != settings2.settings[i]) | 176 if (settings1.settings[i] != settings2.settings[i]) |
| 137 return false; | 177 return false; |
| 138 } | 178 } |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 EXPECT_EQ(CONTENT_SETTING_BLOCK, provider.GetContentSetting( | 403 EXPECT_EQ(CONTENT_SETTING_BLOCK, provider.GetContentSetting( |
| 364 GURL("http://www.example.com"), | 404 GURL("http://www.example.com"), |
| 365 GURL("http://www.example.com"), | 405 GURL("http://www.example.com"), |
| 366 CONTENT_SETTINGS_TYPE_POPUPS, | 406 CONTENT_SETTINGS_TYPE_POPUPS, |
| 367 "")); | 407 "")); |
| 368 | 408 |
| 369 provider.ShutdownOnUIThread(); | 409 provider.ShutdownOnUIThread(); |
| 370 } | 410 } |
| 371 | 411 |
| 372 } // namespace content_settings | 412 } // namespace content_settings |
| OLD | NEW |