Chromium Code Reviews| Index: chrome/browser/content_settings/content_settings_pref_provider_unittest.cc |
| diff --git a/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc b/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc |
| index 85a30726e4f25ce90f807bb183612eb7df4afc0b..2a0511ca4e87466cd2febc48d917fd27e6eb9d0d 100644 |
| --- a/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc |
| +++ b/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc |
| @@ -517,6 +517,71 @@ TEST_F(PrefProviderTest, IncognitoInheritsValueMap) { |
| normal_provider.ShutdownOnUIThread(); |
| } |
| +TEST_F(PrefProviderTest, IncognitoDoesNotInheritNotifications) { |
| + syncable_prefs::TestingPrefServiceSyncable prefs; |
| + PrefProvider::RegisterProfilePrefs(prefs.registry()); |
| + |
| + ContentSettingsPattern pattern_1 = |
| + ContentSettingsPattern::FromString("google.com"); |
| + ContentSettingsPattern pattern_2 = |
| + ContentSettingsPattern::FromString("www.google.com"); |
| + ContentSettingsPattern wildcard = |
| + ContentSettingsPattern::FromString("*"); |
| + scoped_ptr<base::Value> value( |
| + new base::FundamentalValue(CONTENT_SETTING_ALLOW)); |
| + |
| + // Create a normal provider and set a setting. |
| + PrefProvider normal_provider(&prefs, false); |
|
Peter Beverloo
2015/11/16 17:14:32
nit: may be worth annotating the boolean parameter
johnme
2015/11/26 17:31:54
Removed from patch, but I've added this elsewhere.
|
| + normal_provider.SetWebsiteSetting(pattern_1, |
| + wildcard, |
| + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
| + std::string(), |
| + value->DeepCopy()); |
| + |
| + // Non-OTR provider, Non-OTR iterator has one setting (pattern 1). |
| + { |
| + scoped_ptr<RuleIterator> it(normal_provider.GetRuleIterator( |
| + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string(), false)); |
| + EXPECT_TRUE(it->HasNext()); |
| + EXPECT_EQ(pattern_1, it->Next().primary_pattern); |
| + EXPECT_FALSE(it->HasNext()); |
| + } |
| + |
| + // Non-OTR provider, OTR iterator has no settings. |
| + { |
| + scoped_ptr<RuleIterator> it(normal_provider.GetRuleIterator( |
| + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string(), true)); |
| + EXPECT_FALSE(it->HasNext()); |
| + } |
| + |
| + // Create an incognito provider and set a setting. |
| + PrefProvider incognito_provider(&prefs, true); |
|
Peter Beverloo
2015/11/16 17:14:32
dito
johnme
2015/11/26 17:31:54
Removed from patch, but I've added this elsewhere.
|
| + incognito_provider.SetWebsiteSetting(pattern_2, |
| + wildcard, |
| + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
| + std::string(), |
| + value->DeepCopy()); |
| + |
| + // OTR provider, non-OTR iterator has no settings. |
| + { |
| + scoped_ptr<RuleIterator> it(incognito_provider.GetRuleIterator( |
| + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string(), false)); |
| + EXPECT_FALSE(it->HasNext()); |
| + } |
| + |
| + // OTR provider, OTR iterator has one setting (pattern 2). |
| + { |
| + scoped_ptr<RuleIterator> it(incognito_provider.GetRuleIterator( |
| + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string(), true)); |
| + EXPECT_TRUE(it->HasNext()); |
| + EXPECT_EQ(pattern_2, it->Next().primary_pattern); |
| + EXPECT_FALSE(it->HasNext()); |
| + } |
| + |
| + incognito_provider.ShutdownOnUIThread(); |
| + normal_provider.ShutdownOnUIThread(); |
| +} |
| + |
| TEST_F(PrefProviderTest, ClearAllContentSettingsRules) { |
| syncable_prefs::TestingPrefServiceSyncable prefs; |
| PrefProvider::RegisterProfilePrefs(prefs.registry()); |