| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <deque> | 5 #include <deque> |
| 6 #include <string> | 6 #include <string> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 }; | 115 }; |
| 116 | 116 |
| 117 } // namespace | 117 } // namespace |
| 118 | 118 |
| 119 class NotificationsTest : public InProcessBrowserTest { | 119 class NotificationsTest : public InProcessBrowserTest { |
| 120 public: | 120 public: |
| 121 NotificationsTest() {} | 121 NotificationsTest() {} |
| 122 | 122 |
| 123 protected: | 123 protected: |
| 124 int GetNotificationCount(); | 124 int GetNotificationCount(); |
| 125 int GetNotificationPopupCount(); |
| 125 | 126 |
| 126 void CloseBrowserWindow(Browser* browser); | 127 void CloseBrowserWindow(Browser* browser); |
| 127 void CrashTab(Browser* browser, int index); | 128 void CrashTab(Browser* browser, int index); |
| 128 | 129 |
| 129 void DenyOrigin(const GURL& origin); | 130 void DenyOrigin(const GURL& origin); |
| 130 void AllowOrigin(const GURL& origin); | 131 void AllowOrigin(const GURL& origin); |
| 131 void AllowAllOrigins(); | 132 void AllowAllOrigins(); |
| 132 void SetDefaultContentSetting(ContentSetting setting); | 133 void SetDefaultContentSetting(ContentSetting setting); |
| 133 | 134 |
| 134 void VerifyInfoBar(const Browser* browser, int index); | 135 void VerifyInfoBar(const Browser* browser, int index); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 157 } | 158 } |
| 158 | 159 |
| 159 private: | 160 private: |
| 160 void DropOriginPreference(const GURL& origin); | 161 void DropOriginPreference(const GURL& origin); |
| 161 }; | 162 }; |
| 162 | 163 |
| 163 int NotificationsTest::GetNotificationCount() { | 164 int NotificationsTest::GetNotificationCount() { |
| 164 return message_center::MessageCenter::Get()->NotificationCount(); | 165 return message_center::MessageCenter::Get()->NotificationCount(); |
| 165 } | 166 } |
| 166 | 167 |
| 168 int NotificationsTest::GetNotificationPopupCount() { |
| 169 return message_center::MessageCenter::Get()->GetPopupNotifications().size(); |
| 170 } |
| 171 |
| 167 void NotificationsTest::CloseBrowserWindow(Browser* browser) { | 172 void NotificationsTest::CloseBrowserWindow(Browser* browser) { |
| 168 content::WindowedNotificationObserver observer( | 173 content::WindowedNotificationObserver observer( |
| 169 chrome::NOTIFICATION_BROWSER_CLOSED, | 174 chrome::NOTIFICATION_BROWSER_CLOSED, |
| 170 content::Source<Browser>(browser)); | 175 content::Source<Browser>(browser)); |
| 171 browser->window()->Close(); | 176 browser->window()->Close(); |
| 172 observer.Wait(); | 177 observer.Wait(); |
| 173 } | 178 } |
| 174 | 179 |
| 175 void NotificationsTest::CrashTab(Browser* browser, int index) { | 180 void NotificationsTest::CrashTab(Browser* browser, int index) { |
| 176 content::CrashTab(browser->tab_strip_model()->GetWebContentsAt(index)); | 181 content::CrashTab(browser->tab_strip_model()->GetWebContentsAt(index)); |
| (...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 795 | 800 |
| 796 result = CreateSimpleNotification(browser(), true); | 801 result = CreateSimpleNotification(browser(), true); |
| 797 EXPECT_NE("-1", result); | 802 EXPECT_NE("-1", result); |
| 798 | 803 |
| 799 EXPECT_EQ(settings_map->GetLastUsage(GetTestPageURL().GetOrigin(), | 804 EXPECT_EQ(settings_map->GetLastUsage(GetTestPageURL().GetOrigin(), |
| 800 GetTestPageURL().GetOrigin(), | 805 GetTestPageURL().GetOrigin(), |
| 801 CONTENT_SETTINGS_TYPE_NOTIFICATIONS) | 806 CONTENT_SETTINGS_TYPE_NOTIFICATIONS) |
| 802 .ToDoubleT(), | 807 .ToDoubleT(), |
| 803 13); | 808 13); |
| 804 } | 809 } |
| 810 |
| 811 IN_PROC_BROWSER_TEST_F(NotificationsTest, |
| 812 TestNotificationReplacementReappearance) { |
| 813 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 814 |
| 815 // Test that we can replace a notification using the tag, and that it will |
| 816 // cause the notification to reappear as a popup again. |
| 817 AllowAllOrigins(); |
| 818 |
| 819 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
| 820 |
| 821 ASSERT_EQ(0, GetNotificationPopupCount()); |
| 822 |
| 823 std::string result = CreateNotification( |
| 824 browser(), true, "abc.png", "Title1", "Body1", "chat"); |
| 825 EXPECT_NE("-1", result); |
| 826 |
| 827 ASSERT_EQ(1, GetNotificationPopupCount()); |
| 828 |
| 829 message_center::NotificationList::Notifications notifications = |
| 830 message_center::MessageCenter::Get()->GetVisibleNotifications(); |
| 831 message_center::MessageCenter::Get()->ClickOnNotification( |
| 832 (*notifications.rbegin())->id()); |
| 833 |
| 834 ASSERT_EQ(0, GetNotificationPopupCount()); |
| 835 |
| 836 result = CreateNotification( |
| 837 browser(), true, "abc.png", "Title2", "Body2", "chat"); |
| 838 EXPECT_NE("-1", result); |
| 839 |
| 840 ASSERT_EQ(1, GetNotificationPopupCount()); |
| 841 } |
| OLD | NEW |