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

Side by Side Diff: chrome/browser/ui/cocoa/notifications/notification_builder_mac_unittest.mm

Issue 2799343003: Add support for native extension notifications (Closed)
Patch Set: 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 unified diff | Download patch
OLDNEW
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698