Index: chrome/browser/notifications/notification_browsertest.cc |
diff --git a/chrome/browser/notifications/notification_browsertest.cc b/chrome/browser/notifications/notification_browsertest.cc |
index 5f4462d3158adfbd71cbc2e38c338131e3278200..b8f49418f4afe2ea37861b2ebb4392e807877adb 100644 |
--- a/chrome/browser/notifications/notification_browsertest.cc |
+++ b/chrome/browser/notifications/notification_browsertest.cc |
@@ -122,6 +122,7 @@ class NotificationsTest : public InProcessBrowserTest { |
protected: |
int GetNotificationCount(); |
+ int GetNotificationPopupCount(); |
void CloseBrowserWindow(Browser* browser); |
void CrashTab(Browser* browser, int index); |
@@ -164,6 +165,10 @@ int NotificationsTest::GetNotificationCount() { |
return message_center::MessageCenter::Get()->NotificationCount(); |
} |
+int NotificationsTest::GetNotificationPopupCount() { |
+ return message_center::MessageCenter::Get()->GetPopupNotifications().size(); |
+} |
+ |
void NotificationsTest::CloseBrowserWindow(Browser* browser) { |
content::WindowedNotificationObserver observer( |
chrome::NOTIFICATION_BROWSER_CLOSED, |
@@ -743,17 +748,10 @@ IN_PROC_BROWSER_TEST_F(NotificationsTest, |
ASSERT_EQ(1, GetNotificationCount()); |
} |
-// See http://crbug.com/366539 |
-#if defined(OS_LINUX) |
-#define MAYBE_TestNotificationReplacement DISABLED_TestNotificationReplacement |
-#else |
-#define MAYBE_TestNotificationReplacement TestNotificationReplacement |
-#endif |
- |
-IN_PROC_BROWSER_TEST_F(NotificationsTest, MAYBE_TestNotificationReplacement) { |
+IN_PROC_BROWSER_TEST_F(NotificationsTest, TestNotificationReplacement) { |
ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
- // Test that we can replace a notification using the replaceId. |
+ // Test that we can replace a notification using the tag. |
AllowAllOrigins(); |
ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
@@ -809,3 +807,35 @@ IN_PROC_BROWSER_TEST_F(NotificationsTest, TestLastUsage) { |
.ToDoubleT(), |
13); |
} |
+ |
+IN_PROC_BROWSER_TEST_F(NotificationsTest, |
+ TestNotificationReplacementReappearance) { |
+ ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
+ |
+ // Test that we can replace a notification using the tag, and that it will |
+ // cause the notification to reappear as a popup again. |
+ AllowAllOrigins(); |
+ |
+ ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
+ |
+ ASSERT_EQ(0, GetNotificationPopupCount()); |
+ |
+ std::string result = CreateNotification( |
+ browser(), true, "abc.png", "Title1", "Body1", "chat"); |
+ EXPECT_NE("-1", result); |
+ |
+ ASSERT_EQ(1, GetNotificationPopupCount()); |
+ |
+ message_center::NotificationList::Notifications notifications = |
+ message_center::MessageCenter::Get()->GetVisibleNotifications(); |
+ message_center::MessageCenter::Get()->ClickOnNotification( |
+ (*notifications.rbegin())->id()); |
+ |
+ ASSERT_EQ(0, GetNotificationPopupCount()); |
+ |
+ result = CreateNotification( |
+ browser(), true, "abc.png", "Title2", "Body2", "chat"); |
+ EXPECT_NE("-1", result); |
+ |
+ ASSERT_EQ(1, GetNotificationPopupCount()); |
+} |