OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #import <AppKit/AppKit.h> | 5 #import <AppKit/AppKit.h> |
6 | 6 |
7 #include "base/mac/foundation_util.h" | 7 #include "base/mac/foundation_util.h" |
8 #include "base/mac/scoped_nsobject.h" | 8 #include "base/mac/scoped_nsobject.h" |
9 #include "base/strings/sys_string_conversions.h" | 9 #include "base/strings/sys_string_conversions.h" |
10 #include "chrome/browser/notifications/notification_common.h" | 10 #include "chrome/browser/notifications/notification_common.h" |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 base::SysNSStringToUTF8([notification actionButtonTitle])); | 108 base::SysNSStringToUTF8([notification actionButtonTitle])); |
109 EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle])); | 109 EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle])); |
110 | 110 |
111 NSArray* buttons = [notification valueForKey:@"_alternateActionButtonTitles"]; | 111 NSArray* buttons = [notification valueForKey:@"_alternateActionButtonTitles"]; |
112 ASSERT_EQ(3u, buttons.count); | 112 ASSERT_EQ(3u, buttons.count); |
113 EXPECT_EQ("Button1", base::SysNSStringToUTF8([buttons objectAtIndex:0])); | 113 EXPECT_EQ("Button1", base::SysNSStringToUTF8([buttons objectAtIndex:0])); |
114 EXPECT_EQ("Button2", base::SysNSStringToUTF8([buttons objectAtIndex:1])); | 114 EXPECT_EQ("Button2", base::SysNSStringToUTF8([buttons objectAtIndex:1])); |
115 EXPECT_EQ("Settings", base::SysNSStringToUTF8([buttons objectAtIndex:2])); | 115 EXPECT_EQ("Settings", base::SysNSStringToUTF8([buttons objectAtIndex:2])); |
116 } | 116 } |
117 | 117 |
| 118 TEST(NotificationBuilderMacTest, TestNotificationExtensionNoButtons) { |
| 119 base::scoped_nsobject<NotificationBuilder> builder( |
| 120 [[NotificationBuilder alloc] initWithCloseLabel:@"Close" |
| 121 optionsLabel:@"Options" |
| 122 settingsLabel:@"Settings"]); |
| 123 [builder setTitle:@"Title"]; |
| 124 [builder setSubTitle:@"https://www.miguel.com"]; |
| 125 [builder setContextMessage:@"SubTitle"]; |
| 126 [builder setNotificationId:@"notificationId"]; |
| 127 [builder setProfileId:@"profileId"]; |
| 128 [builder setIncognito:false]; |
| 129 [builder |
| 130 setNotificationType:[NSNumber |
| 131 numberWithInt:NotificationCommon::EXTENSION]]; |
| 132 |
| 133 NSUserNotification* notification = [builder buildUserNotification]; |
| 134 |
| 135 EXPECT_FALSE(notification.hasActionButton); |
| 136 EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle])); |
| 137 } |
| 138 |
| 139 TEST(NotificationBuilderMacTest, TestNotificationExtensionButtons) { |
| 140 base::scoped_nsobject<NotificationBuilder> builder( |
| 141 [[NotificationBuilder alloc] initWithCloseLabel:@"Close" |
| 142 optionsLabel:@"Options" |
| 143 settingsLabel:@"Settings"]); |
| 144 [builder setTitle:@"Title"]; |
| 145 [builder setSubTitle:@"https://www.miguel.com"]; |
| 146 [builder setContextMessage:@"SubTitle"]; |
| 147 [builder setButtons:@"Button1" secondaryButton:@"Button2"]; |
| 148 [builder setNotificationId:@"notificationId"]; |
| 149 [builder setProfileId:@"profileId"]; |
| 150 [builder setIncognito:false]; |
| 151 [builder |
| 152 setNotificationType:[NSNumber |
| 153 numberWithInt:NotificationCommon::EXTENSION]]; |
| 154 |
| 155 NSUserNotification* notification = [builder buildUserNotification]; |
| 156 |
| 157 NSArray* buttons = [notification valueForKey:@"_alternateActionButtonTitles"]; |
| 158 |
| 159 // No settings button |
| 160 ASSERT_EQ(2u, buttons.count); |
| 161 EXPECT_EQ("Button1", base::SysNSStringToUTF8([buttons objectAtIndex:0])); |
| 162 EXPECT_EQ("Button2", base::SysNSStringToUTF8([buttons objectAtIndex:1])); |
| 163 } |
| 164 |
118 TEST(NotificationBuilderMacTest, TestUserInfo) { | 165 TEST(NotificationBuilderMacTest, TestUserInfo) { |
119 base::scoped_nsobject<NotificationBuilder> builder( | 166 base::scoped_nsobject<NotificationBuilder> builder( |
120 [[NotificationBuilder alloc] initWithCloseLabel:@"Close" | 167 [[NotificationBuilder alloc] initWithCloseLabel:@"Close" |
121 optionsLabel:@"Options" | 168 optionsLabel:@"Options" |
122 settingsLabel:@"Settings"]); | 169 settingsLabel:@"Settings"]); |
123 [builder setTitle:@"Title"]; | 170 [builder setTitle:@"Title"]; |
124 [builder setProfileId:@"Profile1"]; | 171 [builder setProfileId:@"Profile1"]; |
125 [builder setOrigin:@"https://www.miguel.com"]; | 172 [builder setOrigin:@"https://www.miguel.com"]; |
126 [builder setNotificationId:@"Notification1"]; | 173 [builder setNotificationId:@"Notification1"]; |
127 [builder setIncognito:true]; | 174 [builder setIncognito:true]; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 [[NotificationBuilder alloc] initWithDictionary:notificationData]); | 217 [[NotificationBuilder alloc] initWithDictionary:notificationData]); |
171 | 218 |
172 NSUserNotification* notification = [finalBuilder buildUserNotification]; | 219 NSUserNotification* notification = [finalBuilder buildUserNotification]; |
173 | 220 |
174 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); | 221 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); |
175 EXPECT_EQ("SubTitle", | 222 EXPECT_EQ("SubTitle", |
176 base::SysNSStringToUTF8([notification informativeText])); | 223 base::SysNSStringToUTF8([notification informativeText])); |
177 EXPECT_EQ("https://www.miguel.com", | 224 EXPECT_EQ("https://www.miguel.com", |
178 base::SysNSStringToUTF8([notification subtitle])); | 225 base::SysNSStringToUTF8([notification subtitle])); |
179 } | 226 } |
OLD | NEW |