Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7690)

Unified Diff: chrome/browser/ui/cocoa/notifications/notification_response_builder_mac_unittest.mm

Issue 2799343003: Add support for native extension notifications (Closed)
Patch Set: Remove dependent CL to land standalone Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/notifications/notification_response_builder_mac_unittest.mm
diff --git a/chrome/browser/ui/cocoa/notifications/notification_response_builder_mac_unittest.mm b/chrome/browser/ui/cocoa/notifications/notification_response_builder_mac_unittest.mm
index 14be1ae515f4148f5957b41bc5480f7e6633997a..9c0db2a54650e8c1b8f95bb7acaf2834ac3a1f7a 100644
--- a/chrome/browser/ui/cocoa/notifications/notification_response_builder_mac_unittest.mm
+++ b/chrome/browser/ui/cocoa/notifications/notification_response_builder_mac_unittest.mm
@@ -13,7 +13,8 @@
class NotificationResponseBuilderMacTest : public testing::Test {
protected:
- base::scoped_nsobject<NotificationBuilder> NewTestBuilder() {
+ base::scoped_nsobject<NotificationBuilder> NewTestBuilder(
+ NotificationCommon::Type type) {
base::scoped_nsobject<NotificationBuilder> builder(
[[NotificationBuilder alloc] initWithCloseLabel:@"Close"
optionsLabel:@"Options"
@@ -26,13 +27,15 @@ class NotificationResponseBuilderMacTest : public testing::Test {
[builder setNotificationId:@"notificationId"];
[builder setProfileId:@"profileId"];
[builder setIncognito:false];
- [builder setNotificationType:@(NotificationCommon::PERSISTENT)];
+ [builder setNotificationType:@(type)];
+ [builder setShowSettingsButton:(type != NotificationCommon::EXTENSION)];
return builder;
}
};
TEST_F(NotificationResponseBuilderMacTest, TestNotificationClick) {
- base::scoped_nsobject<NotificationBuilder> builder = NewTestBuilder();
+ base::scoped_nsobject<NotificationBuilder> builder =
+ NewTestBuilder(NotificationCommon::PERSISTENT);
NSUserNotification* notification = [builder buildUserNotification];
// This will be set by the notification center to indicate the notification
// was clicked.
@@ -46,12 +49,14 @@ TEST_F(NotificationResponseBuilderMacTest, TestNotificationClick) {
[response objectForKey:notification_constants::kNotificationOperation];
NSNumber* buttonIndex =
[response objectForKey:notification_constants::kNotificationButtonIndex];
+
EXPECT_EQ(0 /* NOTIFICATION_CLICK */, operation.intValue);
EXPECT_EQ(-1, buttonIndex.intValue);
}
TEST_F(NotificationResponseBuilderMacTest, TestNotificationSettingsClick) {
- base::scoped_nsobject<NotificationBuilder> builder = NewTestBuilder();
+ base::scoped_nsobject<NotificationBuilder> builder =
+ NewTestBuilder(NotificationCommon::PERSISTENT);
NSUserNotification* notification = [builder buildUserNotification];
// This will be set by the notification center to indicate the only available
@@ -65,12 +70,14 @@ TEST_F(NotificationResponseBuilderMacTest, TestNotificationSettingsClick) {
[response objectForKey:notification_constants::kNotificationOperation];
NSNumber* buttonIndex =
[response objectForKey:notification_constants::kNotificationButtonIndex];
+
EXPECT_EQ(2 /* NOTIFICATION_SETTINGS */, operation.intValue);
EXPECT_EQ(-1, buttonIndex.intValue);
}
TEST_F(NotificationResponseBuilderMacTest, TestNotificationOneActionClick) {
- base::scoped_nsobject<NotificationBuilder> builder = NewTestBuilder();
+ base::scoped_nsobject<NotificationBuilder> builder =
+ NewTestBuilder(NotificationCommon::PERSISTENT);
[builder setButtons:@"Button1" secondaryButton:@""];
NSUserNotification* notification = [builder buildUserNotification];
@@ -93,7 +100,8 @@ TEST_F(NotificationResponseBuilderMacTest, TestNotificationOneActionClick) {
}
TEST_F(NotificationResponseBuilderMacTest, TestNotificationTwoActionClick) {
- base::scoped_nsobject<NotificationBuilder> builder = NewTestBuilder();
+ base::scoped_nsobject<NotificationBuilder> builder =
+ NewTestBuilder(NotificationCommon::PERSISTENT);
[builder setButtons:@"Button1" secondaryButton:@"Button2"];
NSUserNotification* notification = [builder buildUserNotification];
@@ -118,7 +126,8 @@ TEST_F(NotificationResponseBuilderMacTest, TestNotificationTwoActionClick) {
TEST_F(NotificationResponseBuilderMacTest,
TestNotificationTwoActionSettingsClick) {
- base::scoped_nsobject<NotificationBuilder> builder = NewTestBuilder();
+ base::scoped_nsobject<NotificationBuilder> builder =
+ NewTestBuilder(NotificationCommon::PERSISTENT);
[builder setButtons:@"Button1" secondaryButton:@"Button2"];
NSUserNotification* notification = [builder buildUserNotification];
@@ -144,7 +153,8 @@ TEST_F(NotificationResponseBuilderMacTest,
}
TEST_F(NotificationResponseBuilderMacTest, TestNotificationClose) {
- base::scoped_nsobject<NotificationBuilder> builder = NewTestBuilder();
+ base::scoped_nsobject<NotificationBuilder> builder =
+ NewTestBuilder(NotificationCommon::PERSISTENT);
NSUserNotification* notification = [builder buildUserNotification];
// None is what the NSUserNotification center emits when closing since it
@@ -162,3 +172,29 @@ TEST_F(NotificationResponseBuilderMacTest, TestNotificationClose) {
EXPECT_EQ(1 /* NOTIFICATION_CLOSE */, operation.intValue);
EXPECT_EQ(-1, buttonIndex.intValue);
}
+
+TEST_F(NotificationResponseBuilderMacTest, TestNotificationExtension) {
+ base::scoped_nsobject<NotificationBuilder> builder =
+ NewTestBuilder(NotificationCommon::EXTENSION);
+ [builder setButtons:@"Button1" secondaryButton:@"Button2"];
+ NSUserNotification* notification = [builder buildUserNotification];
+ // These values will be set by the notification center to indicate that button
+ // 1 was clicked.
+ [notification
+ setValue:
+ [NSNumber
+ numberWithInt:NSUserNotificationActivationTypeActionButtonClicked]
+ forKey:@"_activationType"];
+ [notification setValue:[NSNumber numberWithInt:1]
+ forKey:@"_alternateActionIndex"];
+
+ NSDictionary* response =
+ [NotificationResponseBuilder buildDictionary:notification];
+
+ NSNumber* operation =
+ [response objectForKey:notification_constants::kNotificationOperation];
+ NSNumber* buttonIndex =
+ [response objectForKey:notification_constants::kNotificationButtonIndex];
+ EXPECT_EQ(0 /* NOTIFICATION_CLICK */, operation.intValue);
+ EXPECT_EQ(1, buttonIndex.intValue);
+}

Powered by Google App Engine
This is Rietveld 408576698