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

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

Issue 2093953002: Introduce a new API to handle native notification clicks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: initial review Created 4 years, 5 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/ui/cocoa/notifications/notification_builder_mac.h" 10 #include "chrome/browser/ui/cocoa/notifications/notification_builder_mac.h"
11 #include "chrome/browser/ui/cocoa/notifications/notification_constants_mac.h" 11 #include "chrome/browser/ui/cocoa/notifications/notification_constants_mac.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 TEST(NotificationBuilderMacTest, TestNotificationNoButtons) { 14 TEST(NotificationBuilderMacTest, TestNotificationNoButtons) {
15 base::scoped_nsobject<NotificationBuilder> builder( 15 base::scoped_nsobject<NotificationBuilder> builder(
16 [[NotificationBuilder alloc] init]); 16 [[NotificationBuilder alloc] init]);
17 [builder setTitle:@"Title"]; 17 [builder setTitle:@"Title"];
18 [builder setSubTitle:@"https://www.miguel.com"]; 18 [builder setSubTitle:@"https://www.miguel.com"];
19 [builder setContextMessage:@""]; 19 [builder setContextMessage:@""];
20 [builder setTag:@"tag1"]; 20 [builder setTag:@"tag1"];
21 [builder setIcon:[NSImage imageNamed:@"NSApplicationIcon"]]; 21 [builder setIcon:[NSImage imageNamed:@"NSApplicationIcon"]];
22 [builder setNotificationId:@"notificationId"]; 22 [builder setNotificationId:@"notificationId"];
23 [builder setProfileId:@"profileId"]; 23 [builder setProfileId:@"profileId"];
24 [builder setIncognito:false]; 24 [builder setIncognito:false];
25 [builder setNotificationType:[NSNumber numberWithInt:1]];
Peter Beverloo 2016/07/05 14:25:35 Can we use the enum values here w/ a cast? (For cl
Miguel Garcia 2016/07/05 17:12:53 Ok.. In theory the builder should not really know
25 26
26 NSUserNotification* notification = [builder buildUserNotification]; 27 NSUserNotification* notification = [builder buildUserNotification];
27 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 28 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
28 EXPECT_EQ(nullptr, [notification informativeText]); 29 EXPECT_EQ(nullptr, [notification informativeText]);
29 EXPECT_EQ("https://www.miguel.com", 30 EXPECT_EQ("https://www.miguel.com",
30 base::SysNSStringToUTF8([notification subtitle])); 31 base::SysNSStringToUTF8([notification subtitle]));
31 EXPECT_EQ("tag1", 32 EXPECT_EQ("tag1",
32 base::SysNSStringToUTF8([notification valueForKey:@"identifier"])); 33 base::SysNSStringToUTF8([notification valueForKey:@"identifier"]));
33 34
34 EXPECT_TRUE([notification hasActionButton]); 35 EXPECT_TRUE([notification hasActionButton]);
35 EXPECT_EQ("Settings", 36 EXPECT_EQ("Settings",
36 base::SysNSStringToUTF8([notification actionButtonTitle])); 37 base::SysNSStringToUTF8([notification actionButtonTitle]));
37 EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle])); 38 EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle]));
38 } 39 }
39 40
40 TEST(NotificationBuilderMacTest, TestNotificationOneButton) { 41 TEST(NotificationBuilderMacTest, TestNotificationOneButton) {
41 base::scoped_nsobject<NotificationBuilder> builder( 42 base::scoped_nsobject<NotificationBuilder> builder(
42 [[NotificationBuilder alloc] init]); 43 [[NotificationBuilder alloc] init]);
43 [builder setTitle:@"Title"]; 44 [builder setTitle:@"Title"];
44 [builder setSubTitle:@"https://www.miguel.com"]; 45 [builder setSubTitle:@"https://www.miguel.com"];
45 [builder setContextMessage:@"SubTitle"]; 46 [builder setContextMessage:@"SubTitle"];
46 [builder setButtons:@"Button1" secondaryButton:@""]; 47 [builder setButtons:@"Button1" secondaryButton:@""];
47 [builder setNotificationId:@"notificationId"]; 48 [builder setNotificationId:@"notificationId"];
48 [builder setProfileId:@"profileId"]; 49 [builder setProfileId:@"profileId"];
49 [builder setIncognito:false]; 50 [builder setIncognito:false];
51 [builder setNotificationType:[NSNumber numberWithInt:0]];
50 52
51 NSUserNotification* notification = [builder buildUserNotification]; 53 NSUserNotification* notification = [builder buildUserNotification];
52 54
53 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 55 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
54 EXPECT_EQ("SubTitle", 56 EXPECT_EQ("SubTitle",
55 base::SysNSStringToUTF8([notification informativeText])); 57 base::SysNSStringToUTF8([notification informativeText]));
56 EXPECT_EQ("https://www.miguel.com", 58 EXPECT_EQ("https://www.miguel.com",
57 base::SysNSStringToUTF8([notification subtitle])); 59 base::SysNSStringToUTF8([notification subtitle]));
58 60
59 EXPECT_TRUE([notification hasActionButton]); 61 EXPECT_TRUE([notification hasActionButton]);
(...skipping 11 matching lines...) Expand all
71 TEST(NotificationBuilderMacTest, TestNotificationTwoButtons) { 73 TEST(NotificationBuilderMacTest, TestNotificationTwoButtons) {
72 base::scoped_nsobject<NotificationBuilder> builder( 74 base::scoped_nsobject<NotificationBuilder> builder(
73 [[NotificationBuilder alloc] init]); 75 [[NotificationBuilder alloc] init]);
74 [builder setTitle:@"Title"]; 76 [builder setTitle:@"Title"];
75 [builder setSubTitle:@"https://www.miguel.com"]; 77 [builder setSubTitle:@"https://www.miguel.com"];
76 [builder setContextMessage:@"SubTitle"]; 78 [builder setContextMessage:@"SubTitle"];
77 [builder setButtons:@"Button1" secondaryButton:@"Button2"]; 79 [builder setButtons:@"Button1" secondaryButton:@"Button2"];
78 [builder setNotificationId:@"notificationId"]; 80 [builder setNotificationId:@"notificationId"];
79 [builder setProfileId:@"profileId"]; 81 [builder setProfileId:@"profileId"];
80 [builder setIncognito:false]; 82 [builder setIncognito:false];
83 [builder setNotificationType:[NSNumber numberWithInt:0]];
81 84
82 NSUserNotification* notification = [builder buildUserNotification]; 85 NSUserNotification* notification = [builder buildUserNotification];
83 86
84 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 87 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
85 EXPECT_EQ("SubTitle", 88 EXPECT_EQ("SubTitle",
86 base::SysNSStringToUTF8([notification informativeText])); 89 base::SysNSStringToUTF8([notification informativeText]));
87 EXPECT_EQ("https://www.miguel.com", 90 EXPECT_EQ("https://www.miguel.com",
88 base::SysNSStringToUTF8([notification subtitle])); 91 base::SysNSStringToUTF8([notification subtitle]));
89 92
90 EXPECT_TRUE([notification hasActionButton]); 93 EXPECT_TRUE([notification hasActionButton]);
(...skipping 10 matching lines...) Expand all
101 } 104 }
102 105
103 TEST(NotificationBuilderMacTest, TestUserInfo) { 106 TEST(NotificationBuilderMacTest, TestUserInfo) {
104 base::scoped_nsobject<NotificationBuilder> builder( 107 base::scoped_nsobject<NotificationBuilder> builder(
105 [[NotificationBuilder alloc] init]); 108 [[NotificationBuilder alloc] init]);
106 [builder setTitle:@"Title"]; 109 [builder setTitle:@"Title"];
107 [builder setProfileId:@"Profile1"]; 110 [builder setProfileId:@"Profile1"];
108 [builder setOrigin:@"https://www.miguel.com"]; 111 [builder setOrigin:@"https://www.miguel.com"];
109 [builder setNotificationId:@"Notification1"]; 112 [builder setNotificationId:@"Notification1"];
110 [builder setIncognito:true]; 113 [builder setIncognito:true];
114 [builder setNotificationType:[NSNumber numberWithInt:0]];
111 115
112 NSUserNotification* notification = [builder buildUserNotification]; 116 NSUserNotification* notification = [builder buildUserNotification];
113 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 117 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
114 118
115 NSDictionary* userInfo = [notification userInfo]; 119 NSDictionary* userInfo = [notification userInfo];
116 120
117 EXPECT_EQ("https://www.miguel.com", 121 EXPECT_EQ("https://www.miguel.com",
118 base::SysNSStringToUTF8([userInfo 122 base::SysNSStringToUTF8([userInfo
119 objectForKey:notification_constants::kNotificationOrigin])); 123 objectForKey:notification_constants::kNotificationOrigin]));
120 EXPECT_EQ("Notification1", 124 EXPECT_EQ("Notification1",
(...skipping 10 matching lines...) Expand all
131 NSDictionary* notificationData; 135 NSDictionary* notificationData;
132 { 136 {
133 base::scoped_nsobject<NotificationBuilder> sourceBuilder( 137 base::scoped_nsobject<NotificationBuilder> sourceBuilder(
134 [[NotificationBuilder alloc] init]); 138 [[NotificationBuilder alloc] init]);
135 [sourceBuilder setTitle:@"Title"]; 139 [sourceBuilder setTitle:@"Title"];
136 [sourceBuilder setSubTitle:@"https://www.miguel.com"]; 140 [sourceBuilder setSubTitle:@"https://www.miguel.com"];
137 [sourceBuilder setContextMessage:@"SubTitle"]; 141 [sourceBuilder setContextMessage:@"SubTitle"];
138 [sourceBuilder setNotificationId:@"notificationId"]; 142 [sourceBuilder setNotificationId:@"notificationId"];
139 [sourceBuilder setProfileId:@"profileId"]; 143 [sourceBuilder setProfileId:@"profileId"];
140 [sourceBuilder setIncognito:false]; 144 [sourceBuilder setIncognito:false];
145 [sourceBuilder setNotificationType:[NSNumber numberWithInt:1]];
141 notificationData = [sourceBuilder buildDictionary]; 146 notificationData = [sourceBuilder buildDictionary];
142 } 147 }
143 base::scoped_nsobject<NotificationBuilder> finalBuilder( 148 base::scoped_nsobject<NotificationBuilder> finalBuilder(
144 [[NotificationBuilder alloc] initWithDictionary:notificationData]); 149 [[NotificationBuilder alloc] initWithDictionary:notificationData]);
145 150
146 NSUserNotification* notification = [finalBuilder buildUserNotification]; 151 NSUserNotification* notification = [finalBuilder buildUserNotification];
147 152
148 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 153 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
149 EXPECT_EQ("SubTitle", 154 EXPECT_EQ("SubTitle",
150 base::SysNSStringToUTF8([notification informativeText])); 155 base::SysNSStringToUTF8([notification informativeText]));
151 EXPECT_EQ("https://www.miguel.com", 156 EXPECT_EQ("https://www.miguel.com",
152 base::SysNSStringToUTF8([notification subtitle])); 157 base::SysNSStringToUTF8([notification subtitle]));
153 } 158 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698