Chromium Code Reviews| Index: chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc |
| diff --git a/chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc b/chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc |
| index f32bfc76749eaa86c611726a232120127c9e6dab..8646136182bd02023602e3d17b61781f3f4d000c 100644 |
| --- a/chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc |
| +++ b/chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc |
| @@ -8,9 +8,11 @@ |
| #include "base/test/scoped_feature_list.h" |
| #include "base/time/time.h" |
| #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| +#include "chrome/browser/permissions/permission_util.h" |
| #include "chrome/common/chrome_features.h" |
| #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| #include "chrome/test/base/testing_profile.h" |
| +#include "components/content_settings/core/browser/host_content_settings_map.h" |
| #include "components/safe_browsing_db/test_database_manager.h" |
| #include "content/public/browser/permission_type.h" |
| @@ -77,6 +79,14 @@ class PermissionDecisionAutoBlockerUnitTest |
| permission, url, map, current_time, |
| PermissionDecisionAutoBlocker::kPermissionBlacklistEmbargoKey); |
| } |
| + |
| + const char* GetDismissKey() { |
| + return PermissionDecisionAutoBlocker::kPromptDismissCountKey; |
| + } |
| + |
| + const char* GetIgnoreKey() { |
| + return PermissionDecisionAutoBlocker::kPromptIgnoreCountKey; |
| + } |
| }; |
| TEST_F(PermissionDecisionAutoBlockerUnitTest, RemoveCountsByUrl) { |
| @@ -295,3 +305,51 @@ TEST_F(PermissionDecisionAutoBlockerUnitTest, TestExpiredBlacklistEmbargo) { |
| EXPECT_TRUE(PermissionDecisionAutoBlocker::IsUnderEmbargo( |
| content::PermissionType::GEOLOCATION, profile(), url, time_now)); |
| } |
| + |
| +// TODO(raymes): See crbug.com/681709. Remove after M60. |
| +TEST_F(PermissionDecisionAutoBlockerUnitTest, |
| + MigrateNoDecisionCountToPermissionAutoblockerData) { |
|
dominickn
2017/01/25 06:02:33
Sp: AutoBlocker
|
| + GURL url("https://www.google.com"); |
| + auto* map = HostContentSettingsMapFactory::GetForProfile(profile()); |
| + |
| + // Write to the old content setting. |
| + base::DictionaryValue permissions_dict; |
| + permissions_dict.SetInteger(GetDismissKey(), 100); |
| + permissions_dict.SetInteger(GetIgnoreKey(), 50); |
| + |
| + base::DictionaryValue origin_dict; |
| + origin_dict.Set( |
| + PermissionUtil::GetPermissionString(content::PermissionType::GEOLOCATION), |
| + permissions_dict.CreateDeepCopy()); |
| + map->SetWebsiteSettingDefaultScope( |
| + url, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT, |
| + std::string(), origin_dict.CreateDeepCopy()); |
| + |
| + // Nothing should be migrated yet, so the current values should be 0. |
| + EXPECT_EQ(0, PermissionDecisionAutoBlocker::GetDismissCount( |
| + url, content::PermissionType::GEOLOCATION, profile())); |
| + EXPECT_EQ(0, PermissionDecisionAutoBlocker::GetIgnoreCount( |
| + url, content::PermissionType::GEOLOCATION, profile())); |
| + |
| + // Trigger pref migration which happens at the creation of the |
| + // HostContentSetitngsMap. |
|
dominickn
2017/01/25 06:02:33
sp. SettingsMap
|
| + { |
| + scoped_refptr<HostContentSettingsMap> temp_map(new HostContentSettingsMap( |
| + profile()->GetPrefs(), false /* is_incognito_profile */, |
| + false /* is_guest_profile */)); |
| + temp_map->ShutdownOnUIThread(); |
| + } |
| + |
| + // The values should now be migrated. |
| + EXPECT_EQ(100, PermissionDecisionAutoBlocker::GetDismissCount( |
| + url, content::PermissionType::GEOLOCATION, profile())); |
| + EXPECT_EQ(50, PermissionDecisionAutoBlocker::GetIgnoreCount( |
| + url, content::PermissionType::GEOLOCATION, profile())); |
| + |
| + // The old pref should be deleted. |
| + std::unique_ptr<base::DictionaryValue> old_dict = |
| + base::DictionaryValue::From(map->GetWebsiteSetting( |
| + url, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT, |
| + std::string(), nullptr)); |
| + EXPECT_EQ(nullptr, old_dict); |
| +} |