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

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

Issue 2390153005: Implement support for closing mac native notifications (Closed)
Patch Set: set upstream to the right diff Created 4 years, 2 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/scoped_nsobject.h" 7 #include "base/mac/scoped_nsobject.h"
8 #include "chrome/browser/notifications/notification_common.h" 8 #include "chrome/browser/notifications/notification_common.h"
9 #include "chrome/browser/ui/cocoa/notifications/notification_builder_mac.h" 9 #include "chrome/browser/ui/cocoa/notifications/notification_builder_mac.h"
10 #include "chrome/browser/ui/cocoa/notifications/notification_constants_mac.h" 10 #include "chrome/browser/ui/cocoa/notifications/notification_constants_mac.h"
(...skipping 11 matching lines...) Expand all
22 [builder setTag:@"tag1"]; 22 [builder setTag:@"tag1"];
23 [builder setIcon:[NSImage imageNamed:@"NSApplicationIcon"]]; 23 [builder setIcon:[NSImage imageNamed:@"NSApplicationIcon"]];
24 [builder setNotificationId:@"notificationId"]; 24 [builder setNotificationId:@"notificationId"];
25 [builder setProfileId:@"profileId"]; 25 [builder setProfileId:@"profileId"];
26 [builder setIncognito:false]; 26 [builder setIncognito:false];
27 [builder 27 [builder
28 setNotificationType:[NSNumber 28 setNotificationType:[NSNumber
29 numberWithInt:NotificationCommon::PERSISTENT]]; 29 numberWithInt:NotificationCommon::PERSISTENT]];
30 30
31 NSUserNotification* notification = [builder buildUserNotification]; 31 NSUserNotification* notification = [builder buildUserNotification];
32 // This will be set by the notification center to indicate the notification
33 // was clicked.
34 [notification
35 setValue:[NSNumber numberWithInt:
36 NSUserNotificationActivationTypeContentsClicked]
Robert Sesek 2016/10/05 20:33:32 You should be able to just use @(NSUserNotificatio
Miguel Garcia 2016/10/05 21:58:37 Ah great, changed in all the tests.
37 forKey:@"_activationType"];
38
32 NSDictionary* response = 39 NSDictionary* response =
33 [NotificationResponseBuilder buildDictionary:notification]; 40 [NotificationResponseBuilder buildDictionary:notification];
34 41
35 NSNumber* operation = 42 NSNumber* operation =
36 [response objectForKey:notification_constants::kNotificationOperation]; 43 [response objectForKey:notification_constants::kNotificationOperation];
37 NSNumber* buttonIndex = 44 NSNumber* buttonIndex =
38 [response objectForKey:notification_constants::kNotificationButtonIndex]; 45 [response objectForKey:notification_constants::kNotificationButtonIndex];
39 EXPECT_EQ(0 /* NOTIFICATION_CLICK */, operation.intValue); 46 EXPECT_EQ(0 /* NOTIFICATION_CLICK */, operation.intValue);
40 EXPECT_EQ(-1, buttonIndex.intValue); 47 EXPECT_EQ(-1, buttonIndex.intValue);
41 } 48 }
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 NSDictionary* response = 199 NSDictionary* response =
193 [NotificationResponseBuilder buildDictionary:notification]; 200 [NotificationResponseBuilder buildDictionary:notification];
194 201
195 NSNumber* operation = 202 NSNumber* operation =
196 [response objectForKey:notification_constants::kNotificationOperation]; 203 [response objectForKey:notification_constants::kNotificationOperation];
197 NSNumber* buttonIndex = 204 NSNumber* buttonIndex =
198 [response objectForKey:notification_constants::kNotificationButtonIndex]; 205 [response objectForKey:notification_constants::kNotificationButtonIndex];
199 EXPECT_EQ(2 /* NOTIFICATION_SETTINGS */, operation.intValue); 206 EXPECT_EQ(2 /* NOTIFICATION_SETTINGS */, operation.intValue);
200 EXPECT_EQ(-1, buttonIndex.intValue); 207 EXPECT_EQ(-1, buttonIndex.intValue);
201 } 208 }
209
210 TEST(NotificationResponseBuilderMacTest, TestNotificationClose) {
211 base::scoped_nsobject<NotificationBuilder> builder(
212 [[NotificationBuilder alloc] initWithCloseLabel:@"Close"
213 optionsLabel:@"Options"
214 settingsLabel:@"Settings"]);
215 [builder setTitle:@"Title"];
216 [builder setSubTitle:@"https://www.miguel.com"];
217 [builder setContextMessage:@""];
218 [builder setTag:@"tag1"];
219 [builder setIcon:[NSImage imageNamed:@"NSApplicationIcon"]];
220 [builder setNotificationId:@"notificationId"];
221 [builder setProfileId:@"profileId"];
222 [builder setIncognito:false];
223 [builder
224 setNotificationType:[NSNumber
225 numberWithInt:NotificationCommon::PERSISTENT]];
226
227 NSUserNotification* notification = [builder buildUserNotification];
228 // None is what the NSUserNotification center emits when closing since it
229 // interprets it as not activated.
230 [notification
231 setValue:[NSNumber numberWithInt:NSUserNotificationActivationTypeNone]
232 forKey:@"_activationType"];
233
234 NSDictionary* response =
235 [NotificationResponseBuilder buildDictionary:notification];
236
237 NSNumber* operation =
238 [response objectForKey:notification_constants::kNotificationOperation];
239 NSNumber* buttonIndex =
240 [response objectForKey:notification_constants::kNotificationButtonIndex];
241 EXPECT_EQ(1 /* NOTIFICATION_CLOSE */, operation.intValue);
242 EXPECT_EQ(-1, buttonIndex.intValue);
243 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698