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); |
+} |