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

Side by Side Diff: ui/message_center/cocoa/notification_controller_unittest.mm

Issue 1292003004: Elide origins displayed on web notifications. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Style nit Created 5 years, 4 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 (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 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 110
111 protected: 111 protected:
112 message_center::NotifierId DummyNotifierId() { 112 message_center::NotifierId DummyNotifierId() {
113 return message_center::NotifierId(); 113 return message_center::NotifierId();
114 } 114 }
115 }; 115 };
116 116
117 TEST_F(NotificationControllerTest, BasicLayout) { 117 TEST_F(NotificationControllerTest, BasicLayout) {
118 scoped_ptr<message_center::Notification> notification( 118 scoped_ptr<message_center::Notification> notification(
119 new message_center::Notification( 119 new message_center::Notification(
120 message_center::NOTIFICATION_TYPE_SIMPLE, 120 message_center::NOTIFICATION_TYPE_SIMPLE, "",
121 "",
122 ASCIIToUTF16("Added to circles"), 121 ASCIIToUTF16("Added to circles"),
123 ASCIIToUTF16("Jonathan and 5 others"), 122 ASCIIToUTF16("Jonathan and 5 others"), gfx::Image(), base::string16(),
124 gfx::Image(), 123 GURL(), DummyNotifierId(), message_center::RichNotificationData(),
125 base::string16(),
126 DummyNotifierId(),
127 message_center::RichNotificationData(),
128 NULL)); 124 NULL));
129 gfx::Image testIcon([TestIcon() retain]); 125 gfx::Image testIcon([TestIcon() retain]);
130 notification->set_icon(testIcon); 126 notification->set_icon(testIcon);
131 notification->set_small_image(testIcon); 127 notification->set_small_image(testIcon);
132 128
133 base::scoped_nsobject<MCNotificationController> controller( 129 base::scoped_nsobject<MCNotificationController> controller(
134 [[MCNotificationController alloc] initWithNotification:notification.get() 130 [[MCNotificationController alloc] initWithNotification:notification.get()
135 messageCenter:NULL]); 131 messageCenter:NULL]);
136 [controller view]; 132 [controller view];
137 133
138 EXPECT_EQ(TestIcon(), [[controller iconView] image]); 134 EXPECT_EQ(TestIcon(), [[controller iconView] image]);
139 EXPECT_EQ(TestIcon(), [[controller smallImageView] image]); 135 EXPECT_EQ(TestIcon(), [[controller smallImageView] image]);
140 EXPECT_EQ(base::SysNSStringToUTF16([[controller titleView] string]), 136 EXPECT_EQ(base::SysNSStringToUTF16([[controller titleView] string]),
141 notification->title()); 137 notification->title());
142 EXPECT_EQ(base::SysNSStringToUTF16([[controller messageView] string]), 138 EXPECT_EQ(base::SysNSStringToUTF16([[controller messageView] string]),
143 notification->message()); 139 notification->message());
144 EXPECT_EQ(controller.get(), [[controller closeButton] target]); 140 EXPECT_EQ(controller.get(), [[controller closeButton] target]);
145 } 141 }
146 142
147 TEST_F(NotificationControllerTest, OverflowText) { 143 TEST_F(NotificationControllerTest, OverflowText) {
148 scoped_ptr<message_center::Notification> notification( 144 scoped_ptr<message_center::Notification> notification(
149 new message_center::Notification( 145 new message_center::Notification(
150 message_center::NOTIFICATION_TYPE_SIMPLE, 146 message_center::NOTIFICATION_TYPE_SIMPLE, "",
151 "",
152 ASCIIToUTF16("This is a much longer title that should wrap " 147 ASCIIToUTF16("This is a much longer title that should wrap "
153 "multiple lines."), 148 "multiple lines."),
154 ASCIIToUTF16("And even the message is long. This sure is a wordy " 149 ASCIIToUTF16("And even the message is long. This sure is a wordy "
155 "notification. Are you really going to read this " 150 "notification. Are you really going to read this "
156 "entire thing?"), 151 "entire thing?"),
157 gfx::Image(), 152 gfx::Image(), base::string16(), GURL(), DummyNotifierId(),
158 base::string16(), 153 message_center::RichNotificationData(), NULL));
159 DummyNotifierId(),
160 message_center::RichNotificationData(),
161 NULL));
162 base::scoped_nsobject<MCNotificationController> controller( 154 base::scoped_nsobject<MCNotificationController> controller(
163 [[MCNotificationController alloc] initWithNotification:notification.get() 155 [[MCNotificationController alloc] initWithNotification:notification.get()
164 messageCenter:NULL]); 156 messageCenter:NULL]);
165 [controller view]; 157 [controller view];
166 158
167 EXPECT_GT(NSHeight([[controller view] frame]), 159 EXPECT_GT(NSHeight([[controller view] frame]),
168 message_center::kNotificationIconSize); 160 message_center::kNotificationIconSize);
169 } 161 }
170 162
171 TEST_F(NotificationControllerTest, Close) { 163 TEST_F(NotificationControllerTest, Close) {
172 scoped_ptr<message_center::Notification> notification( 164 scoped_ptr<message_center::Notification> notification(
173 new message_center::Notification( 165 new message_center::Notification(
174 message_center::NOTIFICATION_TYPE_SIMPLE, 166 message_center::NOTIFICATION_TYPE_SIMPLE, "an_id", base::string16(),
175 "an_id", 167 base::string16(), gfx::Image(), base::string16(), GURL(),
176 base::string16(), 168 DummyNotifierId(), message_center::RichNotificationData(), NULL));
177 base::string16(),
178 gfx::Image(),
179 base::string16(),
180 DummyNotifierId(),
181 message_center::RichNotificationData(),
182 NULL));
183 MockMessageCenter message_center; 169 MockMessageCenter message_center;
184 170
185 base::scoped_nsobject<MCNotificationController> controller( 171 base::scoped_nsobject<MCNotificationController> controller(
186 [[MCNotificationController alloc] initWithNotification:notification.get() 172 [[MCNotificationController alloc] initWithNotification:notification.get()
187 messageCenter:&message_center]); 173 messageCenter:&message_center]);
188 [controller view]; 174 [controller view];
189 175
190 [[controller closeButton] performClick:nil]; 176 [[controller closeButton] performClick:nil];
191 177
192 EXPECT_EQ(1, message_center.remove_count()); 178 EXPECT_EQ(1, message_center.remove_count());
193 EXPECT_EQ("an_id", message_center.last_removed_id()); 179 EXPECT_EQ("an_id", message_center.last_removed_id());
194 EXPECT_TRUE(message_center.last_removed_by_user()); 180 EXPECT_TRUE(message_center.last_removed_by_user());
195 } 181 }
196 182
197 TEST_F(NotificationControllerTest, Update) { 183 TEST_F(NotificationControllerTest, Update) {
198 scoped_ptr<message_center::Notification> notification( 184 scoped_ptr<message_center::Notification> notification(
199 new message_center::Notification( 185 new message_center::Notification(
200 message_center::NOTIFICATION_TYPE_SIMPLE, 186 message_center::NOTIFICATION_TYPE_SIMPLE, "",
201 "",
202 ASCIIToUTF16("A simple title"), 187 ASCIIToUTF16("A simple title"),
203 ASCIIToUTF16("This message isn't too long and should fit in the" 188 ASCIIToUTF16("This message isn't too long and should fit in the"
204 "default bounds."), 189 "default bounds."),
205 gfx::Image(), 190 gfx::Image(), base::string16(), GURL(), DummyNotifierId(),
206 base::string16(), 191 message_center::RichNotificationData(), NULL));
207 DummyNotifierId(),
208 message_center::RichNotificationData(),
209 NULL));
210 base::scoped_nsobject<MCNotificationController> controller( 192 base::scoped_nsobject<MCNotificationController> controller(
211 [[MCNotificationController alloc] initWithNotification:notification.get() 193 [[MCNotificationController alloc] initWithNotification:notification.get()
212 messageCenter:NULL]); 194 messageCenter:NULL]);
213 195
214 // Set up the default layout. 196 // Set up the default layout.
215 [controller view]; 197 [controller view];
216 EXPECT_EQ(NSHeight([[controller view] frame]), 198 EXPECT_EQ(NSHeight([[controller view] frame]),
217 message_center::kNotificationIconSize); 199 message_center::kNotificationIconSize);
218 EXPECT_FALSE([[controller iconView] image]); 200 EXPECT_FALSE([[controller iconView] image]);
219 EXPECT_FALSE([[controller smallImageView] image]); 201 EXPECT_FALSE([[controller smallImageView] image]);
(...skipping 11 matching lines...) Expand all
231 213
232 TEST_F(NotificationControllerTest, Buttons) { 214 TEST_F(NotificationControllerTest, Buttons) {
233 message_center::RichNotificationData optional; 215 message_center::RichNotificationData optional;
234 message_center::ButtonInfo button1(UTF8ToUTF16("button1")); 216 message_center::ButtonInfo button1(UTF8ToUTF16("button1"));
235 optional.buttons.push_back(button1); 217 optional.buttons.push_back(button1);
236 message_center::ButtonInfo button2(UTF8ToUTF16("button2")); 218 message_center::ButtonInfo button2(UTF8ToUTF16("button2"));
237 optional.buttons.push_back(button2); 219 optional.buttons.push_back(button2);
238 220
239 scoped_ptr<message_center::Notification> notification( 221 scoped_ptr<message_center::Notification> notification(
240 new message_center::Notification( 222 new message_center::Notification(
241 message_center::NOTIFICATION_TYPE_BASE_FORMAT, 223 message_center::NOTIFICATION_TYPE_BASE_FORMAT, "an_id",
242 "an_id", 224 base::string16(), base::string16(), gfx::Image(), base::string16(),
243 base::string16(), 225 GURL(), DummyNotifierId(), optional, NULL));
244 base::string16(),
245 gfx::Image(),
246 base::string16(),
247 DummyNotifierId(),
248 optional,
249 NULL));
250 MockMessageCenter message_center; 226 MockMessageCenter message_center;
251 227
252 base::scoped_nsobject<MCNotificationController> controller( 228 base::scoped_nsobject<MCNotificationController> controller(
253 [[MCNotificationController alloc] initWithNotification:notification.get() 229 [[MCNotificationController alloc] initWithNotification:notification.get()
254 messageCenter:&message_center]); 230 messageCenter:&message_center]);
255 [controller view]; 231 [controller view];
256 232
257 [[controller secondButton] performClick:nil]; 233 [[controller secondButton] performClick:nil];
258 234
259 EXPECT_EQ("an_id", message_center.last_clicked_id()); 235 EXPECT_EQ("an_id", message_center.last_clicked_id());
260 EXPECT_EQ(1, message_center.last_clicked_index()); 236 EXPECT_EQ(1, message_center.last_clicked_index());
261 } 237 }
262 238
263 TEST_F(NotificationControllerTest, Image) { 239 TEST_F(NotificationControllerTest, Image) {
264 scoped_ptr<message_center::Notification> notification( 240 scoped_ptr<message_center::Notification> notification(
265 new message_center::Notification( 241 new message_center::Notification(
266 message_center::NOTIFICATION_TYPE_BASE_FORMAT, 242 message_center::NOTIFICATION_TYPE_BASE_FORMAT, "an_id",
267 "an_id", 243 base::string16(), base::string16(), gfx::Image(), base::string16(),
268 base::string16(), 244 GURL(), DummyNotifierId(), message_center::RichNotificationData(),
269 base::string16(),
270 gfx::Image(),
271 base::string16(),
272 DummyNotifierId(),
273 message_center::RichNotificationData(),
274 NULL)); 245 NULL));
275 NSImage* image = [NSImage imageNamed:NSImageNameFolder]; 246 NSImage* image = [NSImage imageNamed:NSImageNameFolder];
276 notification->set_image(gfx::Image([image retain])); 247 notification->set_image(gfx::Image([image retain]));
277 248
278 MockMessageCenter message_center; 249 MockMessageCenter message_center;
279 250
280 base::scoped_nsobject<MCNotificationController> controller( 251 base::scoped_nsobject<MCNotificationController> controller(
281 [[MCNotificationController alloc] initWithNotification:notification.get() 252 [[MCNotificationController alloc] initWithNotification:notification.get()
282 messageCenter:&message_center]); 253 messageCenter:&message_center]);
283 [controller view]; 254 [controller view];
(...skipping 15 matching lines...) Expand all
299 UTF8ToUTF16("second slightly longer message")); 270 UTF8ToUTF16("second slightly longer message"));
300 optional.items.push_back(item2); 271 optional.items.push_back(item2);
301 message_center::NotificationItem item3( 272 message_center::NotificationItem item3(
302 UTF8ToUTF16(""), // Test for empty string. 273 UTF8ToUTF16(""), // Test for empty string.
303 UTF8ToUTF16(" ")); // Test for string containing only spaces. 274 UTF8ToUTF16(" ")); // Test for string containing only spaces.
304 optional.items.push_back(item3); 275 optional.items.push_back(item3);
305 optional.context_message = UTF8ToUTF16("Context Message"); 276 optional.context_message = UTF8ToUTF16("Context Message");
306 277
307 scoped_ptr<message_center::Notification> notification( 278 scoped_ptr<message_center::Notification> notification(
308 new message_center::Notification( 279 new message_center::Notification(
309 message_center::NOTIFICATION_TYPE_BASE_FORMAT, 280 message_center::NOTIFICATION_TYPE_BASE_FORMAT, "an_id",
310 "an_id",
311 UTF8ToUTF16("Notification Title"), 281 UTF8ToUTF16("Notification Title"),
312 UTF8ToUTF16("Notification Message - should be hidden"), 282 UTF8ToUTF16("Notification Message - should be hidden"), gfx::Image(),
313 gfx::Image(), 283 base::string16(), GURL(), DummyNotifierId(), optional, NULL));
314 base::string16(),
315 DummyNotifierId(),
316 optional,
317 NULL));
318 284
319 MockMessageCenter message_center; 285 MockMessageCenter message_center;
320 base::scoped_nsobject<MCNotificationController> controller( 286 base::scoped_nsobject<MCNotificationController> controller(
321 [[MCNotificationController alloc] initWithNotification:notification.get() 287 [[MCNotificationController alloc] initWithNotification:notification.get()
322 messageCenter:&message_center]); 288 messageCenter:&message_center]);
323 [controller view]; 289 [controller view];
324 290
325 EXPECT_FALSE([[controller titleView] isHidden]); 291 EXPECT_FALSE([[controller titleView] isHidden]);
326 EXPECT_TRUE([[controller messageView] isHidden]); 292 EXPECT_TRUE([[controller messageView] isHidden]);
327 EXPECT_FALSE([[controller contextMessageView] isHidden]); 293 EXPECT_FALSE([[controller contextMessageView] isHidden]);
328 294
329 EXPECT_EQ(3u, [[[controller listView] subviews] count]); 295 EXPECT_EQ(3u, [[[controller listView] subviews] count]);
330 EXPECT_LT(NSMaxY([[controller listView] frame]), 296 EXPECT_LT(NSMaxY([[controller listView] frame]),
331 NSMinY([[controller titleView] frame])); 297 NSMinY([[controller titleView] frame]));
332 } 298 }
333 299
334 TEST_F(NotificationControllerTest, NoMessage) { 300 TEST_F(NotificationControllerTest, NoMessage) {
335 message_center::RichNotificationData optional; 301 message_center::RichNotificationData optional;
336 optional.context_message = UTF8ToUTF16("Context Message"); 302 optional.context_message = UTF8ToUTF16("Context Message");
337 303
338 scoped_ptr<message_center::Notification> notification( 304 scoped_ptr<message_center::Notification> notification(
339 new message_center::Notification( 305 new message_center::Notification(
340 message_center::NOTIFICATION_TYPE_BASE_FORMAT, 306 message_center::NOTIFICATION_TYPE_BASE_FORMAT, "an_id",
341 "an_id", 307 UTF8ToUTF16("Notification Title"), UTF8ToUTF16(""), gfx::Image(),
342 UTF8ToUTF16("Notification Title"), 308 base::string16(), GURL(), DummyNotifierId(), optional, NULL));
343 UTF8ToUTF16(""),
344 gfx::Image(),
345 base::string16(),
346 DummyNotifierId(),
347 optional,
348 NULL));
349 309
350 MockMessageCenter message_center; 310 MockMessageCenter message_center;
351 base::scoped_nsobject<MCNotificationController> controller( 311 base::scoped_nsobject<MCNotificationController> controller(
352 [[MCNotificationController alloc] initWithNotification:notification.get() 312 [[MCNotificationController alloc] initWithNotification:notification.get()
353 messageCenter:&message_center]); 313 messageCenter:&message_center]);
354 [controller view]; 314 [controller view];
355 315
356 EXPECT_FALSE([[controller titleView] isHidden]); 316 EXPECT_FALSE([[controller titleView] isHidden]);
357 EXPECT_TRUE([[controller messageView] isHidden]); 317 EXPECT_TRUE([[controller messageView] isHidden]);
358 EXPECT_FALSE([[controller contextMessageView] isHidden]); 318 EXPECT_FALSE([[controller contextMessageView] isHidden]);
359 } 319 }
360 320
361 TEST_F(NotificationControllerTest, MessageSize) { 321 TEST_F(NotificationControllerTest, MessageSize) {
362 message_center::RichNotificationData data; 322 message_center::RichNotificationData data;
363 std::string id("id"); 323 std::string id("id");
364 NotifierId notifier_id(NotifierId::APPLICATION, "notifier"); 324 NotifierId notifier_id(NotifierId::APPLICATION, "notifier");
365 scoped_ptr<Notification> notification(new Notification( 325 scoped_ptr<Notification> notification(new Notification(
366 NOTIFICATION_TYPE_BASE_FORMAT, 326 NOTIFICATION_TYPE_BASE_FORMAT, id, base::UTF8ToUTF16(""),
367 id,
368 base::UTF8ToUTF16(""),
369 ASCIIToUTF16("And\neven\nthe\nmessage is long.\nThis sure is wordy"), 327 ASCIIToUTF16("And\neven\nthe\nmessage is long.\nThis sure is wordy"),
370 gfx::Image(), 328 gfx::Image(), base::string16() /* display_source */, GURL(), notifier_id,
371 base::string16() /* display_source */, 329 data, NULL /* delegate */));
372 notifier_id,
373 data,
374 NULL /* delegate */));
375 330
376 base::scoped_nsobject<MCNotificationController> controller( 331 base::scoped_nsobject<MCNotificationController> controller(
377 [[MCNotificationController alloc] initWithNotification:notification.get() 332 [[MCNotificationController alloc] initWithNotification:notification.get()
378 messageCenter:NULL]); 333 messageCenter:NULL]);
379 334
380 // Set up the default layout. 335 // Set up the default layout.
381 [controller view]; 336 [controller view];
382 337
383 auto compute_message_lines = ^{ 338 auto compute_message_lines = ^{
384 NSString* string = [[[controller messageView] textStorage] string]; 339 NSString* string = [[[controller messageView] textStorage] string];
(...skipping 30 matching lines...) Expand all
415 notification->set_title(ASCIIToUTF16("one line")); 370 notification->set_title(ASCIIToUTF16("one line"));
416 [controller updateNotification:notification.get()]; 371 [controller updateNotification:notification.get()];
417 EXPECT_EQ(2u, compute_message_lines()); 372 EXPECT_EQ(2u, compute_message_lines());
418 373
419 // Message, image and two line title: 1 lines. 374 // Message, image and two line title: 1 lines.
420 notification->set_title(ASCIIToUTF16("two\nlines")); 375 notification->set_title(ASCIIToUTF16("two\nlines"));
421 [controller updateNotification:notification.get()]; 376 [controller updateNotification:notification.get()];
422 EXPECT_EQ(1u, compute_message_lines()); 377 EXPECT_EQ(1u, compute_message_lines());
423 378
424 // Same as above, but context message takes away from message lines. 379 // Same as above, but context message takes away from message lines.
425 notification->set_context_message(base::UTF8ToUTF16("foo")); 380 notification->set_context_message(UTF8ToUTF16("foo"));
426 notification->set_title(ASCIIToUTF16("")); 381 notification->set_title(ASCIIToUTF16(""));
427 [controller updateNotification:notification.get()]; 382 [controller updateNotification:notification.get()];
428 EXPECT_EQ(1u, compute_message_lines()); 383 EXPECT_EQ(1u, compute_message_lines());
429 384
430 notification->set_title(ASCIIToUTF16("one line")); 385 notification->set_title(ASCIIToUTF16("one line"));
431 [controller updateNotification:notification.get()]; 386 [controller updateNotification:notification.get()];
432 EXPECT_EQ(1u, compute_message_lines()); 387 EXPECT_EQ(1u, compute_message_lines());
433 388
434 notification->set_title(ASCIIToUTF16("two\nlines")); 389 notification->set_title(ASCIIToUTF16("two\nlines"));
435 [controller updateNotification:notification.get()]; 390 [controller updateNotification:notification.get()];
436 EXPECT_EQ(0u, compute_message_lines()); 391 EXPECT_EQ(0u, compute_message_lines());
437 } 392 }
438 393
439 } // namespace message_center 394 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/cocoa/notification_controller.mm ('k') | ui/message_center/cocoa/popup_collection_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698