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

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: nits 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/notifications/notification_common.h"
10 #include "chrome/browser/ui/cocoa/notifications/notification_builder_mac.h" 11 #include "chrome/browser/ui/cocoa/notifications/notification_builder_mac.h"
11 #include "chrome/browser/ui/cocoa/notifications/notification_constants_mac.h" 12 #include "chrome/browser/ui/cocoa/notifications/notification_constants_mac.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
13 14
14 TEST(NotificationBuilderMacTest, TestNotificationNoButtons) { 15 TEST(NotificationBuilderMacTest, TestNotificationNoButtons) {
15 base::scoped_nsobject<NotificationBuilder> builder( 16 base::scoped_nsobject<NotificationBuilder> builder(
16 [[NotificationBuilder alloc] init]); 17 [[NotificationBuilder alloc] init]);
17 [builder setTitle:@"Title"]; 18 [builder setTitle:@"Title"];
18 [builder setSubTitle:@"https://www.miguel.com"]; 19 [builder setSubTitle:@"https://www.miguel.com"];
19 [builder setContextMessage:@""]; 20 [builder setContextMessage:@""];
20 [builder setTag:@"tag1"]; 21 [builder setTag:@"tag1"];
21 [builder setIcon:[NSImage imageNamed:@"NSApplicationIcon"]]; 22 [builder setIcon:[NSImage imageNamed:@"NSApplicationIcon"]];
22 [builder setNotificationId:@"notificationId"]; 23 [builder setNotificationId:@"notificationId"];
23 [builder setProfileId:@"profileId"]; 24 [builder setProfileId:@"profileId"];
24 [builder setIncognito:false]; 25 [builder setIncognito:false];
26 [builder setNotificationType:
27 [NSNumber numberWithInt:NotificationCommon::NON_PERSISTENT]];
25 28
26 NSUserNotification* notification = [builder buildUserNotification]; 29 NSUserNotification* notification = [builder buildUserNotification];
27 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 30 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
28 EXPECT_EQ(nullptr, [notification informativeText]); 31 EXPECT_EQ(nullptr, [notification informativeText]);
29 EXPECT_EQ("https://www.miguel.com", 32 EXPECT_EQ("https://www.miguel.com",
30 base::SysNSStringToUTF8([notification subtitle])); 33 base::SysNSStringToUTF8([notification subtitle]));
31 EXPECT_EQ("tag1", 34 EXPECT_EQ("tag1",
32 base::SysNSStringToUTF8([notification valueForKey:@"identifier"])); 35 base::SysNSStringToUTF8([notification valueForKey:@"identifier"]));
33 36
34 EXPECT_TRUE([notification hasActionButton]); 37 EXPECT_TRUE([notification hasActionButton]);
35 EXPECT_EQ("Settings", 38 EXPECT_EQ("Settings",
36 base::SysNSStringToUTF8([notification actionButtonTitle])); 39 base::SysNSStringToUTF8([notification actionButtonTitle]));
37 EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle])); 40 EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle]));
38 } 41 }
39 42
40 TEST(NotificationBuilderMacTest, TestNotificationOneButton) { 43 TEST(NotificationBuilderMacTest, TestNotificationOneButton) {
41 base::scoped_nsobject<NotificationBuilder> builder( 44 base::scoped_nsobject<NotificationBuilder> builder(
42 [[NotificationBuilder alloc] init]); 45 [[NotificationBuilder alloc] init]);
43 [builder setTitle:@"Title"]; 46 [builder setTitle:@"Title"];
44 [builder setSubTitle:@"https://www.miguel.com"]; 47 [builder setSubTitle:@"https://www.miguel.com"];
45 [builder setContextMessage:@"SubTitle"]; 48 [builder setContextMessage:@"SubTitle"];
46 [builder setButtons:@"Button1" secondaryButton:@""]; 49 [builder setButtons:@"Button1" secondaryButton:@""];
47 [builder setNotificationId:@"notificationId"]; 50 [builder setNotificationId:@"notificationId"];
48 [builder setProfileId:@"profileId"]; 51 [builder setProfileId:@"profileId"];
49 [builder setIncognito:false]; 52 [builder setIncognito:false];
53 [builder
54 setNotificationType:[NSNumber
55 numberWithInt:NotificationCommon::PERSISTENT]];
50 56
51 NSUserNotification* notification = [builder buildUserNotification]; 57 NSUserNotification* notification = [builder buildUserNotification];
52 58
53 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 59 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
54 EXPECT_EQ("SubTitle", 60 EXPECT_EQ("SubTitle",
55 base::SysNSStringToUTF8([notification informativeText])); 61 base::SysNSStringToUTF8([notification informativeText]));
56 EXPECT_EQ("https://www.miguel.com", 62 EXPECT_EQ("https://www.miguel.com",
57 base::SysNSStringToUTF8([notification subtitle])); 63 base::SysNSStringToUTF8([notification subtitle]));
58 64
59 EXPECT_TRUE([notification hasActionButton]); 65 EXPECT_TRUE([notification hasActionButton]);
(...skipping 11 matching lines...) Expand all
71 TEST(NotificationBuilderMacTest, TestNotificationTwoButtons) { 77 TEST(NotificationBuilderMacTest, TestNotificationTwoButtons) {
72 base::scoped_nsobject<NotificationBuilder> builder( 78 base::scoped_nsobject<NotificationBuilder> builder(
73 [[NotificationBuilder alloc] init]); 79 [[NotificationBuilder alloc] init]);
74 [builder setTitle:@"Title"]; 80 [builder setTitle:@"Title"];
75 [builder setSubTitle:@"https://www.miguel.com"]; 81 [builder setSubTitle:@"https://www.miguel.com"];
76 [builder setContextMessage:@"SubTitle"]; 82 [builder setContextMessage:@"SubTitle"];
77 [builder setButtons:@"Button1" secondaryButton:@"Button2"]; 83 [builder setButtons:@"Button1" secondaryButton:@"Button2"];
78 [builder setNotificationId:@"notificationId"]; 84 [builder setNotificationId:@"notificationId"];
79 [builder setProfileId:@"profileId"]; 85 [builder setProfileId:@"profileId"];
80 [builder setIncognito:false]; 86 [builder setIncognito:false];
87 [builder
88 setNotificationType:[NSNumber
89 numberWithInt:NotificationCommon::PERSISTENT]];
81 90
82 NSUserNotification* notification = [builder buildUserNotification]; 91 NSUserNotification* notification = [builder buildUserNotification];
83 92
84 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 93 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
85 EXPECT_EQ("SubTitle", 94 EXPECT_EQ("SubTitle",
86 base::SysNSStringToUTF8([notification informativeText])); 95 base::SysNSStringToUTF8([notification informativeText]));
87 EXPECT_EQ("https://www.miguel.com", 96 EXPECT_EQ("https://www.miguel.com",
88 base::SysNSStringToUTF8([notification subtitle])); 97 base::SysNSStringToUTF8([notification subtitle]));
89 98
90 EXPECT_TRUE([notification hasActionButton]); 99 EXPECT_TRUE([notification hasActionButton]);
(...skipping 10 matching lines...) Expand all
101 } 110 }
102 111
103 TEST(NotificationBuilderMacTest, TestUserInfo) { 112 TEST(NotificationBuilderMacTest, TestUserInfo) {
104 base::scoped_nsobject<NotificationBuilder> builder( 113 base::scoped_nsobject<NotificationBuilder> builder(
105 [[NotificationBuilder alloc] init]); 114 [[NotificationBuilder alloc] init]);
106 [builder setTitle:@"Title"]; 115 [builder setTitle:@"Title"];
107 [builder setProfileId:@"Profile1"]; 116 [builder setProfileId:@"Profile1"];
108 [builder setOrigin:@"https://www.miguel.com"]; 117 [builder setOrigin:@"https://www.miguel.com"];
109 [builder setNotificationId:@"Notification1"]; 118 [builder setNotificationId:@"Notification1"];
110 [builder setIncognito:true]; 119 [builder setIncognito:true];
120 [builder
121 setNotificationType:[NSNumber
122 numberWithInt:NotificationCommon::PERSISTENT]];
111 123
112 NSUserNotification* notification = [builder buildUserNotification]; 124 NSUserNotification* notification = [builder buildUserNotification];
113 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 125 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
114 126
115 NSDictionary* userInfo = [notification userInfo]; 127 NSDictionary* userInfo = [notification userInfo];
116 128
117 EXPECT_EQ("https://www.miguel.com", 129 EXPECT_EQ("https://www.miguel.com",
118 base::SysNSStringToUTF8([userInfo 130 base::SysNSStringToUTF8([userInfo
119 objectForKey:notification_constants::kNotificationOrigin])); 131 objectForKey:notification_constants::kNotificationOrigin]));
120 EXPECT_EQ("Notification1", 132 EXPECT_EQ("Notification1",
(...skipping 10 matching lines...) Expand all
131 NSDictionary* notificationData; 143 NSDictionary* notificationData;
132 { 144 {
133 base::scoped_nsobject<NotificationBuilder> sourceBuilder( 145 base::scoped_nsobject<NotificationBuilder> sourceBuilder(
134 [[NotificationBuilder alloc] init]); 146 [[NotificationBuilder alloc] init]);
135 [sourceBuilder setTitle:@"Title"]; 147 [sourceBuilder setTitle:@"Title"];
136 [sourceBuilder setSubTitle:@"https://www.miguel.com"]; 148 [sourceBuilder setSubTitle:@"https://www.miguel.com"];
137 [sourceBuilder setContextMessage:@"SubTitle"]; 149 [sourceBuilder setContextMessage:@"SubTitle"];
138 [sourceBuilder setNotificationId:@"notificationId"]; 150 [sourceBuilder setNotificationId:@"notificationId"];
139 [sourceBuilder setProfileId:@"profileId"]; 151 [sourceBuilder setProfileId:@"profileId"];
140 [sourceBuilder setIncognito:false]; 152 [sourceBuilder setIncognito:false];
153 [sourceBuilder
154 setNotificationType:
155 [NSNumber numberWithInt:NotificationCommon::NON_PERSISTENT]];
156
141 notificationData = [sourceBuilder buildDictionary]; 157 notificationData = [sourceBuilder buildDictionary];
142 } 158 }
143 base::scoped_nsobject<NotificationBuilder> finalBuilder( 159 base::scoped_nsobject<NotificationBuilder> finalBuilder(
144 [[NotificationBuilder alloc] initWithDictionary:notificationData]); 160 [[NotificationBuilder alloc] initWithDictionary:notificationData]);
145 161
146 NSUserNotification* notification = [finalBuilder buildUserNotification]; 162 NSUserNotification* notification = [finalBuilder buildUserNotification];
147 163
148 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 164 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
149 EXPECT_EQ("SubTitle", 165 EXPECT_EQ("SubTitle",
150 base::SysNSStringToUTF8([notification informativeText])); 166 base::SysNSStringToUTF8([notification informativeText]));
151 EXPECT_EQ("https://www.miguel.com", 167 EXPECT_EQ("https://www.miguel.com",
152 base::SysNSStringToUTF8([notification subtitle])); 168 base::SysNSStringToUTF8([notification subtitle]));
153 } 169 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698