Chromium Code Reviews| 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/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
| 6 #include "chrome/browser/content_settings/content_settings_default_provider.h" | 6 #include "chrome/browser/content_settings/content_settings_default_provider.h" |
| 7 #include "chrome/browser/content_settings/content_settings_mock_observer.h" | 7 #include "chrome/browser/content_settings/content_settings_mock_observer.h" |
| 8 #include "chrome/browser/content_settings/content_settings_utils.h" | 8 #include "chrome/browser/content_settings/content_settings_utils.h" |
| 9 #include "chrome/browser/prefs/pref_service.h" | 9 #include "chrome/browser/prefs/pref_service.h" |
| 10 #include "chrome/common/pref_names.h" | 10 #include "chrome/common/pref_names.h" |
| 11 #include "chrome/test/base/testing_pref_service.h" | 11 #include "chrome/test/base/testing_pref_service.h" |
| 12 #include "chrome/test/base/testing_profile.h" | 12 #include "chrome/test/base/testing_profile.h" |
| 13 #include "content/test/test_browser_thread.h" | 13 #include "content/test/test_browser_thread.h" |
| 14 #include "googleurl/src/gurl.h" | 14 #include "googleurl/src/gurl.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 16 | 16 |
| 17 using ::testing::_; | 17 using ::testing::_; |
| 18 using content::BrowserThread; | 18 using content::BrowserThread; |
| 19 | 19 |
| 20 class DefaultProviderTest : public testing::Test { | 20 class DefaultProviderTest : public testing::Test { |
| 21 public: | 21 public: |
| 22 DefaultProviderTest() | 22 DefaultProviderTest() |
| 23 : ui_thread_(BrowserThread::UI, &message_loop_), | 23 : ui_thread_(BrowserThread::UI, &message_loop_), |
| 24 provider_(profile_.GetPrefs(), false) { | 24 provider_(profile_.GetPrefs(), false) { |
| 25 value_allow.reset(Value::CreateIntegerValue(CONTENT_SETTING_ALLOW)); | |
| 26 value_block.reset(Value::CreateIntegerValue(CONTENT_SETTING_BLOCK)); | |
| 25 } | 27 } |
| 26 ~DefaultProviderTest() { | 28 ~DefaultProviderTest() { |
| 27 provider_.ShutdownOnUIThread(); | 29 provider_.ShutdownOnUIThread(); |
| 28 } | 30 } |
| 29 | 31 |
| 30 protected: | 32 protected: |
| 31 MessageLoop message_loop_; | 33 MessageLoop message_loop_; |
| 32 content::TestBrowserThread ui_thread_; | 34 content::TestBrowserThread ui_thread_; |
| 33 TestingProfile profile_; | 35 TestingProfile profile_; |
| 34 content_settings::DefaultProvider provider_; | 36 content_settings::DefaultProvider provider_; |
| 37 scoped_ptr<base::Value> value_allow; | |
|
Bernhard Bauer
2011/11/11 14:00:40
Class member names should end with an underscore.
markusheintz_
2011/11/14 11:15:10
Yeah so true :( . But I don't need this any more.
| |
| 38 scoped_ptr<base::Value> value_block; | |
| 35 }; | 39 }; |
| 36 | 40 |
| 37 TEST_F(DefaultProviderTest, DefaultValues) { | 41 TEST_F(DefaultProviderTest, DefaultValues) { |
| 38 // Check setting defaults. | 42 // Check setting defaults. |
| 39 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 43 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 40 GetContentSetting(&provider_, | 44 GetContentSetting(&provider_, |
| 41 GURL(), | 45 GURL(), |
| 42 GURL(), | 46 GURL(), |
| 43 CONTENT_SETTINGS_TYPE_COOKIES, | 47 CONTENT_SETTINGS_TYPE_COOKIES, |
| 44 std::string(), | 48 std::string(), |
| 45 false)); | 49 false)); |
| 46 provider_.SetContentSetting(ContentSettingsPattern::Wildcard(), | 50 provider_.SetWebsiteSetting(ContentSettingsPattern::Wildcard(), |
| 47 ContentSettingsPattern::Wildcard(), | 51 ContentSettingsPattern::Wildcard(), |
| 48 CONTENT_SETTINGS_TYPE_COOKIES, | 52 CONTENT_SETTINGS_TYPE_COOKIES, |
| 49 std::string(), | 53 std::string(), |
| 50 CONTENT_SETTING_BLOCK); | 54 value_block.get()); |
| 51 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 55 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 52 GetContentSetting(&provider_, | 56 GetContentSetting(&provider_, |
| 53 GURL(), | 57 GURL(), |
| 54 GURL(), | 58 GURL(), |
| 55 CONTENT_SETTINGS_TYPE_COOKIES, | 59 CONTENT_SETTINGS_TYPE_COOKIES, |
| 56 std::string(), | 60 std::string(), |
| 57 false)); | 61 false)); |
| 58 | 62 |
| 59 EXPECT_EQ(CONTENT_SETTING_ASK, | 63 EXPECT_EQ(CONTENT_SETTING_ASK, |
| 60 GetContentSetting(&provider_, | 64 GetContentSetting(&provider_, |
| 61 GURL(), | 65 GURL(), |
| 62 GURL(), | 66 GURL(), |
| 63 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 67 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 64 std::string(), | 68 std::string(), |
| 65 false)); | 69 false)); |
| 66 provider_.SetContentSetting(ContentSettingsPattern::Wildcard(), | 70 provider_.SetWebsiteSetting(ContentSettingsPattern::Wildcard(), |
| 67 ContentSettingsPattern::Wildcard(), | 71 ContentSettingsPattern::Wildcard(), |
| 68 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 72 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 69 std::string(), | 73 std::string(), |
| 70 CONTENT_SETTING_BLOCK); | 74 value_block.get()); |
| 71 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 75 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 72 GetContentSetting(&provider_, | 76 GetContentSetting(&provider_, |
| 73 GURL(), | 77 GURL(), |
| 74 GURL(), | 78 GURL(), |
| 75 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 79 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 76 std::string(), | 80 std::string(), |
| 77 false)); | 81 false)); |
| 78 } | 82 } |
| 79 | 83 |
| 80 TEST_F(DefaultProviderTest, IgnoreNonDefaultSettings) { | 84 TEST_F(DefaultProviderTest, IgnoreNonDefaultSettings) { |
| 81 GURL primary_url("http://www.google.com"); | 85 GURL primary_url("http://www.google.com"); |
| 82 GURL secondary_url("http://www.google.com"); | 86 GURL secondary_url("http://www.google.com"); |
| 83 | 87 |
| 84 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 88 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 85 GetContentSetting(&provider_, | 89 GetContentSetting(&provider_, |
| 86 primary_url, | 90 primary_url, |
| 87 secondary_url, | 91 secondary_url, |
| 88 CONTENT_SETTINGS_TYPE_COOKIES, | 92 CONTENT_SETTINGS_TYPE_COOKIES, |
| 89 std::string(), | 93 std::string(), |
| 90 false)); | 94 false)); |
| 91 provider_.SetContentSetting(ContentSettingsPattern::FromURL(primary_url), | 95 provider_.SetWebsiteSetting(ContentSettingsPattern::FromURL(primary_url), |
| 92 ContentSettingsPattern::FromURL(secondary_url), | 96 ContentSettingsPattern::FromURL(secondary_url), |
| 93 CONTENT_SETTINGS_TYPE_COOKIES, | 97 CONTENT_SETTINGS_TYPE_COOKIES, |
| 94 std::string(), | 98 std::string(), |
| 95 CONTENT_SETTING_BLOCK); | 99 value_block.get()); |
| 96 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 100 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 97 GetContentSetting(&provider_, | 101 GetContentSetting(&provider_, |
| 98 primary_url, | 102 primary_url, |
| 99 secondary_url, | 103 secondary_url, |
| 100 CONTENT_SETTINGS_TYPE_COOKIES, | 104 CONTENT_SETTINGS_TYPE_COOKIES, |
| 101 std::string(), | 105 std::string(), |
| 102 false)); | 106 false)); |
| 103 } | 107 } |
| 104 | 108 |
| 105 TEST_F(DefaultProviderTest, Observer) { | 109 TEST_F(DefaultProviderTest, Observer) { |
| 106 content_settings::MockObserver mock_observer; | 110 content_settings::MockObserver mock_observer; |
| 107 EXPECT_CALL(mock_observer, | 111 EXPECT_CALL(mock_observer, |
| 108 OnContentSettingChanged( | 112 OnContentSettingChanged( |
| 109 _, _, CONTENT_SETTINGS_TYPE_IMAGES, "")); | 113 _, _, CONTENT_SETTINGS_TYPE_IMAGES, "")); |
| 110 provider_.AddObserver(&mock_observer); | 114 provider_.AddObserver(&mock_observer); |
| 111 provider_.SetContentSetting(ContentSettingsPattern::Wildcard(), | 115 provider_.SetWebsiteSetting(ContentSettingsPattern::Wildcard(), |
| 112 ContentSettingsPattern::Wildcard(), | 116 ContentSettingsPattern::Wildcard(), |
| 113 CONTENT_SETTINGS_TYPE_IMAGES, | 117 CONTENT_SETTINGS_TYPE_IMAGES, |
| 114 std::string(), | 118 std::string(), |
| 115 CONTENT_SETTING_BLOCK); | 119 value_block.get()); |
| 116 | 120 |
| 117 EXPECT_CALL(mock_observer, | 121 EXPECT_CALL(mock_observer, |
| 118 OnContentSettingChanged( | 122 OnContentSettingChanged( |
| 119 _, _, CONTENT_SETTINGS_TYPE_GEOLOCATION, "")); | 123 _, _, CONTENT_SETTINGS_TYPE_GEOLOCATION, "")); |
| 120 provider_.SetContentSetting(ContentSettingsPattern::Wildcard(), | 124 provider_.SetWebsiteSetting(ContentSettingsPattern::Wildcard(), |
| 121 ContentSettingsPattern::Wildcard(), | 125 ContentSettingsPattern::Wildcard(), |
| 122 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 126 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 123 std::string(), | 127 std::string(), |
| 124 CONTENT_SETTING_BLOCK); | 128 value_block.get()); |
| 125 } | 129 } |
| 126 | 130 |
| 127 | 131 |
| 128 TEST_F(DefaultProviderTest, ObserveDefaultPref) { | 132 TEST_F(DefaultProviderTest, ObserveDefaultPref) { |
| 129 PrefService* prefs = profile_.GetPrefs(); | 133 PrefService* prefs = profile_.GetPrefs(); |
| 130 | 134 |
| 131 // Make a copy of the default pref value so we can reset it later. | 135 // Make a copy of the default pref value so we can reset it later. |
| 132 scoped_ptr<Value> default_value(prefs->FindPreference( | 136 scoped_ptr<Value> default_value(prefs->FindPreference( |
| 133 prefs::kDefaultContentSettings)->GetValue()->DeepCopy()); | 137 prefs::kDefaultContentSettings)->GetValue()->DeepCopy()); |
| 134 | 138 |
| 135 provider_.SetContentSetting(ContentSettingsPattern::Wildcard(), | 139 provider_.SetWebsiteSetting(ContentSettingsPattern::Wildcard(), |
| 136 ContentSettingsPattern::Wildcard(), | 140 ContentSettingsPattern::Wildcard(), |
| 137 CONTENT_SETTINGS_TYPE_COOKIES, | 141 CONTENT_SETTINGS_TYPE_COOKIES, |
| 138 std::string(), | 142 std::string(), |
| 139 CONTENT_SETTING_BLOCK); | 143 value_block.get()); |
| 140 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 144 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 141 GetContentSetting(&provider_, | 145 GetContentSetting(&provider_, |
| 142 GURL(), | 146 GURL(), |
| 143 GURL(), | 147 GURL(), |
| 144 CONTENT_SETTINGS_TYPE_COOKIES, | 148 CONTENT_SETTINGS_TYPE_COOKIES, |
| 145 std::string(), | 149 std::string(), |
| 146 false)); | 150 false)); |
| 147 | 151 |
| 148 // Make a copy of the pref's new value so we can reset it later. | 152 // Make a copy of the pref's new value so we can reset it later. |
| 149 scoped_ptr<Value> new_value(prefs->FindPreference( | 153 scoped_ptr<Value> new_value(prefs->FindPreference( |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 182 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 186 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 183 GetContentSetting(&otr_provider, | 187 GetContentSetting(&otr_provider, |
| 184 GURL(), | 188 GURL(), |
| 185 GURL(), | 189 GURL(), |
| 186 CONTENT_SETTINGS_TYPE_COOKIES, | 190 CONTENT_SETTINGS_TYPE_COOKIES, |
| 187 std::string(), | 191 std::string(), |
| 188 true)); | 192 true)); |
| 189 | 193 |
| 190 // Changing content settings on the main provider should also affect the | 194 // Changing content settings on the main provider should also affect the |
| 191 // incognito map. | 195 // incognito map. |
| 192 provider_.SetContentSetting(ContentSettingsPattern::Wildcard(), | 196 provider_.SetWebsiteSetting(ContentSettingsPattern::Wildcard(), |
| 193 ContentSettingsPattern::Wildcard(), | 197 ContentSettingsPattern::Wildcard(), |
| 194 CONTENT_SETTINGS_TYPE_COOKIES, | 198 CONTENT_SETTINGS_TYPE_COOKIES, |
| 195 std::string(), | 199 std::string(), |
| 196 CONTENT_SETTING_BLOCK); | 200 value_block.get()); |
| 197 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 201 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 198 GetContentSetting(&provider_, | 202 GetContentSetting(&provider_, |
| 199 GURL(), | 203 GURL(), |
| 200 GURL(), | 204 GURL(), |
| 201 CONTENT_SETTINGS_TYPE_COOKIES, | 205 CONTENT_SETTINGS_TYPE_COOKIES, |
| 202 std::string(), | 206 std::string(), |
| 203 false)); | 207 false)); |
| 204 | 208 |
| 205 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 209 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 206 GetContentSetting(&otr_provider, | 210 GetContentSetting(&otr_provider, |
| 207 GURL(), | 211 GURL(), |
| 208 GURL(), | 212 GURL(), |
| 209 CONTENT_SETTINGS_TYPE_COOKIES, | 213 CONTENT_SETTINGS_TYPE_COOKIES, |
| 210 std::string(), | 214 std::string(), |
| 211 true)); | 215 true)); |
| 212 | 216 |
| 213 // Changing content settings on the incognito provider should be ignored. | 217 // Changing content settings on the incognito provider should be ignored. |
| 214 otr_provider.SetContentSetting(ContentSettingsPattern::Wildcard(), | 218 otr_provider.SetWebsiteSetting(ContentSettingsPattern::Wildcard(), |
| 215 ContentSettingsPattern::Wildcard(), | 219 ContentSettingsPattern::Wildcard(), |
| 216 CONTENT_SETTINGS_TYPE_COOKIES, | 220 CONTENT_SETTINGS_TYPE_COOKIES, |
| 217 std::string(), | 221 std::string(), |
| 218 CONTENT_SETTING_ALLOW); | 222 value_allow.get()); |
| 219 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 223 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 220 GetContentSetting(&provider_, | 224 GetContentSetting(&provider_, |
| 221 GURL(), | 225 GURL(), |
| 222 GURL(), | 226 GURL(), |
| 223 CONTENT_SETTINGS_TYPE_COOKIES, | 227 CONTENT_SETTINGS_TYPE_COOKIES, |
| 224 std::string(), | 228 std::string(), |
| 225 false)); | 229 false)); |
| 226 | 230 |
| 227 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 231 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 228 GetContentSetting(&otr_provider, | 232 GetContentSetting(&otr_provider, |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 279 | 283 |
| 280 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 284 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 281 GetContentSetting(&provider, | 285 GetContentSetting(&provider, |
| 282 GURL(), | 286 GURL(), |
| 283 GURL(), | 287 GURL(), |
| 284 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 288 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 285 std::string(), | 289 std::string(), |
| 286 false)); | 290 false)); |
| 287 provider.ShutdownOnUIThread(); | 291 provider.ShutdownOnUIThread(); |
| 288 } | 292 } |
| OLD | NEW |