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 a530604fa391bb10f4a810f8d0d1ca8218e66834..042c0a8a7756ecac4e89d26e0d552bd9b651071b 100644 |
--- a/chrome/browser/content_settings/host_content_settings_map_unittest.cc |
+++ b/chrome/browser/content_settings/host_content_settings_map_unittest.cc |
@@ -1070,6 +1070,74 @@ TEST_F(HostContentSettingsMapTest, AddContentSettingsObserver) { |
CONTENT_SETTING_DEFAULT); |
} |
+TEST_F(HostContentSettingsMapTest, RevocationObserver) { |
+ TestingProfile profile; |
+ HostContentSettingsMap* map = |
+ HostContentSettingsMapFactory::GetForProfile(&profile); |
+ content_settings::MockObserver mock_observer; |
+ map->AddRevocationObserver(&mock_observer); |
+ |
+ GURL host("http://example.com/"); |
+ |
+ ContentSettingsPattern pattern = |
+ ContentSettingsPattern::FromURLNoWildcard(host); |
+ |
+ // Allow->Block triggers a revocation. |
+ |
+ EXPECT_CALL(mock_observer, |
+ OnContentSettingRevoked(host, host, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, "")); |
+ |
+ map->SetContentSettingDefaultScope( |
+ host, host, CONTENT_SETTINGS_TYPE_GEOLOCATION, "", CONTENT_SETTING_ALLOW); |
+ |
+ map->SetContentSettingDefaultScope( |
+ host, host, CONTENT_SETTINGS_TYPE_GEOLOCATION, "", CONTENT_SETTING_BLOCK); |
+ |
+ ::testing::Mock::VerifyAndClearExpectations(&mock_observer); |
+ |
+ // Block->Allow does not trigger a revocation. |
+ EXPECT_CALL(mock_observer, |
+ OnContentSettingRevoked(host, host, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, "")) |
+ .Times(0); |
+ |
+ map->SetContentSettingDefaultScope( |
+ host, host, CONTENT_SETTINGS_TYPE_GEOLOCATION, "", CONTENT_SETTING_ALLOW); |
+ |
+ ::testing::Mock::VerifyAndClearExpectations(&mock_observer); |
+ |
+ // Allow->Default triggers a revocation when default is 'ask'. |
kcarattini
2016/03/17 02:51:22
There's no way to clear or reset all permissions f
tsergeant
2016/03/17 06:25:40
Hmm, good point. Under this system the 'Clear & Re
|
+ EXPECT_CALL(mock_observer, |
+ OnContentSettingRevoked(host, host, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, "")); |
+ |
+ map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION, |
+ CONTENT_SETTING_ASK); |
+ |
+ map->SetContentSettingDefaultScope(host, host, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, "", |
+ CONTENT_SETTING_DEFAULT); |
+ |
+ // Allow->Default does not trigger a revocation when default is 'allow'. |
+ EXPECT_CALL(mock_observer, |
+ OnContentSettingRevoked(host, host, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, "")) |
+ .Times(0); |
+ |
+ map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION, |
+ CONTENT_SETTING_ALLOW); |
+ |
+ map->SetContentSettingDefaultScope(host, host, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, "", |
+ CONTENT_SETTING_ALLOW); |
+ map->SetContentSettingDefaultScope(host, host, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, "", |
+ CONTENT_SETTING_DEFAULT); |
+ |
+ ::testing::Mock::VerifyAndClearExpectations(&mock_observer); |
+} |
+ |
TEST_F(HostContentSettingsMapTest, GuestProfile) { |
TestingProfile profile; |
profile.SetGuestSession(true); |