| 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 852696e16d94cb56fbd1af3605ddc2b8ac315513..7c936eaaf8917af2b914d726cfbce6de3ca0aefa 100644
|
| --- a/chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc
|
| +++ b/chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc
|
| @@ -5,10 +5,15 @@
|
| #include "chrome/browser/permissions/permission_decision_auto_blocker.h"
|
|
|
| #include "base/bind.h"
|
| +#include "base/time/time.h"
|
| +#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
|
| #include "chrome/test/base/chrome_render_view_host_test_harness.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| +#include "components/safe_browsing_db/test_database_manager.h"
|
| #include "content/public/browser/permission_type.h"
|
|
|
| +class HostContentSettingsMap;
|
| +
|
| namespace {
|
|
|
| bool FilterGoogle(const GURL& url) {
|
| @@ -44,6 +49,14 @@ class PermissionDecisionAutoBlockerUnitTest
|
| return PermissionDecisionAutoBlocker::RecordIgnore(url, permission,
|
| profile());
|
| }
|
| +
|
| + void PlaceUnderEmbargo(content::PermissionType permission,
|
| + const GURL& url,
|
| + HostContentSettingsMap* map,
|
| + base::Time current_time) {
|
| + PermissionDecisionAutoBlocker::PlaceUnderEmbargo(permission, url, map,
|
| + current_time);
|
| + }
|
| };
|
|
|
| TEST_F(PermissionDecisionAutoBlockerUnitTest, RemoveCountsByUrl) {
|
| @@ -100,3 +113,39 @@ TEST_F(PermissionDecisionAutoBlockerUnitTest, RemoveCountsByUrl) {
|
| EXPECT_EQ(0, GetIgnoreCount(url2, content::PermissionType::DURABLE_STORAGE));
|
| EXPECT_EQ(0, GetIgnoreCount(url2, content::PermissionType::MIDI_SYSEX));
|
| }
|
| +
|
| +TEST_F(PermissionDecisionAutoBlockerUnitTest, CheckEmbargoStatus) {
|
| + GURL url("https://www.google.com");
|
| + HostContentSettingsMap* map =
|
| + HostContentSettingsMapFactory::GetForProfile(profile());
|
| + base::Time time_now = base::Time::Now();
|
| + PlaceUnderEmbargo(content::PermissionType::GEOLOCATION, url, map, time_now);
|
| +
|
| + EXPECT_TRUE(PermissionDecisionAutoBlocker::IsUnderEmbargo(
|
| + content::PermissionType::GEOLOCATION, profile(), url, time_now));
|
| +
|
| + // Check that the origin is not under embargo for another permission.
|
| + EXPECT_FALSE(PermissionDecisionAutoBlocker::IsUnderEmbargo(
|
| + content::PermissionType::NOTIFICATIONS, profile(), url, time_now));
|
| +
|
| + EXPECT_TRUE(PermissionDecisionAutoBlocker::IsUnderEmbargo(
|
| + content::PermissionType::GEOLOCATION, profile(), url,
|
| + time_now + base::TimeDelta::FromDays(5)));
|
| +
|
| + // Check embargo is lifted on expiry day.
|
| + EXPECT_FALSE(PermissionDecisionAutoBlocker::IsUnderEmbargo(
|
| + content::PermissionType::GEOLOCATION, profile(), url,
|
| + time_now + base::TimeDelta::FromDays(7)));
|
| +
|
| + // Check embargo is lifted well after the expiry day.
|
| + EXPECT_FALSE(PermissionDecisionAutoBlocker::IsUnderEmbargo(
|
| + content::PermissionType::GEOLOCATION, profile(), url,
|
| + time_now + base::TimeDelta::FromDays(8)));
|
| +
|
| + // Place under embargo again.
|
| + time_now = base::Time::Now();
|
| + PlaceUnderEmbargo(content::PermissionType::NOTIFICATIONS, url, map, time_now);
|
| +
|
| + EXPECT_TRUE(PermissionDecisionAutoBlocker::IsUnderEmbargo(
|
| + content::PermissionType::NOTIFICATIONS, profile(), url, time_now));
|
| +}
|
|
|