Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: chrome/browser/content_settings/host_content_settings_map_unittest.cc

Issue 7713034: HostContentSettingsMap refactoring. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Code review comments. Threading fixes. Mac + win fixes. Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/auto_reset.h" 5 #include "base/auto_reset.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "chrome/browser/content_settings/content_settings_details.h" 9 #include "chrome/browser/content_settings/content_settings_details.h"
10 #include "chrome/browser/content_settings/cookie_settings.h"
10 #include "chrome/browser/content_settings/host_content_settings_map.h" 11 #include "chrome/browser/content_settings/host_content_settings_map.h"
11 #include "chrome/browser/content_settings/mock_settings_observer.h" 12 #include "chrome/browser/content_settings/mock_settings_observer.h"
12 #include "chrome/browser/prefs/pref_service.h" 13 #include "chrome/browser/prefs/pref_service.h"
13 #include "chrome/browser/prefs/scoped_user_pref_update.h" 14 #include "chrome/browser/prefs/scoped_user_pref_update.h"
14 #include "chrome/common/chrome_switches.h" 15 #include "chrome/common/chrome_switches.h"
15 #include "chrome/common/pref_names.h" 16 #include "chrome/common/pref_names.h"
16 #include "chrome/common/url_constants.h" 17 #include "chrome/common/url_constants.h"
17 #include "chrome/test/base/testing_pref_service.h" 18 #include "chrome/test/base/testing_pref_service.h"
18 #include "chrome/test/base/testing_profile.h" 19 #include "chrome/test/base/testing_profile.h"
19 #include "googleurl/src/gurl.h" 20 #include "googleurl/src/gurl.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 desired_settings.settings[CONTENT_SETTINGS_TYPE_POPUPS] = 153 desired_settings.settings[CONTENT_SETTINGS_TYPE_POPUPS] =
153 CONTENT_SETTING_BLOCK; 154 CONTENT_SETTING_BLOCK;
154 desired_settings.settings[CONTENT_SETTINGS_TYPE_GEOLOCATION] = 155 desired_settings.settings[CONTENT_SETTINGS_TYPE_GEOLOCATION] =
155 CONTENT_SETTING_ASK; 156 CONTENT_SETTING_ASK;
156 desired_settings.settings[CONTENT_SETTINGS_TYPE_NOTIFICATIONS] = 157 desired_settings.settings[CONTENT_SETTINGS_TYPE_NOTIFICATIONS] =
157 CONTENT_SETTING_ASK; 158 CONTENT_SETTING_ASK;
158 desired_settings.settings[CONTENT_SETTINGS_TYPE_INTENTS] = 159 desired_settings.settings[CONTENT_SETTINGS_TYPE_INTENTS] =
159 CONTENT_SETTING_ASK; 160 CONTENT_SETTING_ASK;
160 desired_settings.settings[CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE] = 161 desired_settings.settings[CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE] =
161 CONTENT_SETTING_ASK; 162 CONTENT_SETTING_ASK;
163 desired_settings.settings[CONTENT_SETTINGS_TYPE_COOKIES_SESSION_ONLY] =
164 CONTENT_SETTING_ALLOW;
162 ContentSettings settings = 165 ContentSettings settings =
163 host_content_settings_map->GetContentSettings(host, host); 166 host_content_settings_map->GetContentSettings(host, host);
164 EXPECT_TRUE(SettingsEqual(desired_settings, settings)); 167 EXPECT_TRUE(SettingsEqual(desired_settings, settings));
165 168
166 // Check returning all hosts for a setting. 169 // Check returning all hosts for a setting.
167 ContentSettingsPattern pattern2 = 170 ContentSettingsPattern pattern2 =
168 ContentSettingsPattern::FromString("[*.]example.org"); 171 ContentSettingsPattern::FromString("[*.]example.org");
169 host_content_settings_map->SetContentSetting( 172 host_content_settings_map->SetContentSetting(
170 pattern2, 173 pattern2,
171 ContentSettingsPattern::Wildcard(), 174 ContentSettingsPattern::Wildcard(),
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 330
328 PrefService* prefs = profile.GetPrefs(); 331 PrefService* prefs = profile.GetPrefs();
329 332
330 // Make a copy of the default pref value so we can reset it later. 333 // Make a copy of the default pref value so we can reset it later.
331 scoped_ptr<Value> default_value(prefs->FindPreference( 334 scoped_ptr<Value> default_value(prefs->FindPreference(
332 prefs::kDefaultContentSettings)->GetValue()->DeepCopy()); 335 prefs::kDefaultContentSettings)->GetValue()->DeepCopy());
333 336
334 GURL host("http://example.com"); 337 GURL host("http://example.com");
335 338
336 host_content_settings_map->SetDefaultContentSetting( 339 host_content_settings_map->SetDefaultContentSetting(
337 CONTENT_SETTINGS_TYPE_COOKIES, CONTENT_SETTING_BLOCK); 340 CONTENT_SETTINGS_TYPE_IMAGES, CONTENT_SETTING_BLOCK);
338 EXPECT_EQ(CONTENT_SETTING_BLOCK, 341 EXPECT_EQ(CONTENT_SETTING_BLOCK,
339 host_content_settings_map->GetCookieContentSetting( 342 host_content_settings_map->GetContentSetting(
340 host, host, true)); 343 host, host, CONTENT_SETTINGS_TYPE_IMAGES, ""));
341 344
342 // Make a copy of the pref's new value so we can reset it later. 345 // Make a copy of the pref's new value so we can reset it later.
343 scoped_ptr<Value> new_value(prefs->FindPreference( 346 scoped_ptr<Value> new_value(prefs->FindPreference(
344 prefs::kDefaultContentSettings)->GetValue()->DeepCopy()); 347 prefs::kDefaultContentSettings)->GetValue()->DeepCopy());
345 348
346 // Clearing the backing pref should also clear the internal cache. 349 // Clearing the backing pref should also clear the internal cache.
347 prefs->Set(prefs::kDefaultContentSettings, *default_value); 350 prefs->Set(prefs::kDefaultContentSettings, *default_value);
348 EXPECT_EQ(CONTENT_SETTING_ALLOW, 351 EXPECT_EQ(CONTENT_SETTING_ALLOW,
349 host_content_settings_map->GetCookieContentSetting( 352 host_content_settings_map->GetContentSetting(
350 host, host, true)); 353 host, host, CONTENT_SETTINGS_TYPE_IMAGES, ""));
351 354
352 // Reseting the pref to its previous value should update the cache. 355 // Reseting the pref to its previous value should update the cache.
353 prefs->Set(prefs::kDefaultContentSettings, *new_value); 356 prefs->Set(prefs::kDefaultContentSettings, *new_value);
354 EXPECT_EQ(CONTENT_SETTING_BLOCK, 357 EXPECT_EQ(CONTENT_SETTING_BLOCK,
355 host_content_settings_map->GetCookieContentSetting( 358 host_content_settings_map->GetContentSetting(
356 host, host, true)); 359 host, host, CONTENT_SETTINGS_TYPE_IMAGES, ""));
357 } 360 }
358 361
359 TEST_F(HostContentSettingsMapTest, ObserveExceptionPref) { 362 TEST_F(HostContentSettingsMapTest, ObserveExceptionPref) {
360 TestingProfile profile; 363 TestingProfile profile;
361 HostContentSettingsMap* host_content_settings_map = 364 HostContentSettingsMap* host_content_settings_map =
362 profile.GetHostContentSettingsMap(); 365 profile.GetHostContentSettingsMap();
363 366
364 PrefService* prefs = profile.GetPrefs(); 367 PrefService* prefs = profile.GetPrefs();
365 368
366 // Make a copy of the default pref value so we can reset it later. 369 // Make a copy of the default pref value so we can reset it later.
367 scoped_ptr<Value> default_value(prefs->FindPreference( 370 scoped_ptr<Value> default_value(prefs->FindPreference(
368 prefs::kContentSettingsPatternPairs)->GetValue()->DeepCopy()); 371 prefs::kContentSettingsPatternPairs)->GetValue()->DeepCopy());
369 372
370 ContentSettingsPattern pattern = 373 ContentSettingsPattern pattern =
371 ContentSettingsPattern::FromString("[*.]example.com"); 374 ContentSettingsPattern::FromString("[*.]example.com");
372 GURL host("http://example.com"); 375 GURL host("http://example.com");
373 376
374 host_content_settings_map->SetContentSetting( 377 host_content_settings_map->SetContentSetting(
375 pattern, 378 pattern,
376 ContentSettingsPattern::Wildcard(), 379 ContentSettingsPattern::Wildcard(),
377 CONTENT_SETTINGS_TYPE_COOKIES, 380 CONTENT_SETTINGS_TYPE_IMAGES,
378 std::string(), 381 std::string(),
379 CONTENT_SETTING_BLOCK); 382 CONTENT_SETTING_BLOCK);
383
380 EXPECT_EQ(CONTENT_SETTING_BLOCK, 384 EXPECT_EQ(CONTENT_SETTING_BLOCK,
381 host_content_settings_map->GetCookieContentSetting( 385 host_content_settings_map->GetContentSetting(
382 host, host, true)); 386 host, host, CONTENT_SETTINGS_TYPE_IMAGES, ""));
383 387
384 // Make a copy of the pref's new value so we can reset it later. 388 // Make a copy of the pref's new value so we can reset it later.
385 scoped_ptr<Value> new_value(prefs->FindPreference( 389 scoped_ptr<Value> new_value(prefs->FindPreference(
386 prefs::kContentSettingsPatternPairs)->GetValue()->DeepCopy()); 390 prefs::kContentSettingsPatternPairs)->GetValue()->DeepCopy());
387 391
388 // Clearing the backing pref should also clear the internal cache. 392 // Clearing the backing pref should also clear the internal cache.
389 prefs->Set(prefs::kContentSettingsPatternPairs, *default_value); 393 prefs->Set(prefs::kContentSettingsPatternPairs, *default_value);
390 EXPECT_EQ(CONTENT_SETTING_ALLOW, 394 EXPECT_EQ(CONTENT_SETTING_ALLOW,
391 host_content_settings_map->GetCookieContentSetting( 395 host_content_settings_map->GetContentSetting(
392 host, host, true)); 396 host, host, CONTENT_SETTINGS_TYPE_IMAGES, ""));
393 397
394 // Reseting the pref to its previous value should update the cache. 398 // Reseting the pref to its previous value should update the cache.
395 prefs->Set(prefs::kContentSettingsPatternPairs, *new_value); 399 prefs->Set(prefs::kContentSettingsPatternPairs, *new_value);
396 EXPECT_EQ(CONTENT_SETTING_BLOCK, 400 EXPECT_EQ(CONTENT_SETTING_BLOCK,
397 host_content_settings_map->GetCookieContentSetting( 401 host_content_settings_map->GetContentSetting(
398 host, host, true)); 402 host, host, CONTENT_SETTINGS_TYPE_IMAGES, ""));
399 } 403 }
400 404
401 TEST_F(HostContentSettingsMapTest, HostTrimEndingDotCheck) { 405 TEST_F(HostContentSettingsMapTest, HostTrimEndingDotCheck) {
402 TestingProfile profile; 406 TestingProfile profile;
403 HostContentSettingsMap* host_content_settings_map = 407 HostContentSettingsMap* host_content_settings_map =
404 profile.GetHostContentSettingsMap(); 408 profile.GetHostContentSettingsMap();
409 CookieSettings* cookie_settings =
410 CookieSettings::GetForProfile(&profile);
405 411
406 ContentSettingsPattern pattern = 412 ContentSettingsPattern pattern =
407 ContentSettingsPattern::FromString("[*.]example.com"); 413 ContentSettingsPattern::FromString("[*.]example.com");
408 GURL host_ending_with_dot("http://example.com./"); 414 GURL host_ending_with_dot("http://example.com./");
409 415
410 EXPECT_EQ(CONTENT_SETTING_ALLOW, 416 EXPECT_EQ(CONTENT_SETTING_ALLOW,
411 host_content_settings_map->GetContentSetting( 417 host_content_settings_map->GetContentSetting(
412 host_ending_with_dot, 418 host_ending_with_dot,
413 host_ending_with_dot, 419 host_ending_with_dot,
414 CONTENT_SETTINGS_TYPE_IMAGES, 420 CONTENT_SETTINGS_TYPE_IMAGES,
(...skipping 16 matching lines...) Expand all
431 CONTENT_SETTINGS_TYPE_IMAGES, 437 CONTENT_SETTINGS_TYPE_IMAGES,
432 "", 438 "",
433 CONTENT_SETTING_BLOCK); 439 CONTENT_SETTING_BLOCK);
434 EXPECT_EQ(CONTENT_SETTING_BLOCK, 440 EXPECT_EQ(CONTENT_SETTING_BLOCK,
435 host_content_settings_map->GetContentSetting( 441 host_content_settings_map->GetContentSetting(
436 host_ending_with_dot, 442 host_ending_with_dot,
437 host_ending_with_dot, 443 host_ending_with_dot,
438 CONTENT_SETTINGS_TYPE_IMAGES, 444 CONTENT_SETTINGS_TYPE_IMAGES,
439 "")); 445 ""));
440 446
441 EXPECT_EQ(CONTENT_SETTING_ALLOW, 447 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
442 host_content_settings_map->GetCookieContentSetting( 448 host_ending_with_dot, host_ending_with_dot));
443 host_ending_with_dot, host_ending_with_dot, true));
444 host_content_settings_map->SetContentSetting( 449 host_content_settings_map->SetContentSetting(
445 pattern, 450 pattern,
446 ContentSettingsPattern::Wildcard(), 451 ContentSettingsPattern::Wildcard(),
447 CONTENT_SETTINGS_TYPE_COOKIES, 452 CONTENT_SETTINGS_TYPE_COOKIES,
448 "", 453 "",
449 CONTENT_SETTING_DEFAULT); 454 CONTENT_SETTING_DEFAULT);
450 EXPECT_EQ(CONTENT_SETTING_ALLOW, 455 EXPECT_TRUE(cookie_settings->IsSettingCookieAllowed(
451 host_content_settings_map->GetCookieContentSetting( 456 host_ending_with_dot, host_ending_with_dot));
452 host_ending_with_dot, host_ending_with_dot, true));
453 host_content_settings_map->SetContentSetting( 457 host_content_settings_map->SetContentSetting(
454 pattern, 458 pattern,
455 ContentSettingsPattern::Wildcard(), 459 ContentSettingsPattern::Wildcard(),
456 CONTENT_SETTINGS_TYPE_COOKIES, 460 CONTENT_SETTINGS_TYPE_COOKIES,
457 "", 461 "",
458 CONTENT_SETTING_BLOCK); 462 CONTENT_SETTING_BLOCK);
459 EXPECT_EQ(CONTENT_SETTING_BLOCK, 463 EXPECT_FALSE(cookie_settings->IsSettingCookieAllowed(
460 host_content_settings_map->GetCookieContentSetting( 464 host_ending_with_dot, host_ending_with_dot));
461 host_ending_with_dot, host_ending_with_dot, true));
462 465
463 EXPECT_EQ(CONTENT_SETTING_ALLOW, 466 EXPECT_EQ(CONTENT_SETTING_ALLOW,
464 host_content_settings_map->GetContentSetting( 467 host_content_settings_map->GetContentSetting(
465 host_ending_with_dot, 468 host_ending_with_dot,
466 host_ending_with_dot, 469 host_ending_with_dot,
467 CONTENT_SETTINGS_TYPE_JAVASCRIPT, 470 CONTENT_SETTINGS_TYPE_JAVASCRIPT,
468 "")); 471 ""));
469 host_content_settings_map->SetContentSetting( 472 host_content_settings_map->SetContentSetting(
470 pattern, 473 pattern,
471 ContentSettingsPattern::Wildcard(), 474 ContentSettingsPattern::Wildcard(),
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 desired_settings.settings[CONTENT_SETTINGS_TYPE_POPUPS] = 605 desired_settings.settings[CONTENT_SETTINGS_TYPE_POPUPS] =
603 CONTENT_SETTING_BLOCK; 606 CONTENT_SETTING_BLOCK;
604 desired_settings.settings[CONTENT_SETTINGS_TYPE_GEOLOCATION] = 607 desired_settings.settings[CONTENT_SETTINGS_TYPE_GEOLOCATION] =
605 CONTENT_SETTING_ASK; 608 CONTENT_SETTING_ASK;
606 desired_settings.settings[CONTENT_SETTINGS_TYPE_NOTIFICATIONS] = 609 desired_settings.settings[CONTENT_SETTINGS_TYPE_NOTIFICATIONS] =
607 CONTENT_SETTING_ASK; 610 CONTENT_SETTING_ASK;
608 desired_settings.settings[CONTENT_SETTINGS_TYPE_INTENTS] = 611 desired_settings.settings[CONTENT_SETTINGS_TYPE_INTENTS] =
609 CONTENT_SETTING_ASK; 612 CONTENT_SETTING_ASK;
610 desired_settings.settings[CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE] = 613 desired_settings.settings[CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE] =
611 CONTENT_SETTING_ASK; 614 CONTENT_SETTING_ASK;
615 desired_settings.settings[CONTENT_SETTINGS_TYPE_COOKIES_SESSION_ONLY] =
616 CONTENT_SETTING_ALLOW;
612 ContentSettings settings = 617 ContentSettings settings =
613 host_content_settings_map->GetContentSettings(host, host); 618 host_content_settings_map->GetContentSettings(host, host);
614 EXPECT_TRUE(SettingsEqual(desired_settings, settings)); 619 EXPECT_TRUE(SettingsEqual(desired_settings, settings));
615 EXPECT_EQ(desired_settings.settings[CONTENT_SETTINGS_TYPE_COOKIES], 620 EXPECT_EQ(desired_settings.settings[CONTENT_SETTINGS_TYPE_COOKIES],
616 settings.settings[CONTENT_SETTINGS_TYPE_COOKIES]); 621 settings.settings[CONTENT_SETTINGS_TYPE_COOKIES]);
617 EXPECT_EQ(desired_settings.settings[CONTENT_SETTINGS_TYPE_IMAGES], 622 EXPECT_EQ(desired_settings.settings[CONTENT_SETTINGS_TYPE_IMAGES],
618 settings.settings[CONTENT_SETTINGS_TYPE_IMAGES]); 623 settings.settings[CONTENT_SETTINGS_TYPE_IMAGES]);
619 EXPECT_EQ(desired_settings.settings[CONTENT_SETTINGS_TYPE_PLUGINS], 624 EXPECT_EQ(desired_settings.settings[CONTENT_SETTINGS_TYPE_PLUGINS],
620 settings.settings[CONTENT_SETTINGS_TYPE_PLUGINS]); 625 settings.settings[CONTENT_SETTINGS_TYPE_PLUGINS]);
621 EXPECT_EQ(desired_settings.settings[CONTENT_SETTINGS_TYPE_POPUPS], 626 EXPECT_EQ(desired_settings.settings[CONTENT_SETTINGS_TYPE_POPUPS],
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 EXPECT_EQ(CONTENT_SETTING_BLOCK, 677 EXPECT_EQ(CONTENT_SETTING_BLOCK,
673 host_content_settings_map->GetContentSetting( 678 host_content_settings_map->GetContentSetting(
674 host, host, CONTENT_SETTINGS_TYPE_IMAGES, "")); 679 host, host, CONTENT_SETTINGS_TYPE_IMAGES, ""));
675 EXPECT_EQ(CONTENT_SETTING_ALLOW, 680 EXPECT_EQ(CONTENT_SETTING_ALLOW,
676 otr_map->GetContentSetting( 681 otr_map->GetContentSetting(
677 host, host, CONTENT_SETTINGS_TYPE_IMAGES, "")); 682 host, host, CONTENT_SETTINGS_TYPE_IMAGES, ""));
678 683
679 otr_map->ShutdownOnUIThread(); 684 otr_map->ShutdownOnUIThread();
680 } 685 }
681 686
682 TEST_F(HostContentSettingsMapTest, MigrateObsoletePrefs) { 687 TEST_F(HostContentSettingsMapTest, MigrateObsoletePopupPrefs) {
683 // This feature is currently behind a flag. 688 // This feature is currently behind a flag.
684 CommandLine* cmd = CommandLine::ForCurrentProcess(); 689 CommandLine* cmd = CommandLine::ForCurrentProcess();
685 AutoReset<CommandLine> auto_reset(cmd, *cmd); 690 AutoReset<CommandLine> auto_reset(cmd, *cmd);
686 cmd->AppendSwitch(switches::kEnableResourceContentSettings); 691 cmd->AppendSwitch(switches::kEnableResourceContentSettings);
687 692
688 TestingProfile profile; 693 TestingProfile profile;
689 PrefService* prefs = profile.GetPrefs(); 694 PrefService* prefs = profile.GetPrefs();
690 695
691 // Set obsolete data. 696 // Set obsolete data.
692 prefs->SetInteger(prefs::kCookieBehavior,
693 net::StaticCookiePolicy::BLOCK_ALL_COOKIES);
694
695 ListValue popup_hosts; 697 ListValue popup_hosts;
696 popup_hosts.Append(new StringValue("[*.]example.com")); 698 popup_hosts.Append(new StringValue("[*.]example.com"));
697 prefs->Set(prefs::kPopupWhitelistedHosts, popup_hosts); 699 prefs->Set(prefs::kPopupWhitelistedHosts, popup_hosts);
698 700
699 HostContentSettingsMap* host_content_settings_map = 701 HostContentSettingsMap* host_content_settings_map =
700 profile.GetHostContentSettingsMap(); 702 profile.GetHostContentSettingsMap();
701 703
702 EXPECT_EQ(CONTENT_SETTING_BLOCK,
703 host_content_settings_map->GetDefaultContentSetting(
704 CONTENT_SETTINGS_TYPE_COOKIES));
705
706 GURL host("http://example.com"); 704 GURL host("http://example.com");
707 EXPECT_EQ(CONTENT_SETTING_ALLOW, 705 EXPECT_EQ(CONTENT_SETTING_ALLOW,
708 host_content_settings_map->GetContentSetting( 706 host_content_settings_map->GetContentSetting(
709 host, host, CONTENT_SETTINGS_TYPE_POPUPS, "")); 707 host, host, CONTENT_SETTINGS_TYPE_POPUPS, ""));
710 } 708 }
711 709
712 TEST_F(HostContentSettingsMapTest, MigrateObsoleteNotificationsPrefs) { 710 TEST_F(HostContentSettingsMapTest, MigrateObsoleteNotificationsPrefs) {
713 TestingProfile profile; 711 TestingProfile profile;
714 PrefService* prefs = profile.GetPrefs(); 712 PrefService* prefs = profile.GetPrefs();
715 713
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 CONTENT_SETTINGS_TYPE_PLUGINS, CONTENT_SETTING_BLOCK); 1079 CONTENT_SETTINGS_TYPE_PLUGINS, CONTENT_SETTING_BLOCK);
1082 EXPECT_EQ(CONTENT_SETTING_ALLOW, 1080 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1083 host_content_settings_map->GetDefaultContentSetting( 1081 host_content_settings_map->GetDefaultContentSetting(
1084 CONTENT_SETTINGS_TYPE_PLUGINS)); 1082 CONTENT_SETTINGS_TYPE_PLUGINS));
1085 1083
1086 prefs->RemoveManagedPref(prefs::kManagedDefaultPluginsSetting); 1084 prefs->RemoveManagedPref(prefs::kManagedDefaultPluginsSetting);
1087 EXPECT_EQ(CONTENT_SETTING_BLOCK, 1085 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1088 host_content_settings_map->GetDefaultContentSetting( 1086 host_content_settings_map->GetDefaultContentSetting(
1089 CONTENT_SETTINGS_TYPE_PLUGINS)); 1087 CONTENT_SETTINGS_TYPE_PLUGINS));
1090 } 1088 }
1091
1092 // Tests for cookie content settings.
1093 const GURL kBlockedSite = GURL("http://ads.thirdparty.com");
1094 const GURL kAllowedSite = GURL("http://good.allays.com");
1095 const GURL kFirstPartySite = GURL("http://cool.things.com");
1096 const GURL kExtensionURL = GURL("chrome-extension://deadbeef");
1097
1098 TEST_F(HostContentSettingsMapTest, CookiesBlockSingle) {
1099 TestingProfile profile;
1100 HostContentSettingsMap* host_content_settings_map =
1101 profile.GetHostContentSettingsMap();
1102 host_content_settings_map->AddExceptionForURL(
1103 kBlockedSite,
1104 kBlockedSite,
1105 CONTENT_SETTINGS_TYPE_COOKIES,
1106 "",
1107 CONTENT_SETTING_BLOCK);
1108 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1109 host_content_settings_map->GetCookieContentSetting(
1110 kBlockedSite, kBlockedSite, false));
1111 }
1112
1113 TEST_F(HostContentSettingsMapTest, CookiesBlockThirdParty) {
1114 TestingProfile profile;
1115 HostContentSettingsMap* host_content_settings_map =
1116 profile.GetHostContentSettingsMap();
1117 host_content_settings_map->SetBlockThirdPartyCookies(true);
1118 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1119 host_content_settings_map->GetCookieContentSetting(
1120 kBlockedSite, kFirstPartySite, false));
1121 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1122 host_content_settings_map->GetCookieContentSetting(
1123 kBlockedSite, kFirstPartySite, true));
1124
1125 CommandLine* cmd = CommandLine::ForCurrentProcess();
1126 AutoReset<CommandLine> auto_reset(cmd, *cmd);
1127 cmd->AppendSwitch(switches::kBlockReadingThirdPartyCookies);
1128
1129 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1130 host_content_settings_map->GetCookieContentSetting(
1131 kBlockedSite, kFirstPartySite, false));
1132 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1133 host_content_settings_map->GetCookieContentSetting(
1134 kBlockedSite, kFirstPartySite, true));
1135 }
1136
1137 TEST_F(HostContentSettingsMapTest, CookiesAllowThirdParty) {
1138 TestingProfile profile;
1139 HostContentSettingsMap* host_content_settings_map =
1140 profile.GetHostContentSettingsMap();
1141 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1142 host_content_settings_map->GetCookieContentSetting(
1143 kBlockedSite, kFirstPartySite, false));
1144 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1145 host_content_settings_map->GetCookieContentSetting(
1146 kBlockedSite, kFirstPartySite, true));
1147 }
1148
1149 TEST_F(HostContentSettingsMapTest, CookiesExplicitBlockSingleThirdParty) {
1150 TestingProfile profile;
1151 HostContentSettingsMap* host_content_settings_map =
1152 profile.GetHostContentSettingsMap();
1153 host_content_settings_map->AddExceptionForURL(
1154 kBlockedSite, kBlockedSite, CONTENT_SETTINGS_TYPE_COOKIES, "",
1155 CONTENT_SETTING_BLOCK);
1156 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1157 host_content_settings_map->GetCookieContentSetting(
1158 kBlockedSite, kFirstPartySite, false));
1159 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1160 host_content_settings_map->GetCookieContentSetting(
1161 kBlockedSite, kFirstPartySite, true));
1162 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1163 host_content_settings_map->GetCookieContentSetting(
1164 kAllowedSite, kFirstPartySite, true));
1165 }
1166
1167 TEST_F(HostContentSettingsMapTest, CookiesExplicitSessionOnly) {
1168 TestingProfile profile;
1169 HostContentSettingsMap* host_content_settings_map =
1170 profile.GetHostContentSettingsMap();
1171 host_content_settings_map->AddExceptionForURL(
1172 kBlockedSite, kBlockedSite, CONTENT_SETTINGS_TYPE_COOKIES, "",
1173 CONTENT_SETTING_SESSION_ONLY);
1174 EXPECT_EQ(CONTENT_SETTING_SESSION_ONLY,
1175 host_content_settings_map->GetCookieContentSetting(
1176 kBlockedSite, kFirstPartySite, false));
1177 EXPECT_EQ(CONTENT_SETTING_SESSION_ONLY,
1178 host_content_settings_map->GetCookieContentSetting(
1179 kBlockedSite, kFirstPartySite, true));
1180
1181 host_content_settings_map->SetBlockThirdPartyCookies(true);
1182 EXPECT_EQ(CONTENT_SETTING_SESSION_ONLY,
1183 host_content_settings_map->GetCookieContentSetting(
1184 kBlockedSite, kFirstPartySite, false));
1185 EXPECT_EQ(CONTENT_SETTING_SESSION_ONLY,
1186 host_content_settings_map->GetCookieContentSetting(
1187 kBlockedSite, kFirstPartySite, true));
1188 }
1189
1190 TEST_F(HostContentSettingsMapTest, CookiesThirdPartyBlockedExplicitAllow) {
1191 TestingProfile profile;
1192 HostContentSettingsMap* host_content_settings_map =
1193 profile.GetHostContentSettingsMap();
1194 host_content_settings_map->AddExceptionForURL(
1195 kAllowedSite, kAllowedSite, CONTENT_SETTINGS_TYPE_COOKIES, "",
1196 CONTENT_SETTING_ALLOW);
1197 host_content_settings_map->SetBlockThirdPartyCookies(true);
1198 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1199 host_content_settings_map->GetCookieContentSetting(
1200 kAllowedSite, kFirstPartySite, false));
1201 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1202 host_content_settings_map->GetCookieContentSetting(
1203 kAllowedSite, kFirstPartySite, true));
1204
1205 // Extensions should always be allowed to use cookies.
1206 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1207 host_content_settings_map->GetCookieContentSetting(
1208 kAllowedSite, kExtensionURL, false));
1209 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1210 host_content_settings_map->GetCookieContentSetting(
1211 kAllowedSite, kExtensionURL, true));
1212
1213 CommandLine* cmd = CommandLine::ForCurrentProcess();
1214 AutoReset<CommandLine> auto_reset(cmd, *cmd);
1215 cmd->AppendSwitch(switches::kBlockReadingThirdPartyCookies);
1216
1217 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1218 host_content_settings_map->GetCookieContentSetting(
1219 kAllowedSite, kFirstPartySite, false));
1220
1221 // Extensions should always be allowed to use cookies.
1222 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1223 host_content_settings_map->GetCookieContentSetting(
1224 kAllowedSite, kExtensionURL, false));
1225 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1226 host_content_settings_map->GetCookieContentSetting(
1227 kAllowedSite, kExtensionURL, true));
1228 }
1229
1230 TEST_F(HostContentSettingsMapTest, CookiesBlockEverything) {
1231 TestingProfile profile;
1232 HostContentSettingsMap* host_content_settings_map =
1233 profile.GetHostContentSettingsMap();
1234 host_content_settings_map->SetDefaultContentSetting(
1235 CONTENT_SETTINGS_TYPE_COOKIES, CONTENT_SETTING_BLOCK);
1236
1237 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1238 host_content_settings_map->GetCookieContentSetting(
1239 kFirstPartySite, kFirstPartySite, false));
1240 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1241 host_content_settings_map->GetCookieContentSetting(
1242 kFirstPartySite, kFirstPartySite, true));
1243 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1244 host_content_settings_map->GetCookieContentSetting(
1245 kAllowedSite, kFirstPartySite, true));
1246 }
1247
1248 TEST_F(HostContentSettingsMapTest, CookiesBlockEverythingExceptAllowed) {
1249 TestingProfile profile;
1250 HostContentSettingsMap* host_content_settings_map =
1251 profile.GetHostContentSettingsMap();
1252 host_content_settings_map->SetDefaultContentSetting(
1253 CONTENT_SETTINGS_TYPE_COOKIES, CONTENT_SETTING_BLOCK);
1254 host_content_settings_map->AddExceptionForURL(
1255 kAllowedSite, kAllowedSite, CONTENT_SETTINGS_TYPE_COOKIES, "",
1256 CONTENT_SETTING_ALLOW);
1257
1258 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1259 host_content_settings_map->GetCookieContentSetting(
1260 kFirstPartySite, kFirstPartySite, false));
1261 EXPECT_EQ(CONTENT_SETTING_BLOCK,
1262 host_content_settings_map->GetCookieContentSetting(
1263 kFirstPartySite, kFirstPartySite, true));
1264 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1265 host_content_settings_map->GetCookieContentSetting(
1266 kAllowedSite, kFirstPartySite, false));
1267 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1268 host_content_settings_map->GetCookieContentSetting(
1269 kAllowedSite, kFirstPartySite, true));
1270 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1271 host_content_settings_map->GetCookieContentSetting(
1272 kAllowedSite, kAllowedSite, false));
1273 EXPECT_EQ(CONTENT_SETTING_ALLOW,
1274 host_content_settings_map->GetCookieContentSetting(
1275 kAllowedSite, kAllowedSite, true));
1276 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698