| 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_policy_provider.h" | 5 #include "chrome/browser/content_settings/content_settings_policy_provider.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 value); | 143 value); |
| 144 | 144 |
| 145 PolicyProvider provider(prefs); | 145 PolicyProvider provider(prefs); |
| 146 | 146 |
| 147 ContentSettingsPattern yt_url_pattern = | 147 ContentSettingsPattern yt_url_pattern = |
| 148 ContentSettingsPattern::FromString("www.youtube.com"); | 148 ContentSettingsPattern::FromString("www.youtube.com"); |
| 149 GURL youtube_url("http://www.youtube.com"); | 149 GURL youtube_url("http://www.youtube.com"); |
| 150 GURL google_url("http://mail.google.com"); | 150 GURL google_url("http://mail.google.com"); |
| 151 | 151 |
| 152 EXPECT_EQ(CONTENT_SETTING_DEFAULT, | 152 EXPECT_EQ(CONTENT_SETTING_DEFAULT, |
| 153 GetContentSetting( | 153 GetContentSetting(&provider, |
| 154 &provider, youtube_url, youtube_url, | 154 youtube_url, |
| 155 CONTENT_SETTINGS_TYPE_COOKIES, "", false)); | 155 youtube_url, |
| 156 CONTENT_SETTINGS_TYPE_COOKIES, |
| 157 std::string(), |
| 158 false)); |
| 156 EXPECT_EQ(NULL, | 159 EXPECT_EQ(NULL, |
| 157 GetContentSettingValue( | 160 GetContentSettingValue(&provider, |
| 158 &provider, youtube_url, youtube_url, | 161 youtube_url, |
| 159 CONTENT_SETTINGS_TYPE_COOKIES, "", false)); | 162 youtube_url, |
| 163 CONTENT_SETTINGS_TYPE_COOKIES, |
| 164 std::string(), |
| 165 false)); |
| 160 | 166 |
| 161 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 167 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 162 GetContentSetting( | 168 GetContentSetting(&provider, |
| 163 &provider, google_url, google_url, | 169 google_url, |
| 164 CONTENT_SETTINGS_TYPE_IMAGES, "", false)); | 170 google_url, |
| 171 CONTENT_SETTINGS_TYPE_IMAGES, |
| 172 std::string(), |
| 173 false)); |
| 165 scoped_ptr<Value> value_ptr( | 174 scoped_ptr<Value> value_ptr( |
| 166 GetContentSettingValue( | 175 GetContentSettingValue(&provider, |
| 167 &provider, google_url, google_url, | 176 google_url, |
| 168 CONTENT_SETTINGS_TYPE_IMAGES, "", false)); | 177 google_url, |
| 178 CONTENT_SETTINGS_TYPE_IMAGES, |
| 179 std::string(), |
| 180 false)); |
| 169 | 181 |
| 170 int int_value = -1; | 182 int int_value = -1; |
| 171 value_ptr->GetAsInteger(&int_value); | 183 value_ptr->GetAsInteger(&int_value); |
| 172 EXPECT_EQ(CONTENT_SETTING_BLOCK, IntToContentSetting(int_value)); | 184 EXPECT_EQ(CONTENT_SETTING_BLOCK, IntToContentSetting(int_value)); |
| 173 | 185 |
| 174 // The PolicyProvider does not allow setting content settings as they are | 186 // The PolicyProvider does not allow setting content settings as they are |
| 175 // enforced via policies and not set by the user or extension. So a call to | 187 // enforced via policies and not set by the user or extension. So a call to |
| 176 // SetWebsiteSetting does nothing. | 188 // SetWebsiteSetting does nothing. |
| 177 scoped_ptr<base::Value> value_block( | 189 scoped_ptr<base::Value> value_block( |
| 178 Value::CreateIntegerValue(CONTENT_SETTING_BLOCK)); | 190 Value::CreateIntegerValue(CONTENT_SETTING_BLOCK)); |
| 179 bool owned = provider.SetWebsiteSetting( | 191 bool owned = provider.SetWebsiteSetting(yt_url_pattern, |
| 180 yt_url_pattern, | 192 yt_url_pattern, |
| 181 yt_url_pattern, | 193 CONTENT_SETTINGS_TYPE_COOKIES, |
| 182 CONTENT_SETTINGS_TYPE_COOKIES, | 194 std::string(), |
| 183 "", | 195 value_block.get()); |
| 184 value_block.get()); | |
| 185 EXPECT_FALSE(owned); | 196 EXPECT_FALSE(owned); |
| 186 EXPECT_EQ(CONTENT_SETTING_DEFAULT, | 197 EXPECT_EQ(CONTENT_SETTING_DEFAULT, |
| 187 GetContentSetting( | 198 GetContentSetting(&provider, |
| 188 &provider, youtube_url, youtube_url, | 199 youtube_url, |
| 189 CONTENT_SETTINGS_TYPE_COOKIES, "", false)); | 200 youtube_url, |
| 201 CONTENT_SETTINGS_TYPE_COOKIES, |
| 202 std::string(), |
| 203 false)); |
| 190 | 204 |
| 191 provider.ShutdownOnUIThread(); | 205 provider.ShutdownOnUIThread(); |
| 192 } | 206 } |
| 193 | 207 |
| 194 TEST_F(PolicyProviderTest, ResourceIdentifier) { | 208 TEST_F(PolicyProviderTest, ResourceIdentifier) { |
| 195 TestingProfile profile; | 209 TestingProfile profile; |
| 196 TestingPrefServiceSyncable* prefs = profile.GetTestingPrefService(); | 210 TestingPrefServiceSyncable* prefs = profile.GetTestingPrefService(); |
| 197 | 211 |
| 198 ListValue* value = new ListValue(); | 212 ListValue* value = new ListValue(); |
| 199 value->Append(Value::CreateStringValue("[*.]google.com")); | 213 value->Append(Value::CreateStringValue("[*.]google.com")); |
| 200 prefs->SetManagedPref(prefs::kManagedPluginsAllowedForUrls, | 214 prefs->SetManagedPref(prefs::kManagedPluginsAllowedForUrls, |
| 201 value); | 215 value); |
| 202 | 216 |
| 203 PolicyProvider provider(prefs); | 217 PolicyProvider provider(prefs); |
| 204 | 218 |
| 205 GURL youtube_url("http://www.youtube.com"); | 219 GURL youtube_url("http://www.youtube.com"); |
| 206 GURL google_url("http://mail.google.com"); | 220 GURL google_url("http://mail.google.com"); |
| 207 | 221 |
| 208 EXPECT_EQ(CONTENT_SETTING_DEFAULT, | 222 EXPECT_EQ(CONTENT_SETTING_DEFAULT, |
| 209 GetContentSetting( | 223 GetContentSetting( |
| 210 &provider, youtube_url, youtube_url, | 224 &provider, youtube_url, youtube_url, |
| 211 CONTENT_SETTINGS_TYPE_PLUGINS, "someplugin", false)); | 225 CONTENT_SETTINGS_TYPE_PLUGINS, "someplugin", false)); |
| 212 | 226 |
| 213 // There is currently no policy support for resource content settings. | 227 // There is currently no policy support for resource content settings. |
| 214 // Resource identifiers are simply ignored by the PolicyProvider. | 228 // Resource identifiers are simply ignored by the PolicyProvider. |
| 215 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 229 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| 216 GetContentSetting( | 230 GetContentSetting(&provider, |
| 217 &provider, google_url, google_url, | 231 google_url, |
| 218 CONTENT_SETTINGS_TYPE_PLUGINS, "", false)); | 232 google_url, |
| 233 CONTENT_SETTINGS_TYPE_PLUGINS, |
| 234 std::string(), |
| 235 false)); |
| 219 | 236 |
| 220 EXPECT_EQ(CONTENT_SETTING_DEFAULT, | 237 EXPECT_EQ(CONTENT_SETTING_DEFAULT, |
| 221 GetContentSetting( | 238 GetContentSetting( |
| 222 &provider, google_url, google_url, | 239 &provider, google_url, google_url, |
| 223 CONTENT_SETTINGS_TYPE_PLUGINS, "someplugin", false)); | 240 CONTENT_SETTINGS_TYPE_PLUGINS, "someplugin", false)); |
| 224 | 241 |
| 225 provider.ShutdownOnUIThread(); | 242 provider.ShutdownOnUIThread(); |
| 226 } | 243 } |
| 227 | 244 |
| 228 TEST_F(PolicyProviderTest, AutoSelectCertificateList) { | 245 TEST_F(PolicyProviderTest, AutoSelectCertificateList) { |
| 229 TestingProfile profile; | 246 TestingProfile profile; |
| 230 TestingPrefServiceSyncable* prefs = profile.GetTestingPrefService(); | 247 TestingPrefServiceSyncable* prefs = profile.GetTestingPrefService(); |
| 231 | 248 |
| 232 PolicyProvider provider(prefs); | 249 PolicyProvider provider(prefs); |
| 233 GURL google_url("https://mail.google.com"); | 250 GURL google_url("https://mail.google.com"); |
| 234 // Tests the default setting for auto selecting certificates | 251 // Tests the default setting for auto selecting certificates |
| 235 EXPECT_EQ(NULL, | 252 EXPECT_EQ( |
| 236 GetContentSettingValue( | 253 NULL, |
| 237 &provider, google_url, google_url, | 254 GetContentSettingValue(&provider, |
| 238 CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, "", false)); | 255 google_url, |
| 256 google_url, |
| 257 CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, |
| 258 std::string(), |
| 259 false)); |
| 239 | 260 |
| 240 // Set the content settings pattern list for origins to auto select | 261 // Set the content settings pattern list for origins to auto select |
| 241 // certificates. | 262 // certificates. |
| 242 std::string pattern_str("\"pattern\":\"[*.]google.com\""); | 263 std::string pattern_str("\"pattern\":\"[*.]google.com\""); |
| 243 std::string filter_str("\"filter\":{\"ISSUER\":{\"CN\":\"issuer name\"}}"); | 264 std::string filter_str("\"filter\":{\"ISSUER\":{\"CN\":\"issuer name\"}}"); |
| 244 ListValue* value = new ListValue(); | 265 ListValue* value = new ListValue(); |
| 245 value->Append(Value::CreateStringValue( | 266 value->Append(Value::CreateStringValue( |
| 246 "{" + pattern_str + "," + filter_str + "}")); | 267 "{" + pattern_str + "," + filter_str + "}")); |
| 247 prefs->SetManagedPref(prefs::kManagedAutoSelectCertificateForUrls, | 268 prefs->SetManagedPref(prefs::kManagedAutoSelectCertificateForUrls, |
| 248 value); | 269 value); |
| 249 GURL youtube_url("https://www.youtube.com"); | 270 GURL youtube_url("https://www.youtube.com"); |
| 250 EXPECT_EQ(NULL, | 271 EXPECT_EQ( |
| 251 GetContentSettingValue( | 272 NULL, |
| 252 &provider, youtube_url, youtube_url, | 273 GetContentSettingValue(&provider, |
| 253 CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, "", false)); | 274 youtube_url, |
| 254 scoped_ptr<Value> cert_filter(GetContentSettingValue( | 275 youtube_url, |
| 255 &provider, google_url, google_url, | 276 CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, |
| 256 CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, "", false)); | 277 std::string(), |
| 278 false)); |
| 279 scoped_ptr<Value> cert_filter( |
| 280 GetContentSettingValue(&provider, |
| 281 google_url, |
| 282 google_url, |
| 283 CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, |
| 284 std::string(), |
| 285 false)); |
| 257 | 286 |
| 258 ASSERT_EQ(Value::TYPE_DICTIONARY, cert_filter->GetType()); | 287 ASSERT_EQ(Value::TYPE_DICTIONARY, cert_filter->GetType()); |
| 259 DictionaryValue* dict_value = | 288 DictionaryValue* dict_value = |
| 260 static_cast<DictionaryValue*>(cert_filter.get()); | 289 static_cast<DictionaryValue*>(cert_filter.get()); |
| 261 std::string actual_common_name; | 290 std::string actual_common_name; |
| 262 ASSERT_TRUE(dict_value->GetString("ISSUER.CN", &actual_common_name)); | 291 ASSERT_TRUE(dict_value->GetString("ISSUER.CN", &actual_common_name)); |
| 263 EXPECT_EQ("issuer name", actual_common_name); | 292 EXPECT_EQ("issuer name", actual_common_name); |
| 264 provider.ShutdownOnUIThread(); | 293 provider.ShutdownOnUIThread(); |
| 265 } | 294 } |
| 266 | 295 |
| 267 } // namespace content_settings | 296 } // namespace content_settings |
| OLD | NEW |