Index: chrome/browser/notifications/notification_interactive_uitest.cc |
diff --git a/chrome/browser/notifications/notification_interactive_uitest.cc b/chrome/browser/notifications/notification_interactive_uitest.cc |
index 52e0d2597fa16303f9b1e9a5756963b3eb75581b..ee42f66c689447599008b02e434fd9d3438eb15d 100644 |
--- a/chrome/browser/notifications/notification_interactive_uitest.cc |
+++ b/chrome/browser/notifications/notification_interactive_uitest.cc |
@@ -235,6 +235,33 @@ IN_PROC_BROWSER_TEST_F(NotificationsTest, TestClosePermissionRequestUI) { |
EXPECT_EQ(0U, settings.size()); |
} |
+IN_PROC_BROWSER_TEST_F(NotificationsTest, TestPermissionAPI) { |
+ EnablePermissionsEmbargo(); |
+ ASSERT_TRUE(embedded_test_server()->Start()); |
+ |
+ // Test that Notification.permission returns the right thing. |
+ ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
+ EXPECT_EQ("default", QueryPermissionStatus(browser())); |
+ |
+ AllowOrigin(GetTestPageURL().GetOrigin()); |
+ EXPECT_EQ("granted", QueryPermissionStatus(browser())); |
+ |
+ DenyOrigin(GetTestPageURL().GetOrigin()); |
+ EXPECT_EQ("denied", QueryPermissionStatus(browser())); |
+ |
+ DropOriginPreference(GetTestPageURL().GetOrigin()); |
+ |
+ // Verify embargo behaviour - automatically blocked after 3 dismisses. |
+ ASSERT_TRUE(RequestAndDismissPermission(browser())); |
+ EXPECT_EQ("default", QueryPermissionStatus(browser())); |
+ |
+ ASSERT_TRUE(RequestAndDismissPermission(browser())); |
+ EXPECT_EQ("default", QueryPermissionStatus(browser())); |
+ |
+ ASSERT_TRUE(RequestAndDismissPermission(browser())); |
+ EXPECT_EQ("denied", QueryPermissionStatus(browser())); |
+} |
+ |
IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowNotificationsFromAllSites) { |
ASSERT_TRUE(embedded_test_server()->Start()); |