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

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: 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/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
27 setNotificationType:[NSNumber
28 numberWithInt:static_cast<
29 NotificationCommon::Type>(1)]];
Peter Beverloo 2016/07/05 23:44:18 wait what? why not: [builder setNotificationType:
Miguel Garcia 2016/07/07 11:02:29 Removed the static_cast. The indenting is decided
25 30
26 NSUserNotification* notification = [builder buildUserNotification]; 31 NSUserNotification* notification = [builder buildUserNotification];
27 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 32 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
28 EXPECT_EQ(nullptr, [notification informativeText]); 33 EXPECT_EQ(nullptr, [notification informativeText]);
29 EXPECT_EQ("https://www.miguel.com", 34 EXPECT_EQ("https://www.miguel.com",
30 base::SysNSStringToUTF8([notification subtitle])); 35 base::SysNSStringToUTF8([notification subtitle]));
31 EXPECT_EQ("tag1", 36 EXPECT_EQ("tag1",
32 base::SysNSStringToUTF8([notification valueForKey:@"identifier"])); 37 base::SysNSStringToUTF8([notification valueForKey:@"identifier"]));
33 38
34 EXPECT_TRUE([notification hasActionButton]); 39 EXPECT_TRUE([notification hasActionButton]);
35 EXPECT_EQ("Settings", 40 EXPECT_EQ("Settings",
36 base::SysNSStringToUTF8([notification actionButtonTitle])); 41 base::SysNSStringToUTF8([notification actionButtonTitle]));
37 EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle])); 42 EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle]));
38 } 43 }
39 44
40 TEST(NotificationBuilderMacTest, TestNotificationOneButton) { 45 TEST(NotificationBuilderMacTest, TestNotificationOneButton) {
41 base::scoped_nsobject<NotificationBuilder> builder( 46 base::scoped_nsobject<NotificationBuilder> builder(
42 [[NotificationBuilder alloc] init]); 47 [[NotificationBuilder alloc] init]);
43 [builder setTitle:@"Title"]; 48 [builder setTitle:@"Title"];
44 [builder setSubTitle:@"https://www.miguel.com"]; 49 [builder setSubTitle:@"https://www.miguel.com"];
45 [builder setContextMessage:@"SubTitle"]; 50 [builder setContextMessage:@"SubTitle"];
46 [builder setButtons:@"Button1" secondaryButton:@""]; 51 [builder setButtons:@"Button1" secondaryButton:@""];
47 [builder setNotificationId:@"notificationId"]; 52 [builder setNotificationId:@"notificationId"];
48 [builder setProfileId:@"profileId"]; 53 [builder setProfileId:@"profileId"];
49 [builder setIncognito:false]; 54 [builder setIncognito:false];
55 [builder
56 setNotificationType:[NSNumber
57 numberWithInt:static_cast<
58 NotificationCommon::Type>(0)]];
50 59
51 NSUserNotification* notification = [builder buildUserNotification]; 60 NSUserNotification* notification = [builder buildUserNotification];
52 61
53 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 62 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
54 EXPECT_EQ("SubTitle", 63 EXPECT_EQ("SubTitle",
55 base::SysNSStringToUTF8([notification informativeText])); 64 base::SysNSStringToUTF8([notification informativeText]));
56 EXPECT_EQ("https://www.miguel.com", 65 EXPECT_EQ("https://www.miguel.com",
57 base::SysNSStringToUTF8([notification subtitle])); 66 base::SysNSStringToUTF8([notification subtitle]));
58 67
59 EXPECT_TRUE([notification hasActionButton]); 68 EXPECT_TRUE([notification hasActionButton]);
(...skipping 11 matching lines...) Expand all
71 TEST(NotificationBuilderMacTest, TestNotificationTwoButtons) { 80 TEST(NotificationBuilderMacTest, TestNotificationTwoButtons) {
72 base::scoped_nsobject<NotificationBuilder> builder( 81 base::scoped_nsobject<NotificationBuilder> builder(
73 [[NotificationBuilder alloc] init]); 82 [[NotificationBuilder alloc] init]);
74 [builder setTitle:@"Title"]; 83 [builder setTitle:@"Title"];
75 [builder setSubTitle:@"https://www.miguel.com"]; 84 [builder setSubTitle:@"https://www.miguel.com"];
76 [builder setContextMessage:@"SubTitle"]; 85 [builder setContextMessage:@"SubTitle"];
77 [builder setButtons:@"Button1" secondaryButton:@"Button2"]; 86 [builder setButtons:@"Button1" secondaryButton:@"Button2"];
78 [builder setNotificationId:@"notificationId"]; 87 [builder setNotificationId:@"notificationId"];
79 [builder setProfileId:@"profileId"]; 88 [builder setProfileId:@"profileId"];
80 [builder setIncognito:false]; 89 [builder setIncognito:false];
90 [builder
91 setNotificationType:[NSNumber
92 numberWithInt:static_cast<
93 NotificationCommon::Type>(0)]];
81 94
82 NSUserNotification* notification = [builder buildUserNotification]; 95 NSUserNotification* notification = [builder buildUserNotification];
83 96
84 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 97 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
85 EXPECT_EQ("SubTitle", 98 EXPECT_EQ("SubTitle",
86 base::SysNSStringToUTF8([notification informativeText])); 99 base::SysNSStringToUTF8([notification informativeText]));
87 EXPECT_EQ("https://www.miguel.com", 100 EXPECT_EQ("https://www.miguel.com",
88 base::SysNSStringToUTF8([notification subtitle])); 101 base::SysNSStringToUTF8([notification subtitle]));
89 102
90 EXPECT_TRUE([notification hasActionButton]); 103 EXPECT_TRUE([notification hasActionButton]);
(...skipping 10 matching lines...) Expand all
101 } 114 }
102 115
103 TEST(NotificationBuilderMacTest, TestUserInfo) { 116 TEST(NotificationBuilderMacTest, TestUserInfo) {
104 base::scoped_nsobject<NotificationBuilder> builder( 117 base::scoped_nsobject<NotificationBuilder> builder(
105 [[NotificationBuilder alloc] init]); 118 [[NotificationBuilder alloc] init]);
106 [builder setTitle:@"Title"]; 119 [builder setTitle:@"Title"];
107 [builder setProfileId:@"Profile1"]; 120 [builder setProfileId:@"Profile1"];
108 [builder setOrigin:@"https://www.miguel.com"]; 121 [builder setOrigin:@"https://www.miguel.com"];
109 [builder setNotificationId:@"Notification1"]; 122 [builder setNotificationId:@"Notification1"];
110 [builder setIncognito:true]; 123 [builder setIncognito:true];
124 [builder
125 setNotificationType:[NSNumber
126 numberWithInt:static_cast<
127 NotificationCommon::Type>(0)]];
111 128
112 NSUserNotification* notification = [builder buildUserNotification]; 129 NSUserNotification* notification = [builder buildUserNotification];
113 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 130 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
114 131
115 NSDictionary* userInfo = [notification userInfo]; 132 NSDictionary* userInfo = [notification userInfo];
116 133
117 EXPECT_EQ("https://www.miguel.com", 134 EXPECT_EQ("https://www.miguel.com",
118 base::SysNSStringToUTF8([userInfo 135 base::SysNSStringToUTF8([userInfo
119 objectForKey:notification_constants::kNotificationOrigin])); 136 objectForKey:notification_constants::kNotificationOrigin]));
120 EXPECT_EQ("Notification1", 137 EXPECT_EQ("Notification1",
(...skipping 10 matching lines...) Expand all
131 NSDictionary* notificationData; 148 NSDictionary* notificationData;
132 { 149 {
133 base::scoped_nsobject<NotificationBuilder> sourceBuilder( 150 base::scoped_nsobject<NotificationBuilder> sourceBuilder(
134 [[NotificationBuilder alloc] init]); 151 [[NotificationBuilder alloc] init]);
135 [sourceBuilder setTitle:@"Title"]; 152 [sourceBuilder setTitle:@"Title"];
136 [sourceBuilder setSubTitle:@"https://www.miguel.com"]; 153 [sourceBuilder setSubTitle:@"https://www.miguel.com"];
137 [sourceBuilder setContextMessage:@"SubTitle"]; 154 [sourceBuilder setContextMessage:@"SubTitle"];
138 [sourceBuilder setNotificationId:@"notificationId"]; 155 [sourceBuilder setNotificationId:@"notificationId"];
139 [sourceBuilder setProfileId:@"profileId"]; 156 [sourceBuilder setProfileId:@"profileId"];
140 [sourceBuilder setIncognito:false]; 157 [sourceBuilder setIncognito:false];
158 [sourceBuilder
159 setNotificationType:
160 [NSNumber numberWithInt:static_cast<NotificationCommon::Type>(1)]];
141 notificationData = [sourceBuilder buildDictionary]; 161 notificationData = [sourceBuilder buildDictionary];
142 } 162 }
143 base::scoped_nsobject<NotificationBuilder> finalBuilder( 163 base::scoped_nsobject<NotificationBuilder> finalBuilder(
144 [[NotificationBuilder alloc] initWithDictionary:notificationData]); 164 [[NotificationBuilder alloc] initWithDictionary:notificationData]);
145 165
146 NSUserNotification* notification = [finalBuilder buildUserNotification]; 166 NSUserNotification* notification = [finalBuilder buildUserNotification];
147 167
148 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title])); 168 EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
149 EXPECT_EQ("SubTitle", 169 EXPECT_EQ("SubTitle",
150 base::SysNSStringToUTF8([notification informativeText])); 170 base::SysNSStringToUTF8([notification informativeText]));
151 EXPECT_EQ("https://www.miguel.com", 171 EXPECT_EQ("https://www.miguel.com",
152 base::SysNSStringToUTF8([notification subtitle])); 172 base::SysNSStringToUTF8([notification subtitle]));
153 } 173 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698