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

Unified Diff: chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc

Issue 2651123002: Migrate content setting PROMPT_NO_DECISION_COUNT to PERMISSION_AUTOBLOCKER_DATA (Closed)
Patch Set: . Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
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);
+}

Powered by Google App Engine
This is Rietveld 408576698