OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "ui/message_center/cocoa/notification_controller.h" | 5 #import "ui/message_center/cocoa/notification_controller.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/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/strings/sys_string_conversions.h" | 10 #include "base/strings/sys_string_conversions.h" |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 }; | 108 }; |
109 | 109 |
110 TEST_F(NotificationControllerTest, BasicLayout) { | 110 TEST_F(NotificationControllerTest, BasicLayout) { |
111 scoped_ptr<message_center::Notification> notification( | 111 scoped_ptr<message_center::Notification> notification( |
112 new message_center::Notification( | 112 new message_center::Notification( |
113 message_center::NOTIFICATION_TYPE_SIMPLE, | 113 message_center::NOTIFICATION_TYPE_SIMPLE, |
114 "", | 114 "", |
115 ASCIIToUTF16("Added to circles"), | 115 ASCIIToUTF16("Added to circles"), |
116 ASCIIToUTF16("Jonathan and 5 others"), | 116 ASCIIToUTF16("Jonathan and 5 others"), |
117 gfx::Image(), | 117 gfx::Image(), |
118 string16(), | 118 base::string16(), |
119 DummyNotifierId(), | 119 DummyNotifierId(), |
120 message_center::RichNotificationData(), | 120 message_center::RichNotificationData(), |
121 NULL)); | 121 NULL)); |
122 notification->set_icon(gfx::Image([TestIcon() retain])); | 122 notification->set_icon(gfx::Image([TestIcon() retain])); |
123 | 123 |
124 base::scoped_nsobject<MCNotificationController> controller( | 124 base::scoped_nsobject<MCNotificationController> controller( |
125 [[MCNotificationController alloc] initWithNotification:notification.get() | 125 [[MCNotificationController alloc] initWithNotification:notification.get() |
126 messageCenter:NULL]); | 126 messageCenter:NULL]); |
127 [controller view]; | 127 [controller view]; |
128 | 128 |
129 EXPECT_EQ(TestIcon(), [[controller iconView] image]); | 129 EXPECT_EQ(TestIcon(), [[controller iconView] image]); |
130 EXPECT_EQ(base::SysNSStringToUTF16([[controller titleView] string]), | 130 EXPECT_EQ(base::SysNSStringToUTF16([[controller titleView] string]), |
131 notification->title()); | 131 notification->title()); |
132 EXPECT_EQ(base::SysNSStringToUTF16([[controller messageView] string]), | 132 EXPECT_EQ(base::SysNSStringToUTF16([[controller messageView] string]), |
133 notification->message()); | 133 notification->message()); |
134 EXPECT_EQ(controller.get(), [[controller closeButton] target]); | 134 EXPECT_EQ(controller.get(), [[controller closeButton] target]); |
135 } | 135 } |
136 | 136 |
137 TEST_F(NotificationControllerTest, OverflowText) { | 137 TEST_F(NotificationControllerTest, OverflowText) { |
138 scoped_ptr<message_center::Notification> notification( | 138 scoped_ptr<message_center::Notification> notification( |
139 new message_center::Notification( | 139 new message_center::Notification( |
140 message_center::NOTIFICATION_TYPE_SIMPLE, | 140 message_center::NOTIFICATION_TYPE_SIMPLE, |
141 "", | 141 "", |
142 ASCIIToUTF16("This is a much longer title that should wrap " | 142 ASCIIToUTF16("This is a much longer title that should wrap " |
143 "multiple lines."), | 143 "multiple lines."), |
144 ASCIIToUTF16("And even the message is long. This sure is a wordy " | 144 ASCIIToUTF16("And even the message is long. This sure is a wordy " |
145 "notification. Are you really going to read this " | 145 "notification. Are you really going to read this " |
146 "entire thing?"), | 146 "entire thing?"), |
147 gfx::Image(), | 147 gfx::Image(), |
148 string16(), | 148 base::string16(), |
149 DummyNotifierId(), | 149 DummyNotifierId(), |
150 message_center::RichNotificationData(), | 150 message_center::RichNotificationData(), |
151 NULL)); | 151 NULL)); |
152 base::scoped_nsobject<MCNotificationController> controller( | 152 base::scoped_nsobject<MCNotificationController> controller( |
153 [[MCNotificationController alloc] initWithNotification:notification.get() | 153 [[MCNotificationController alloc] initWithNotification:notification.get() |
154 messageCenter:NULL]); | 154 messageCenter:NULL]); |
155 [controller view]; | 155 [controller view]; |
156 | 156 |
157 EXPECT_GT(NSHeight([[controller view] frame]), | 157 EXPECT_GT(NSHeight([[controller view] frame]), |
158 message_center::kNotificationIconSize); | 158 message_center::kNotificationIconSize); |
159 } | 159 } |
160 | 160 |
161 TEST_F(NotificationControllerTest, Close) { | 161 TEST_F(NotificationControllerTest, Close) { |
162 scoped_ptr<message_center::Notification> notification( | 162 scoped_ptr<message_center::Notification> notification( |
163 new message_center::Notification( | 163 new message_center::Notification( |
164 message_center::NOTIFICATION_TYPE_SIMPLE, | 164 message_center::NOTIFICATION_TYPE_SIMPLE, |
165 "an_id", | 165 "an_id", |
166 string16(), | 166 base::string16(), |
167 string16(), | 167 base::string16(), |
168 gfx::Image(), | 168 gfx::Image(), |
169 string16(), | 169 base::string16(), |
170 DummyNotifierId(), | 170 DummyNotifierId(), |
171 message_center::RichNotificationData(), | 171 message_center::RichNotificationData(), |
172 NULL)); | 172 NULL)); |
173 MockMessageCenter message_center; | 173 MockMessageCenter message_center; |
174 | 174 |
175 base::scoped_nsobject<MCNotificationController> controller( | 175 base::scoped_nsobject<MCNotificationController> controller( |
176 [[MCNotificationController alloc] initWithNotification:notification.get() | 176 [[MCNotificationController alloc] initWithNotification:notification.get() |
177 messageCenter:&message_center]); | 177 messageCenter:&message_center]); |
178 [controller view]; | 178 [controller view]; |
179 | 179 |
180 [[controller closeButton] performClick:nil]; | 180 [[controller closeButton] performClick:nil]; |
181 | 181 |
182 EXPECT_EQ(1, message_center.remove_count()); | 182 EXPECT_EQ(1, message_center.remove_count()); |
183 EXPECT_EQ("an_id", message_center.last_removed_id()); | 183 EXPECT_EQ("an_id", message_center.last_removed_id()); |
184 EXPECT_TRUE(message_center.last_removed_by_user()); | 184 EXPECT_TRUE(message_center.last_removed_by_user()); |
185 } | 185 } |
186 | 186 |
187 TEST_F(NotificationControllerTest, Update) { | 187 TEST_F(NotificationControllerTest, Update) { |
188 scoped_ptr<message_center::Notification> notification( | 188 scoped_ptr<message_center::Notification> notification( |
189 new message_center::Notification( | 189 new message_center::Notification( |
190 message_center::NOTIFICATION_TYPE_SIMPLE, | 190 message_center::NOTIFICATION_TYPE_SIMPLE, |
191 "", | 191 "", |
192 ASCIIToUTF16("A simple title"), | 192 ASCIIToUTF16("A simple title"), |
193 ASCIIToUTF16("This message isn't too long and should fit in the" | 193 ASCIIToUTF16("This message isn't too long and should fit in the" |
194 "default bounds."), | 194 "default bounds."), |
195 gfx::Image(), | 195 gfx::Image(), |
196 string16(), | 196 base::string16(), |
197 DummyNotifierId(), | 197 DummyNotifierId(), |
198 message_center::RichNotificationData(), | 198 message_center::RichNotificationData(), |
199 NULL)); | 199 NULL)); |
200 base::scoped_nsobject<MCNotificationController> controller( | 200 base::scoped_nsobject<MCNotificationController> controller( |
201 [[MCNotificationController alloc] initWithNotification:notification.get() | 201 [[MCNotificationController alloc] initWithNotification:notification.get() |
202 messageCenter:NULL]); | 202 messageCenter:NULL]); |
203 | 203 |
204 // Set up the default layout. | 204 // Set up the default layout. |
205 [controller view]; | 205 [controller view]; |
206 EXPECT_EQ(NSHeight([[controller view] frame]), | 206 EXPECT_EQ(NSHeight([[controller view] frame]), |
(...skipping 12 matching lines...) Expand all Loading... |
219 message_center::RichNotificationData optional; | 219 message_center::RichNotificationData optional; |
220 message_center::ButtonInfo button1(UTF8ToUTF16("button1")); | 220 message_center::ButtonInfo button1(UTF8ToUTF16("button1")); |
221 optional.buttons.push_back(button1); | 221 optional.buttons.push_back(button1); |
222 message_center::ButtonInfo button2(UTF8ToUTF16("button2")); | 222 message_center::ButtonInfo button2(UTF8ToUTF16("button2")); |
223 optional.buttons.push_back(button2); | 223 optional.buttons.push_back(button2); |
224 | 224 |
225 scoped_ptr<message_center::Notification> notification( | 225 scoped_ptr<message_center::Notification> notification( |
226 new message_center::Notification( | 226 new message_center::Notification( |
227 message_center::NOTIFICATION_TYPE_BASE_FORMAT, | 227 message_center::NOTIFICATION_TYPE_BASE_FORMAT, |
228 "an_id", | 228 "an_id", |
229 string16(), | 229 base::string16(), |
230 string16(), | 230 base::string16(), |
231 gfx::Image(), | 231 gfx::Image(), |
232 string16(), | 232 base::string16(), |
233 DummyNotifierId(), | 233 DummyNotifierId(), |
234 optional, | 234 optional, |
235 NULL)); | 235 NULL)); |
236 MockMessageCenter message_center; | 236 MockMessageCenter message_center; |
237 | 237 |
238 base::scoped_nsobject<MCNotificationController> controller( | 238 base::scoped_nsobject<MCNotificationController> controller( |
239 [[MCNotificationController alloc] initWithNotification:notification.get() | 239 [[MCNotificationController alloc] initWithNotification:notification.get() |
240 messageCenter:&message_center]); | 240 messageCenter:&message_center]); |
241 [controller view]; | 241 [controller view]; |
242 | 242 |
243 [[controller secondButton] performClick:nil]; | 243 [[controller secondButton] performClick:nil]; |
244 | 244 |
245 EXPECT_EQ("an_id", message_center.last_clicked_id()); | 245 EXPECT_EQ("an_id", message_center.last_clicked_id()); |
246 EXPECT_EQ(1, message_center.last_clicked_index()); | 246 EXPECT_EQ(1, message_center.last_clicked_index()); |
247 } | 247 } |
248 | 248 |
249 TEST_F(NotificationControllerTest, Image) { | 249 TEST_F(NotificationControllerTest, Image) { |
250 scoped_ptr<message_center::Notification> notification( | 250 scoped_ptr<message_center::Notification> notification( |
251 new message_center::Notification( | 251 new message_center::Notification( |
252 message_center::NOTIFICATION_TYPE_BASE_FORMAT, | 252 message_center::NOTIFICATION_TYPE_BASE_FORMAT, |
253 "an_id", | 253 "an_id", |
254 string16(), | 254 base::string16(), |
255 string16(), | 255 base::string16(), |
256 gfx::Image(), | 256 gfx::Image(), |
257 string16(), | 257 base::string16(), |
258 DummyNotifierId(), | 258 DummyNotifierId(), |
259 message_center::RichNotificationData(), | 259 message_center::RichNotificationData(), |
260 NULL)); | 260 NULL)); |
261 NSImage* image = [NSImage imageNamed:NSImageNameFolder]; | 261 NSImage* image = [NSImage imageNamed:NSImageNameFolder]; |
262 notification->set_image(gfx::Image([image retain])); | 262 notification->set_image(gfx::Image([image retain])); |
263 | 263 |
264 MockMessageCenter message_center; | 264 MockMessageCenter message_center; |
265 | 265 |
266 base::scoped_nsobject<MCNotificationController> controller( | 266 base::scoped_nsobject<MCNotificationController> controller( |
267 [[MCNotificationController alloc] initWithNotification:notification.get() | 267 [[MCNotificationController alloc] initWithNotification:notification.get() |
(...skipping 22 matching lines...) Expand all Loading... |
290 optional.items.push_back(item3); | 290 optional.items.push_back(item3); |
291 optional.context_message = UTF8ToUTF16("Context Message"); | 291 optional.context_message = UTF8ToUTF16("Context Message"); |
292 | 292 |
293 scoped_ptr<message_center::Notification> notification( | 293 scoped_ptr<message_center::Notification> notification( |
294 new message_center::Notification( | 294 new message_center::Notification( |
295 message_center::NOTIFICATION_TYPE_BASE_FORMAT, | 295 message_center::NOTIFICATION_TYPE_BASE_FORMAT, |
296 "an_id", | 296 "an_id", |
297 UTF8ToUTF16("Notification Title"), | 297 UTF8ToUTF16("Notification Title"), |
298 UTF8ToUTF16("Notification Message - should be hidden"), | 298 UTF8ToUTF16("Notification Message - should be hidden"), |
299 gfx::Image(), | 299 gfx::Image(), |
300 string16(), | 300 base::string16(), |
301 DummyNotifierId(), | 301 DummyNotifierId(), |
302 optional, | 302 optional, |
303 NULL)); | 303 NULL)); |
304 | 304 |
305 MockMessageCenter message_center; | 305 MockMessageCenter message_center; |
306 base::scoped_nsobject<MCNotificationController> controller( | 306 base::scoped_nsobject<MCNotificationController> controller( |
307 [[MCNotificationController alloc] initWithNotification:notification.get() | 307 [[MCNotificationController alloc] initWithNotification:notification.get() |
308 messageCenter:&message_center]); | 308 messageCenter:&message_center]); |
309 [controller view]; | 309 [controller view]; |
310 | 310 |
311 EXPECT_FALSE([[controller titleView] isHidden]); | 311 EXPECT_FALSE([[controller titleView] isHidden]); |
312 EXPECT_TRUE([[controller messageView] isHidden]); | 312 EXPECT_TRUE([[controller messageView] isHidden]); |
313 EXPECT_FALSE([[controller contextMessageView] isHidden]); | 313 EXPECT_FALSE([[controller contextMessageView] isHidden]); |
314 | 314 |
315 EXPECT_EQ(3u, [[[controller listView] subviews] count]); | 315 EXPECT_EQ(3u, [[[controller listView] subviews] count]); |
316 EXPECT_LT(NSMaxY([[controller listView] frame]), | 316 EXPECT_LT(NSMaxY([[controller listView] frame]), |
317 NSMinY([[controller titleView] frame])); | 317 NSMinY([[controller titleView] frame])); |
318 } | 318 } |
319 | 319 |
320 } // namespace message_center | 320 } // namespace message_center |
OLD | NEW |