Index: chrome/browser/notifications/desktop_notification_service_unittest.cc |
diff --git a/chrome/browser/notifications/desktop_notification_service_unittest.cc b/chrome/browser/notifications/desktop_notification_service_unittest.cc |
index 8351f5aefebfdcb23d2794135e838b383b71ece8..c52e03c1d418b9aeb4d3ebed9ed90381aa94e4cd 100644 |
--- a/chrome/browser/notifications/desktop_notification_service_unittest.cc |
+++ b/chrome/browser/notifications/desktop_notification_service_unittest.cc |
@@ -8,6 +8,9 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/message_loop/message_loop.h" |
#include "base/synchronization/waitable_event.h" |
+#include "base/test/simple_test_clock.h" |
+#include "base/time/clock.h" |
+#include "chrome/browser/content_settings/host_content_settings_map.h" |
#include "chrome/browser/notifications/desktop_notification_service_factory.h" |
#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
#include "chrome/test/base/testing_profile.h" |
@@ -63,3 +66,44 @@ TEST_F(DesktopNotificationServiceTest, GetNotificationsSettings) { |
EXPECT_EQ(CONTENT_SETTING_ASK, |
settings[4].setting); |
} |
+ |
+TEST_F(DesktopNotificationServiceTest, AuditLastUsage) { |
+ GURL site("http://example.com"); |
+ base::SimpleTestClock test_clock_; |
+ test_clock_.SetNow(base::Time::UnixEpoch() + |
+ base::TimeDelta::FromSeconds(10)); |
+ profile()->GetHostContentSettingsMap()->SetPrefClockForTesting(&test_clock_); |
+ |
+ // The permission shouldn't have been used yet. |
+ EXPECT_EQ(profile() |
+ ->GetHostContentSettingsMap() |
+ ->GetLastUsageByPattern( |
+ ContentSettingsPattern::FromURLNoWildcard(site), |
+ ContentSettingsPattern::Wildcard(), |
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS) |
+ .ToDoubleT(), |
+ 0); |
+ |
+ service_->GrantPermission(site); |
+ |
+ EXPECT_EQ(profile() |
+ ->GetHostContentSettingsMap() |
+ ->GetLastUsageByPattern( |
+ ContentSettingsPattern::FromURLNoWildcard(site), |
+ ContentSettingsPattern::Wildcard(), |
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS) |
+ .ToDoubleT(), |
+ 10); |
+ |
+ test_clock_.Advance(base::TimeDelta::FromSeconds(3)); |
+ service_->GrantPermission(site); |
+ |
+ EXPECT_EQ(profile() |
+ ->GetHostContentSettingsMap() |
+ ->GetLastUsageByPattern( |
+ ContentSettingsPattern::FromURLNoWildcard(site), |
+ ContentSettingsPattern::Wildcard(), |
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS) |
+ .ToDoubleT(), |
+ 13); |
+} |