Index: chrome/browser/notifications/platform_notification_service_unittest.cc |
diff --git a/chrome/browser/notifications/platform_notification_service_unittest.cc b/chrome/browser/notifications/platform_notification_service_unittest.cc |
index 8ca62641ad7d84271c4596ecd3745cda9258a478..e263683a06ef1b0807cac41c20ae90f85d263060 100644 |
--- a/chrome/browser/notifications/platform_notification_service_unittest.cc |
+++ b/chrome/browser/notifications/platform_notification_service_unittest.cc |
@@ -55,7 +55,8 @@ using content::PlatformNotificationData; |
namespace { |
-const char kNotificationId[] = "my-notification-id"; |
+const char kPersistentNotificationId[] = "p:my-notification-id"; |
+const char kNonPersistentNotificationId[] = "n:my-notification-id"; |
const int kNotificationVibrationPattern[] = { 100, 200, 300 }; |
class MockDesktopNotificationDelegate |
@@ -126,7 +127,7 @@ class PlatformNotificationServiceTest : public testing::Test { |
MockDesktopNotificationDelegate* delegate = |
new MockDesktopNotificationDelegate(); |
- service()->DisplayNotification(profile(), kNotificationId, |
+ service()->DisplayNotification(profile(), kNonPersistentNotificationId, |
GURL("https://chrome.com/"), |
notification_data, NotificationResources(), |
base::WrapUnique(delegate), close_closure); |
@@ -197,7 +198,7 @@ TEST_F(PlatformNotificationServiceTest, PersistentNotificationDisplay) { |
notification_data.body = base::ASCIIToUTF16("Hello, world!"); |
service()->DisplayPersistentNotification( |
- profile(), kNotificationId, GURL() /* service_worker_scope */, |
+ profile(), kPersistentNotificationId, GURL() /* service_worker_scope */, |
GURL("https://chrome.com/"), notification_data, NotificationResources()); |
ASSERT_EQ(1u, GetNotificationCount()); |
@@ -209,7 +210,7 @@ TEST_F(PlatformNotificationServiceTest, PersistentNotificationDisplay) { |
EXPECT_EQ("Hello, world!", |
base::UTF16ToUTF8(notification.message())); |
- service()->ClosePersistentNotification(profile(), kNotificationId); |
+ service()->ClosePersistentNotification(profile(), kPersistentNotificationId); |
EXPECT_EQ(0u, GetNotificationCount()); |
} |
@@ -226,7 +227,7 @@ TEST_F(PlatformNotificationServiceTest, DisplayPageNotificationMatches) { |
MockDesktopNotificationDelegate* delegate |
= new MockDesktopNotificationDelegate(); |
- service()->DisplayNotification(profile(), kNotificationId, |
+ service()->DisplayNotification(profile(), kNonPersistentNotificationId, |
GURL("https://chrome.com/"), notification_data, |
NotificationResources(), |
base::WrapUnique(delegate), nullptr); |
@@ -268,7 +269,7 @@ TEST_F(PlatformNotificationServiceTest, DisplayPersistentNotificationMatches) { |
notification_resources.action_icons.resize(notification_data.actions.size()); |
service()->DisplayPersistentNotification( |
- profile(), kNotificationId, GURL() /* service_worker_scope */, |
+ profile(), kPersistentNotificationId, GURL() /* service_worker_scope */, |
GURL("https://chrome.com/"), notification_data, notification_resources); |
ASSERT_EQ(1u, GetNotificationCount()); |
@@ -308,8 +309,8 @@ TEST_F(PlatformNotificationServiceTest, NotificationPermissionLastUsage) { |
base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1)); |
service()->DisplayPersistentNotification( |
- profile(), kNotificationId, GURL() /* service_worker_scope */, origin, |
- PlatformNotificationData(), NotificationResources()); |
+ profile(), kPersistentNotificationId, GURL() /* service_worker_scope */, |
+ origin, PlatformNotificationData(), NotificationResources()); |
base::Time after_persistent_notification = |
HostContentSettingsMapFactory::GetForProfile(profile())->GetLastUsage( |
@@ -442,4 +443,30 @@ TEST_F(PlatformNotificationServiceTest, CreateNotificationFromData) { |
base::UTF16ToUTF8(notification.context_message())); |
} |
+TEST_F(PlatformNotificationServiceTest, GetDisplayedPersistentNotifications) { |
+ PlatformNotificationData notification_data; |
+ notification_data.title = |
+ base::ASCIIToUTF16("Non Persistent notification's title"); |
+ notification_data.body = base::ASCIIToUTF16("Hello, world!"); |
+ |
+ MockDesktopNotificationDelegate* delegate = |
+ new MockDesktopNotificationDelegate(); |
+ service()->DisplayNotification(profile(), kNonPersistentNotificationId, |
+ GURL("https://chrome.com/"), notification_data, |
+ NotificationResources(), |
+ base::WrapUnique(delegate), nullptr); |
+ |
+ notification_data.title = |
+ base::ASCIIToUTF16("Persistent notification's title"); |
+ service()->DisplayPersistentNotification( |
+ profile(), kPersistentNotificationId, GURL() /* service_worker_scope */, |
+ GURL("https://chrome.com/"), notification_data, NotificationResources()); |
+ ASSERT_EQ(2u, GetNotificationCount()); |
+ |
+ std::set<std::string> displayed_notifications; |
+ ASSERT_TRUE(service()->GetDisplayedPersistentNotifications( |
+ profile(), &displayed_notifications)); |
+ EXPECT_EQ(1u, displayed_notifications.size()); |
+} |
+ |
#endif // BUILDFLAG(ENABLE_EXTENSIONS) |