Chromium Code Reviews| Index: chrome/browser/content_settings/host_content_settings_map_unittest.cc |
| diff --git a/chrome/browser/content_settings/host_content_settings_map_unittest.cc b/chrome/browser/content_settings/host_content_settings_map_unittest.cc |
| index 1401b2ab0dd77b6105bb0349fdb9a25e0d53c5c9..131ef7fb7892a21a313e523fdf2606a40a907fde 100644 |
| --- a/chrome/browser/content_settings/host_content_settings_map_unittest.cc |
| +++ b/chrome/browser/content_settings/host_content_settings_map_unittest.cc |
| @@ -1752,57 +1752,128 @@ TEST_F(HostContentSettingsMapTest, ClearSettingsWithTimePredicate) { |
| feature_list.InitAndEnableFeature(features::kTabsInCbd); |
| TestingProfile profile; |
| - HostContentSettingsMap* host_content_settings_map = |
| - HostContentSettingsMapFactory::GetForProfile(&profile); |
| + auto* map = HostContentSettingsMapFactory::GetForProfile(&profile); |
| ContentSettingsForOneType host_settings; |
| GURL url1("https://www.google.com/"); |
| GURL url2("https://maps.google.com/"); |
| // Add setting for url1. |
| - host_content_settings_map->SetContentSettingDefaultScope( |
| - url1, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, std::string(), |
| - CONTENT_SETTING_BLOCK); |
| + map->SetContentSettingDefaultScope(url1, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, |
| + std::string(), CONTENT_SETTING_BLOCK); |
| // Make sure that the timestamp for url1 is different from |t|. |
| base::PlatformThread::Sleep(TestTimeouts::tiny_timeout()); |
| base::Time t = base::Time::Now(); |
| // Add setting for url2. |
| - host_content_settings_map->SetContentSettingDefaultScope( |
| - url2, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, std::string(), |
| - CONTENT_SETTING_BLOCK); |
| + map->SetContentSettingDefaultScope(url2, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, |
| + std::string(), CONTENT_SETTING_BLOCK); |
| // Verify we have two pattern and the default. |
| - host_content_settings_map->GetSettingsForOneType( |
| - CONTENT_SETTINGS_TYPE_POPUPS, std::string(), &host_settings); |
| + map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_POPUPS, std::string(), |
| + &host_settings); |
| EXPECT_EQ(3u, host_settings.size()); |
| // Clear all settings since |t|. |
| - host_content_settings_map->ClearSettingsForOneTypeWithPredicate( |
| + map->ClearSettingsForOneTypeWithPredicate( |
| CONTENT_SETTINGS_TYPE_POPUPS, t, |
| HostContentSettingsMap::PatternSourcePredicate()); |
| // Verify we only have one pattern (url1) and the default. |
| - host_content_settings_map->GetSettingsForOneType( |
| - CONTENT_SETTINGS_TYPE_POPUPS, std::string(), &host_settings); |
| + map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_POPUPS, std::string(), |
| + &host_settings); |
| EXPECT_EQ(2u, host_settings.size()); |
| EXPECT_EQ("https://www.google.com:443", |
| host_settings[0].primary_pattern.ToString()); |
| EXPECT_EQ("*", host_settings[1].primary_pattern.ToString()); |
| // Clear all settings since the beginning of time. |
| - host_content_settings_map->ClearSettingsForOneTypeWithPredicate( |
| + map->ClearSettingsForOneTypeWithPredicate( |
| CONTENT_SETTINGS_TYPE_POPUPS, base::Time(), |
| HostContentSettingsMap::PatternSourcePredicate()); |
| // Verify we only have the default setting. |
| - host_content_settings_map->GetSettingsForOneType( |
| - CONTENT_SETTINGS_TYPE_POPUPS, std::string(), &host_settings); |
| + map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_POPUPS, std::string(), |
| + &host_settings); |
| EXPECT_EQ(1u, host_settings.size()); |
| EXPECT_EQ("*", host_settings[0].primary_pattern.ToString()); |
| } |
| +TEST_F(HostContentSettingsMapTest, GetSettingLastModified) { |
| + base::test::ScopedFeatureList feature_list; |
| + feature_list.InitAndEnableFeature(features::kTabsInCbd); |
| + |
| + TestingProfile profile; |
| + auto* map = HostContentSettingsMapFactory::GetForProfile(&profile); |
| + ContentSettingsForOneType host_settings; |
| + |
| + GURL url("https://www.google.com/"); |
| + ContentSettingsPattern pattern = |
| + ContentSettingsPattern::FromURLNoWildcard(url); |
| + |
| + { |
| + // Last modified date for non existant settings should be base::Time(). |
| + base::Time t = map->GetSettingLastModifiedDate( |
| + pattern, ContentSettingsPattern::Wildcard(), |
| + CONTENT_SETTINGS_TYPE_POPUPS); |
| + EXPECT_EQ(base::Time(), t); |
| + } |
| + |
| + base::Time t1 = base::Time::Now(); |
| + |
| + // Add setting for url. |
| + map->SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, |
| + std::string(), CONTENT_SETTING_BLOCK); |
| + |
| + // Make sure that the timestamp for url is different from |t|. |
| + base::PlatformThread::Sleep(TestTimeouts::tiny_timeout()); |
|
Bernhard Bauer
2017/05/03 14:29:21
Ugh, real-time timers. Can't we inject a timer for
dullweber
2017/05/03 15:59:13
I changed the PrefProvider to use a base::Clock. I
|
| + base::Time t2 = base::Time::Now(); |
| + |
| + { |
| + // Last modified date for non existant settings should be base::Time(). |
| + base::Time t = map->GetSettingLastModifiedDate( |
| + pattern, ContentSettingsPattern::Wildcard(), |
| + CONTENT_SETTINGS_TYPE_POPUPS); |
| + EXPECT_GE(t, t1); |
| + EXPECT_LT(t, t2); |
| + } |
| + |
| + // Modify setting. |
| + map->SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, |
| + std::string(), CONTENT_SETTING_ALLOW); |
| + |
| + { |
| + // Last modified date for non existant settings should be base::Time(). |
| + base::Time t = map->GetSettingLastModifiedDate( |
| + pattern, ContentSettingsPattern::Wildcard(), |
| + CONTENT_SETTINGS_TYPE_POPUPS); |
| + EXPECT_GE(t, t2); |
| + } |
| +} |
| + |
| +TEST_F(HostContentSettingsMapTest, LastModifiedIsNotRecordedWhenDisabled) { |
| + base::test::ScopedFeatureList feature_list; |
| + feature_list.InitAndDisableFeature(features::kTabsInCbd); |
| + |
| + TestingProfile profile; |
| + auto* map = HostContentSettingsMapFactory::GetForProfile(&profile); |
| + ContentSettingsForOneType host_settings; |
| + |
| + GURL url("https://www.google.com/"); |
| + ContentSettingsPattern pattern = |
| + ContentSettingsPattern::FromURLNoWildcard(url); |
| + |
| + // Add setting for url. |
| + map->SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, |
| + std::string(), CONTENT_SETTING_BLOCK); |
| + |
| + base::Time t = map->GetSettingLastModifiedDate( |
| + pattern, ContentSettingsPattern::Wildcard(), |
| + CONTENT_SETTINGS_TYPE_POPUPS); |
| + EXPECT_EQ(base::Time(), t); |
| +} |
| + |
| TEST_F(HostContentSettingsMapTest, CanSetNarrowestSetting) { |
| TestingProfile profile; |
| const auto* map = HostContentSettingsMapFactory::GetForProfile(&profile); |