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

Side by Side Diff: ui/message_center/message_center_impl_unittest.cc

Issue 1868363002: Replace scoped_ptr with std::unique_ptr in //ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scopedptrcc
Patch Set: scopedptrui: rebase-make_scoped_ptr Created 4 years, 8 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
« no previous file with comments | « ui/message_center/message_center_impl.cc ('k') | ui/message_center/message_center_tray.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 #include "ui/message_center/message_center_impl.h" 5 #include "ui/message_center/message_center_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/memory/ptr_util.h"
11 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
12 #include "base/run_loop.h" 13 #include "base/run_loop.h"
13 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
14 #include "build/build_config.h" 15 #include "build/build_config.h"
15 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
16 #include "ui/gfx/canvas.h" 17 #include "ui/gfx/canvas.h"
17 #include "ui/gfx/geometry/size.h" 18 #include "ui/gfx/geometry/size.h"
18 #include "ui/message_center/message_center.h" 19 #include "ui/message_center/message_center.h"
19 #include "ui/message_center/message_center_types.h" 20 #include "ui/message_center/message_center_types.h"
20 #include "ui/message_center/notification_blocker.h" 21 #include "ui/message_center/notification_blocker.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 NotifierId(NotifierId::APPLICATION, notifier_id), 91 NotifierId(NotifierId::APPLICATION, notifier_id),
91 optional_fields, NULL); 92 optional_fields, NULL);
92 } 93 }
93 94
94 void ForceNotificationFlush(const std::string& id) { 95 void ForceNotificationFlush(const std::string& id) {
95 message_center()->ForceNotificationFlush(id); 96 message_center()->ForceNotificationFlush(id);
96 } 97 }
97 98
98 private: 99 private:
99 MessageCenter* message_center_; 100 MessageCenter* message_center_;
100 scoped_ptr<base::MessageLoop> loop_; 101 std::unique_ptr<base::MessageLoop> loop_;
101 scoped_ptr<base::RunLoop> run_loop_; 102 std::unique_ptr<base::RunLoop> run_loop_;
102 base::Closure closure_; 103 base::Closure closure_;
103 104
104 DISALLOW_COPY_AND_ASSIGN(MessageCenterImplTest); 105 DISALLOW_COPY_AND_ASSIGN(MessageCenterImplTest);
105 }; 106 };
106 107
107 class MessageCenterImplTestWithChangeQueue : public MessageCenterImplTest { 108 class MessageCenterImplTestWithChangeQueue : public MessageCenterImplTest {
108 public: 109 public:
109 MessageCenterImplTestWithChangeQueue() {} 110 MessageCenterImplTestWithChangeQueue() {}
110 ~MessageCenterImplTestWithChangeQueue() override {} 111 ~MessageCenterImplTestWithChangeQueue() override {}
111 112
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 bool timer_finished() const { return timer_finished_; } 243 bool timer_finished() const { return timer_finished_; }
243 const std::string& last_id() const { return last_id_; } 244 const std::string& last_id() const { return last_id_; }
244 245
245 private: 246 private:
246 bool timer_finished_; 247 bool timer_finished_;
247 std::string last_id_; 248 std::string last_id_;
248 base::Closure quit_closure_; 249 base::Closure quit_closure_;
249 }; 250 };
250 251
251 TEST_F(MessageCenterImplTest, PopupTimersEmptyController) { 252 TEST_F(MessageCenterImplTest, PopupTimersEmptyController) {
252 scoped_ptr<PopupTimersController> popup_timers_controller = 253 std::unique_ptr<PopupTimersController> popup_timers_controller =
253 make_scoped_ptr(new PopupTimersController(message_center())); 254 base::WrapUnique(new PopupTimersController(message_center()));
254 255
255 // Test that all functions succed without any timers created. 256 // Test that all functions succed without any timers created.
256 popup_timers_controller->PauseAll(); 257 popup_timers_controller->PauseAll();
257 popup_timers_controller->StartAll(); 258 popup_timers_controller->StartAll();
258 popup_timers_controller->CancelAll(); 259 popup_timers_controller->CancelAll();
259 popup_timers_controller->TimerFinished("unknown"); 260 popup_timers_controller->TimerFinished("unknown");
260 popup_timers_controller->PauseTimer("unknown"); 261 popup_timers_controller->PauseTimer("unknown");
261 popup_timers_controller->CancelTimer("unknown"); 262 popup_timers_controller->CancelTimer("unknown");
262 } 263 }
263 264
264 TEST_F(MessageCenterImplTest, PopupTimersControllerStartTimer) { 265 TEST_F(MessageCenterImplTest, PopupTimersControllerStartTimer) {
265 scoped_ptr<MockPopupTimersController> popup_timers_controller = 266 std::unique_ptr<MockPopupTimersController> popup_timers_controller =
266 make_scoped_ptr( 267 base::WrapUnique(
267 new MockPopupTimersController(message_center(), closure())); 268 new MockPopupTimersController(message_center(), closure()));
268 popup_timers_controller->StartTimer("test", 269 popup_timers_controller->StartTimer("test",
269 base::TimeDelta::FromMilliseconds(1)); 270 base::TimeDelta::FromMilliseconds(1));
270 run_loop()->Run(); 271 run_loop()->Run();
271 EXPECT_TRUE(popup_timers_controller->timer_finished()); 272 EXPECT_TRUE(popup_timers_controller->timer_finished());
272 } 273 }
273 274
274 TEST_F(MessageCenterImplTest, PopupTimersControllerPauseTimer) { 275 TEST_F(MessageCenterImplTest, PopupTimersControllerPauseTimer) {
275 scoped_ptr<MockPopupTimersController> popup_timers_controller = 276 std::unique_ptr<MockPopupTimersController> popup_timers_controller =
276 make_scoped_ptr( 277 base::WrapUnique(
277 new MockPopupTimersController(message_center(), closure())); 278 new MockPopupTimersController(message_center(), closure()));
278 popup_timers_controller->StartTimer("test", 279 popup_timers_controller->StartTimer("test",
279 base::TimeDelta::FromMilliseconds(1)); 280 base::TimeDelta::FromMilliseconds(1));
280 popup_timers_controller->PauseTimer("test"); 281 popup_timers_controller->PauseTimer("test");
281 run_loop()->RunUntilIdle(); 282 run_loop()->RunUntilIdle();
282 283
283 EXPECT_FALSE(popup_timers_controller->timer_finished()); 284 EXPECT_FALSE(popup_timers_controller->timer_finished());
284 } 285 }
285 286
286 TEST_F(MessageCenterImplTest, PopupTimersControllerCancelTimer) { 287 TEST_F(MessageCenterImplTest, PopupTimersControllerCancelTimer) {
287 scoped_ptr<MockPopupTimersController> popup_timers_controller = 288 std::unique_ptr<MockPopupTimersController> popup_timers_controller =
288 make_scoped_ptr( 289 base::WrapUnique(
289 new MockPopupTimersController(message_center(), closure())); 290 new MockPopupTimersController(message_center(), closure()));
290 popup_timers_controller->StartTimer("test", 291 popup_timers_controller->StartTimer("test",
291 base::TimeDelta::FromMilliseconds(1)); 292 base::TimeDelta::FromMilliseconds(1));
292 popup_timers_controller->CancelTimer("test"); 293 popup_timers_controller->CancelTimer("test");
293 run_loop()->RunUntilIdle(); 294 run_loop()->RunUntilIdle();
294 295
295 EXPECT_FALSE(popup_timers_controller->timer_finished()); 296 EXPECT_FALSE(popup_timers_controller->timer_finished());
296 } 297 }
297 298
298 TEST_F(MessageCenterImplTest, PopupTimersControllerPauseAllTimers) { 299 TEST_F(MessageCenterImplTest, PopupTimersControllerPauseAllTimers) {
299 scoped_ptr<MockPopupTimersController> popup_timers_controller = 300 std::unique_ptr<MockPopupTimersController> popup_timers_controller =
300 make_scoped_ptr( 301 base::WrapUnique(
301 new MockPopupTimersController(message_center(), closure())); 302 new MockPopupTimersController(message_center(), closure()));
302 popup_timers_controller->StartTimer("test", 303 popup_timers_controller->StartTimer("test",
303 base::TimeDelta::FromMilliseconds(1)); 304 base::TimeDelta::FromMilliseconds(1));
304 popup_timers_controller->PauseAll(); 305 popup_timers_controller->PauseAll();
305 run_loop()->RunUntilIdle(); 306 run_loop()->RunUntilIdle();
306 307
307 EXPECT_FALSE(popup_timers_controller->timer_finished()); 308 EXPECT_FALSE(popup_timers_controller->timer_finished());
308 } 309 }
309 310
310 TEST_F(MessageCenterImplTest, PopupTimersControllerStartAllTimers) { 311 TEST_F(MessageCenterImplTest, PopupTimersControllerStartAllTimers) {
311 scoped_ptr<MockPopupTimersController> popup_timers_controller = 312 std::unique_ptr<MockPopupTimersController> popup_timers_controller =
312 make_scoped_ptr( 313 base::WrapUnique(
313 new MockPopupTimersController(message_center(), closure())); 314 new MockPopupTimersController(message_center(), closure()));
314 popup_timers_controller->StartTimer("test", 315 popup_timers_controller->StartTimer("test",
315 base::TimeDelta::FromMilliseconds(1)); 316 base::TimeDelta::FromMilliseconds(1));
316 popup_timers_controller->PauseAll(); 317 popup_timers_controller->PauseAll();
317 popup_timers_controller->StartAll(); 318 popup_timers_controller->StartAll();
318 run_loop()->Run(); 319 run_loop()->Run();
319 320
320 EXPECT_TRUE(popup_timers_controller->timer_finished()); 321 EXPECT_TRUE(popup_timers_controller->timer_finished());
321 } 322 }
322 323
323 TEST_F(MessageCenterImplTest, PopupTimersControllerStartMultipleTimers) { 324 TEST_F(MessageCenterImplTest, PopupTimersControllerStartMultipleTimers) {
324 scoped_ptr<MockPopupTimersController> popup_timers_controller = 325 std::unique_ptr<MockPopupTimersController> popup_timers_controller =
325 make_scoped_ptr( 326 base::WrapUnique(
326 new MockPopupTimersController(message_center(), closure())); 327 new MockPopupTimersController(message_center(), closure()));
327 popup_timers_controller->StartTimer("test", 328 popup_timers_controller->StartTimer("test",
328 base::TimeDelta::FromMilliseconds(5)); 329 base::TimeDelta::FromMilliseconds(5));
329 popup_timers_controller->StartTimer("test2", 330 popup_timers_controller->StartTimer("test2",
330 base::TimeDelta::FromMilliseconds(1)); 331 base::TimeDelta::FromMilliseconds(1));
331 popup_timers_controller->StartTimer("test3", 332 popup_timers_controller->StartTimer("test3",
332 base::TimeDelta::FromMilliseconds(3)); 333 base::TimeDelta::FromMilliseconds(3));
333 popup_timers_controller->PauseAll(); 334 popup_timers_controller->PauseAll();
334 popup_timers_controller->StartAll(); 335 popup_timers_controller->StartAll();
335 run_loop()->Run(); 336 run_loop()->Run();
336 337
337 EXPECT_EQ(popup_timers_controller->last_id(), "test2"); 338 EXPECT_EQ(popup_timers_controller->last_id(), "test2");
338 EXPECT_TRUE(popup_timers_controller->timer_finished()); 339 EXPECT_TRUE(popup_timers_controller->timer_finished());
339 } 340 }
340 341
341 TEST_F(MessageCenterImplTest, PopupTimersControllerStartMultipleTimersPause) { 342 TEST_F(MessageCenterImplTest, PopupTimersControllerStartMultipleTimersPause) {
342 scoped_ptr<MockPopupTimersController> popup_timers_controller = 343 std::unique_ptr<MockPopupTimersController> popup_timers_controller =
343 make_scoped_ptr( 344 base::WrapUnique(
344 new MockPopupTimersController(message_center(), closure())); 345 new MockPopupTimersController(message_center(), closure()));
345 popup_timers_controller->StartTimer("test", 346 popup_timers_controller->StartTimer("test",
346 base::TimeDelta::FromMilliseconds(5)); 347 base::TimeDelta::FromMilliseconds(5));
347 popup_timers_controller->StartTimer("test2", 348 popup_timers_controller->StartTimer("test2",
348 base::TimeDelta::FromMilliseconds(1)); 349 base::TimeDelta::FromMilliseconds(1));
349 popup_timers_controller->StartTimer("test3", 350 popup_timers_controller->StartTimer("test3",
350 base::TimeDelta::FromMilliseconds(3)); 351 base::TimeDelta::FromMilliseconds(3));
351 popup_timers_controller->PauseTimer("test2"); 352 popup_timers_controller->PauseTimer("test2");
352 353
353 run_loop()->Run(); 354 run_loop()->Run();
354 355
355 EXPECT_EQ(popup_timers_controller->last_id(), "test3"); 356 EXPECT_EQ(popup_timers_controller->last_id(), "test3");
356 EXPECT_TRUE(popup_timers_controller->timer_finished()); 357 EXPECT_TRUE(popup_timers_controller->timer_finished());
357 } 358 }
358 359
359 TEST_F(MessageCenterImplTest, PopupTimersControllerResetTimer) { 360 TEST_F(MessageCenterImplTest, PopupTimersControllerResetTimer) {
360 scoped_ptr<MockPopupTimersController> popup_timers_controller = 361 std::unique_ptr<MockPopupTimersController> popup_timers_controller =
361 make_scoped_ptr( 362 base::WrapUnique(
362 new MockPopupTimersController(message_center(), closure())); 363 new MockPopupTimersController(message_center(), closure()));
363 popup_timers_controller->StartTimer("test", 364 popup_timers_controller->StartTimer("test",
364 base::TimeDelta::FromMilliseconds(5)); 365 base::TimeDelta::FromMilliseconds(5));
365 popup_timers_controller->StartTimer("test2", 366 popup_timers_controller->StartTimer("test2",
366 base::TimeDelta::FromMilliseconds(1)); 367 base::TimeDelta::FromMilliseconds(1));
367 popup_timers_controller->StartTimer("test3", 368 popup_timers_controller->StartTimer("test3",
368 base::TimeDelta::FromMilliseconds(3)); 369 base::TimeDelta::FromMilliseconds(3));
369 popup_timers_controller->PauseTimer("test2"); 370 popup_timers_controller->PauseTimer("test2");
370 popup_timers_controller->ResetTimer("test", 371 popup_timers_controller->ResetTimer("test",
371 base::TimeDelta::FromMilliseconds(2)); 372 base::TimeDelta::FromMilliseconds(2));
372 373
373 run_loop()->Run(); 374 run_loop()->Run();
374 375
375 EXPECT_EQ(popup_timers_controller->last_id(), "test"); 376 EXPECT_EQ(popup_timers_controller->last_id(), "test");
376 EXPECT_TRUE(popup_timers_controller->timer_finished()); 377 EXPECT_TRUE(popup_timers_controller->timer_finished());
377 } 378 }
378 379
379 TEST_F(MessageCenterImplTest, NotificationBlocker) { 380 TEST_F(MessageCenterImplTest, NotificationBlocker) {
380 NotifierId notifier_id(NotifierId::APPLICATION, "app1"); 381 NotifierId notifier_id(NotifierId::APPLICATION, "app1");
381 // Multiple blockers to verify the case that one blocker blocks but another 382 // Multiple blockers to verify the case that one blocker blocks but another
382 // doesn't. 383 // doesn't.
383 ToggledNotificationBlocker blocker1(message_center()); 384 ToggledNotificationBlocker blocker1(message_center());
384 ToggledNotificationBlocker blocker2(message_center()); 385 ToggledNotificationBlocker blocker2(message_center());
385 386
386 message_center()->AddNotification(scoped_ptr<Notification>( 387 message_center()->AddNotification(std::unique_ptr<Notification>(
387 new Notification(NOTIFICATION_TYPE_SIMPLE, "id1", UTF8ToUTF16("title"), 388 new Notification(NOTIFICATION_TYPE_SIMPLE, "id1", UTF8ToUTF16("title"),
388 UTF8ToUTF16("message"), gfx::Image() /* icon */, 389 UTF8ToUTF16("message"), gfx::Image() /* icon */,
389 base::string16() /* display_source */, GURL(), 390 base::string16() /* display_source */, GURL(),
390 notifier_id, RichNotificationData(), NULL))); 391 notifier_id, RichNotificationData(), NULL)));
391 message_center()->AddNotification(scoped_ptr<Notification>( 392 message_center()->AddNotification(std::unique_ptr<Notification>(
392 new Notification(NOTIFICATION_TYPE_SIMPLE, "id2", UTF8ToUTF16("title"), 393 new Notification(NOTIFICATION_TYPE_SIMPLE, "id2", UTF8ToUTF16("title"),
393 UTF8ToUTF16("message"), gfx::Image() /* icon */, 394 UTF8ToUTF16("message"), gfx::Image() /* icon */,
394 base::string16() /* display_source */, GURL(), 395 base::string16() /* display_source */, GURL(),
395 notifier_id, RichNotificationData(), NULL))); 396 notifier_id, RichNotificationData(), NULL)));
396 EXPECT_EQ(2u, message_center()->GetPopupNotifications().size()); 397 EXPECT_EQ(2u, message_center()->GetPopupNotifications().size());
397 EXPECT_EQ(2u, message_center()->GetVisibleNotifications().size()); 398 EXPECT_EQ(2u, message_center()->GetVisibleNotifications().size());
398 399
399 // Block all notifications. All popups are gone and message center should be 400 // Block all notifications. All popups are gone and message center should be
400 // hidden. 401 // hidden.
401 blocker1.SetNotificationsEnabled(false); 402 blocker1.SetNotificationsEnabled(false);
(...skipping 20 matching lines...) Expand all
422 // aren't shown. 423 // aren't shown.
423 blocker2.SetNotificationsEnabled(true); 424 blocker2.SetNotificationsEnabled(true);
424 EXPECT_TRUE(message_center()->GetPopupNotifications().empty()); 425 EXPECT_TRUE(message_center()->GetPopupNotifications().empty());
425 EXPECT_EQ(2u, message_center()->GetVisibleNotifications().size()); 426 EXPECT_EQ(2u, message_center()->GetVisibleNotifications().size());
426 } 427 }
427 428
428 TEST_F(MessageCenterImplTest, NotificationsDuringBlocked) { 429 TEST_F(MessageCenterImplTest, NotificationsDuringBlocked) {
429 NotifierId notifier_id(NotifierId::APPLICATION, "app1"); 430 NotifierId notifier_id(NotifierId::APPLICATION, "app1");
430 ToggledNotificationBlocker blocker(message_center()); 431 ToggledNotificationBlocker blocker(message_center());
431 432
432 message_center()->AddNotification(scoped_ptr<Notification>( 433 message_center()->AddNotification(std::unique_ptr<Notification>(
433 new Notification(NOTIFICATION_TYPE_SIMPLE, "id1", UTF8ToUTF16("title"), 434 new Notification(NOTIFICATION_TYPE_SIMPLE, "id1", UTF8ToUTF16("title"),
434 UTF8ToUTF16("message"), gfx::Image() /* icon */, 435 UTF8ToUTF16("message"), gfx::Image() /* icon */,
435 base::string16() /* display_source */, GURL(), 436 base::string16() /* display_source */, GURL(),
436 notifier_id, RichNotificationData(), NULL))); 437 notifier_id, RichNotificationData(), NULL)));
437 EXPECT_EQ(1u, message_center()->GetPopupNotifications().size()); 438 EXPECT_EQ(1u, message_center()->GetPopupNotifications().size());
438 EXPECT_EQ(1u, message_center()->GetVisibleNotifications().size()); 439 EXPECT_EQ(1u, message_center()->GetVisibleNotifications().size());
439 440
440 // Create a notification during blocked. Still no popups. 441 // Create a notification during blocked. Still no popups.
441 blocker.SetNotificationsEnabled(false); 442 blocker.SetNotificationsEnabled(false);
442 message_center()->AddNotification(scoped_ptr<Notification>( 443 message_center()->AddNotification(std::unique_ptr<Notification>(
443 new Notification(NOTIFICATION_TYPE_SIMPLE, "id2", UTF8ToUTF16("title"), 444 new Notification(NOTIFICATION_TYPE_SIMPLE, "id2", UTF8ToUTF16("title"),
444 UTF8ToUTF16("message"), gfx::Image() /* icon */, 445 UTF8ToUTF16("message"), gfx::Image() /* icon */,
445 base::string16() /* display_source */, GURL(), 446 base::string16() /* display_source */, GURL(),
446 notifier_id, RichNotificationData(), NULL))); 447 notifier_id, RichNotificationData(), NULL)));
447 EXPECT_TRUE(message_center()->GetPopupNotifications().empty()); 448 EXPECT_TRUE(message_center()->GetPopupNotifications().empty());
448 EXPECT_EQ(2u, message_center()->GetVisibleNotifications().size()); 449 EXPECT_EQ(2u, message_center()->GetVisibleNotifications().size());
449 450
450 // Unblock notifications, the id1 should appear as a popup. 451 // Unblock notifications, the id1 should appear as a popup.
451 blocker.SetNotificationsEnabled(true); 452 blocker.SetNotificationsEnabled(true);
452 NotificationList::PopupNotifications popups = 453 NotificationList::PopupNotifications popups =
453 message_center()->GetPopupNotifications(); 454 message_center()->GetPopupNotifications();
454 EXPECT_EQ(1u, popups.size()); 455 EXPECT_EQ(1u, popups.size());
455 EXPECT_TRUE(PopupNotificationsContain(popups, "id2")); 456 EXPECT_TRUE(PopupNotificationsContain(popups, "id2"));
456 EXPECT_EQ(2u, message_center()->GetVisibleNotifications().size()); 457 EXPECT_EQ(2u, message_center()->GetVisibleNotifications().size());
457 } 458 }
458 459
459 // Similar to other blocker cases but this test case allows |notifier_id2| even 460 // Similar to other blocker cases but this test case allows |notifier_id2| even
460 // in blocked. 461 // in blocked.
461 TEST_F(MessageCenterImplTest, NotificationBlockerAllowsPopups) { 462 TEST_F(MessageCenterImplTest, NotificationBlockerAllowsPopups) {
462 NotifierId notifier_id1(NotifierId::APPLICATION, "app1"); 463 NotifierId notifier_id1(NotifierId::APPLICATION, "app1");
463 NotifierId notifier_id2(NotifierId::APPLICATION, "app2"); 464 NotifierId notifier_id2(NotifierId::APPLICATION, "app2");
464 PopupNotificationBlocker blocker(message_center(), notifier_id2); 465 PopupNotificationBlocker blocker(message_center(), notifier_id2);
465 466
466 message_center()->AddNotification(scoped_ptr<Notification>( 467 message_center()->AddNotification(std::unique_ptr<Notification>(
467 new Notification(NOTIFICATION_TYPE_SIMPLE, "id1", UTF8ToUTF16("title"), 468 new Notification(NOTIFICATION_TYPE_SIMPLE, "id1", UTF8ToUTF16("title"),
468 UTF8ToUTF16("message"), gfx::Image() /* icon */, 469 UTF8ToUTF16("message"), gfx::Image() /* icon */,
469 base::string16() /* display_source */, GURL(), 470 base::string16() /* display_source */, GURL(),
470 notifier_id1, RichNotificationData(), NULL))); 471 notifier_id1, RichNotificationData(), NULL)));
471 message_center()->AddNotification(scoped_ptr<Notification>( 472 message_center()->AddNotification(std::unique_ptr<Notification>(
472 new Notification(NOTIFICATION_TYPE_SIMPLE, "id2", UTF8ToUTF16("title"), 473 new Notification(NOTIFICATION_TYPE_SIMPLE, "id2", UTF8ToUTF16("title"),
473 UTF8ToUTF16("message"), gfx::Image() /* icon */, 474 UTF8ToUTF16("message"), gfx::Image() /* icon */,
474 base::string16() /* display_source */, GURL(), 475 base::string16() /* display_source */, GURL(),
475 notifier_id2, RichNotificationData(), NULL))); 476 notifier_id2, RichNotificationData(), NULL)));
476 477
477 // "id1" is closed but "id2" is still visible as a popup. 478 // "id1" is closed but "id2" is still visible as a popup.
478 blocker.SetNotificationsEnabled(false); 479 blocker.SetNotificationsEnabled(false);
479 NotificationList::PopupNotifications popups = 480 NotificationList::PopupNotifications popups =
480 message_center()->GetPopupNotifications(); 481 message_center()->GetPopupNotifications();
481 EXPECT_EQ(1u, popups.size()); 482 EXPECT_EQ(1u, popups.size());
482 EXPECT_TRUE(PopupNotificationsContain(popups, "id2")); 483 EXPECT_TRUE(PopupNotificationsContain(popups, "id2"));
483 EXPECT_EQ(2u, message_center()->GetVisibleNotifications().size()); 484 EXPECT_EQ(2u, message_center()->GetVisibleNotifications().size());
484 485
485 message_center()->AddNotification(scoped_ptr<Notification>( 486 message_center()->AddNotification(std::unique_ptr<Notification>(
486 new Notification(NOTIFICATION_TYPE_SIMPLE, "id3", UTF8ToUTF16("title"), 487 new Notification(NOTIFICATION_TYPE_SIMPLE, "id3", UTF8ToUTF16("title"),
487 UTF8ToUTF16("message"), gfx::Image() /* icon */, 488 UTF8ToUTF16("message"), gfx::Image() /* icon */,
488 base::string16() /* display_source */, GURL(), 489 base::string16() /* display_source */, GURL(),
489 notifier_id1, RichNotificationData(), NULL))); 490 notifier_id1, RichNotificationData(), NULL)));
490 message_center()->AddNotification(scoped_ptr<Notification>( 491 message_center()->AddNotification(std::unique_ptr<Notification>(
491 new Notification(NOTIFICATION_TYPE_SIMPLE, "id4", UTF8ToUTF16("title"), 492 new Notification(NOTIFICATION_TYPE_SIMPLE, "id4", UTF8ToUTF16("title"),
492 UTF8ToUTF16("message"), gfx::Image() /* icon */, 493 UTF8ToUTF16("message"), gfx::Image() /* icon */,
493 base::string16() /* display_source */, GURL(), 494 base::string16() /* display_source */, GURL(),
494 notifier_id2, RichNotificationData(), NULL))); 495 notifier_id2, RichNotificationData(), NULL)));
495 popups = message_center()->GetPopupNotifications(); 496 popups = message_center()->GetPopupNotifications();
496 EXPECT_EQ(2u, popups.size()); 497 EXPECT_EQ(2u, popups.size());
497 EXPECT_TRUE(PopupNotificationsContain(popups, "id2")); 498 EXPECT_TRUE(PopupNotificationsContain(popups, "id2"));
498 EXPECT_TRUE(PopupNotificationsContain(popups, "id4")); 499 EXPECT_TRUE(PopupNotificationsContain(popups, "id4"));
499 EXPECT_EQ(4u, message_center()->GetVisibleNotifications().size()); 500 EXPECT_EQ(4u, message_center()->GetVisibleNotifications().size());
500 501
501 blocker.SetNotificationsEnabled(true); 502 blocker.SetNotificationsEnabled(true);
502 popups = message_center()->GetPopupNotifications(); 503 popups = message_center()->GetPopupNotifications();
503 EXPECT_EQ(3u, popups.size()); 504 EXPECT_EQ(3u, popups.size());
504 EXPECT_TRUE(PopupNotificationsContain(popups, "id2")); 505 EXPECT_TRUE(PopupNotificationsContain(popups, "id2"));
505 EXPECT_TRUE(PopupNotificationsContain(popups, "id3")); 506 EXPECT_TRUE(PopupNotificationsContain(popups, "id3"));
506 EXPECT_TRUE(PopupNotificationsContain(popups, "id4")); 507 EXPECT_TRUE(PopupNotificationsContain(popups, "id4"));
507 EXPECT_EQ(4u, message_center()->GetVisibleNotifications().size()); 508 EXPECT_EQ(4u, message_center()->GetVisibleNotifications().size());
508 } 509 }
509 510
510 // TotalNotificationBlocker suppresses showing notifications even from the list. 511 // TotalNotificationBlocker suppresses showing notifications even from the list.
511 // This would provide the feature to 'separated' message centers per-profile for 512 // This would provide the feature to 'separated' message centers per-profile for
512 // ChromeOS multi-login. 513 // ChromeOS multi-login.
513 TEST_F(MessageCenterImplTest, TotalNotificationBlocker) { 514 TEST_F(MessageCenterImplTest, TotalNotificationBlocker) {
514 NotifierId notifier_id1(NotifierId::APPLICATION, "app1"); 515 NotifierId notifier_id1(NotifierId::APPLICATION, "app1");
515 NotifierId notifier_id2(NotifierId::APPLICATION, "app2"); 516 NotifierId notifier_id2(NotifierId::APPLICATION, "app2");
516 TotalNotificationBlocker blocker(message_center(), notifier_id2); 517 TotalNotificationBlocker blocker(message_center(), notifier_id2);
517 518
518 message_center()->AddNotification(scoped_ptr<Notification>( 519 message_center()->AddNotification(std::unique_ptr<Notification>(
519 new Notification(NOTIFICATION_TYPE_SIMPLE, "id1", UTF8ToUTF16("title"), 520 new Notification(NOTIFICATION_TYPE_SIMPLE, "id1", UTF8ToUTF16("title"),
520 UTF8ToUTF16("message"), gfx::Image() /* icon */, 521 UTF8ToUTF16("message"), gfx::Image() /* icon */,
521 base::string16() /* display_source */, GURL(), 522 base::string16() /* display_source */, GURL(),
522 notifier_id1, RichNotificationData(), NULL))); 523 notifier_id1, RichNotificationData(), NULL)));
523 message_center()->AddNotification(scoped_ptr<Notification>( 524 message_center()->AddNotification(std::unique_ptr<Notification>(
524 new Notification(NOTIFICATION_TYPE_SIMPLE, "id2", UTF8ToUTF16("title"), 525 new Notification(NOTIFICATION_TYPE_SIMPLE, "id2", UTF8ToUTF16("title"),
525 UTF8ToUTF16("message"), gfx::Image() /* icon */, 526 UTF8ToUTF16("message"), gfx::Image() /* icon */,
526 base::string16() /* display_source */, GURL(), 527 base::string16() /* display_source */, GURL(),
527 notifier_id2, RichNotificationData(), NULL))); 528 notifier_id2, RichNotificationData(), NULL)));
528 529
529 // "id1" becomes invisible while "id2" is still visible. 530 // "id1" becomes invisible while "id2" is still visible.
530 blocker.SetNotificationsEnabled(false); 531 blocker.SetNotificationsEnabled(false);
531 EXPECT_EQ(1u, message_center()->NotificationCount()); 532 EXPECT_EQ(1u, message_center()->NotificationCount());
532 NotificationList::Notifications notifications = 533 NotificationList::Notifications notifications =
533 message_center()->GetVisibleNotifications(); 534 message_center()->GetVisibleNotifications();
534 EXPECT_FALSE(NotificationsContain(notifications, "id1")); 535 EXPECT_FALSE(NotificationsContain(notifications, "id1"));
535 EXPECT_TRUE(NotificationsContain(notifications, "id2")); 536 EXPECT_TRUE(NotificationsContain(notifications, "id2"));
536 537
537 message_center()->AddNotification(scoped_ptr<Notification>( 538 message_center()->AddNotification(std::unique_ptr<Notification>(
538 new Notification(NOTIFICATION_TYPE_SIMPLE, "id3", UTF8ToUTF16("title"), 539 new Notification(NOTIFICATION_TYPE_SIMPLE, "id3", UTF8ToUTF16("title"),
539 UTF8ToUTF16("message"), gfx::Image() /* icon */, 540 UTF8ToUTF16("message"), gfx::Image() /* icon */,
540 base::string16() /* display_source */, GURL(), 541 base::string16() /* display_source */, GURL(),
541 notifier_id1, RichNotificationData(), NULL))); 542 notifier_id1, RichNotificationData(), NULL)));
542 message_center()->AddNotification(scoped_ptr<Notification>( 543 message_center()->AddNotification(std::unique_ptr<Notification>(
543 new Notification(NOTIFICATION_TYPE_SIMPLE, "id4", UTF8ToUTF16("title"), 544 new Notification(NOTIFICATION_TYPE_SIMPLE, "id4", UTF8ToUTF16("title"),
544 UTF8ToUTF16("message"), gfx::Image() /* icon */, 545 UTF8ToUTF16("message"), gfx::Image() /* icon */,
545 base::string16() /* display_source */, GURL(), 546 base::string16() /* display_source */, GURL(),
546 notifier_id2, RichNotificationData(), NULL))); 547 notifier_id2, RichNotificationData(), NULL)));
547 EXPECT_EQ(2u, message_center()->NotificationCount()); 548 EXPECT_EQ(2u, message_center()->NotificationCount());
548 notifications = message_center()->GetVisibleNotifications(); 549 notifications = message_center()->GetVisibleNotifications();
549 EXPECT_FALSE(NotificationsContain(notifications, "id1")); 550 EXPECT_FALSE(NotificationsContain(notifications, "id1"));
550 EXPECT_TRUE(NotificationsContain(notifications, "id2")); 551 EXPECT_TRUE(NotificationsContain(notifications, "id2"));
551 EXPECT_FALSE(NotificationsContain(notifications, "id3")); 552 EXPECT_FALSE(NotificationsContain(notifications, "id3"));
552 EXPECT_TRUE(NotificationsContain(notifications, "id4")); 553 EXPECT_TRUE(NotificationsContain(notifications, "id4"));
(...skipping 22 matching lines...) Expand all
575 // And remove all including invisible notifications. 576 // And remove all including invisible notifications.
576 blocker.SetNotificationsEnabled(false); 577 blocker.SetNotificationsEnabled(false);
577 message_center()->RemoveAllNotifications(false /* by_user */, 578 message_center()->RemoveAllNotifications(false /* by_user */,
578 MessageCenter::RemoveType::ALL); 579 MessageCenter::RemoveType::ALL);
579 EXPECT_EQ(0u, message_center()->NotificationCount()); 580 EXPECT_EQ(0u, message_center()->NotificationCount());
580 } 581 }
581 582
582 #if defined(OS_CHROMEOS) 583 #if defined(OS_CHROMEOS)
583 TEST_F(MessageCenterImplTest, CachedUnreadCount) { 584 TEST_F(MessageCenterImplTest, CachedUnreadCount) {
584 message_center()->AddNotification( 585 message_center()->AddNotification(
585 scoped_ptr<Notification>(CreateSimpleNotification("id1"))); 586 std::unique_ptr<Notification>(CreateSimpleNotification("id1")));
586 message_center()->AddNotification( 587 message_center()->AddNotification(
587 scoped_ptr<Notification>(CreateSimpleNotification("id2"))); 588 std::unique_ptr<Notification>(CreateSimpleNotification("id2")));
588 message_center()->AddNotification( 589 message_center()->AddNotification(
589 scoped_ptr<Notification>(CreateSimpleNotification("id3"))); 590 std::unique_ptr<Notification>(CreateSimpleNotification("id3")));
590 ASSERT_EQ(3u, message_center()->UnreadNotificationCount()); 591 ASSERT_EQ(3u, message_center()->UnreadNotificationCount());
591 592
592 // Mark 'displayed' on all notifications by using for-loop. This shouldn't 593 // Mark 'displayed' on all notifications by using for-loop. This shouldn't
593 // recreate |notifications| inside of the loop. 594 // recreate |notifications| inside of the loop.
594 const NotificationList::Notifications& notifications = 595 const NotificationList::Notifications& notifications =
595 message_center()->GetVisibleNotifications(); 596 message_center()->GetVisibleNotifications();
596 for (NotificationList::Notifications::const_iterator iter = 597 for (NotificationList::Notifications::const_iterator iter =
597 notifications.begin(); iter != notifications.end(); ++iter) { 598 notifications.begin(); iter != notifications.end(); ++iter) {
598 message_center()->DisplayedNotification( 599 message_center()->DisplayedNotification(
599 (*iter)->id(), message_center::DISPLAY_SOURCE_MESSAGE_CENTER); 600 (*iter)->id(), message_center::DISPLAY_SOURCE_MESSAGE_CENTER);
(...skipping 15 matching lines...) Expand all
615 #endif // OS_CHROMEOS 616 #endif // OS_CHROMEOS
616 617
617 TEST_F(MessageCenterImplTest, ForceNotificationFlush_InconsistentUpdate) { 618 TEST_F(MessageCenterImplTest, ForceNotificationFlush_InconsistentUpdate) {
618 std::string id1("id1"); 619 std::string id1("id1");
619 std::string id2("id2"); 620 std::string id2("id2");
620 std::string id3("id3"); 621 std::string id3("id3");
621 622
622 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER); 623 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER);
623 624
624 // Add -> Update (with ID change) 625 // Add -> Update (with ID change)
625 scoped_ptr<Notification> notification(CreateSimpleNotification(id1)); 626 std::unique_ptr<Notification> notification(CreateSimpleNotification(id1));
626 message_center()->AddNotification(std::move(notification)); 627 message_center()->AddNotification(std::move(notification));
627 notification.reset(CreateSimpleNotification(id2)); 628 notification.reset(CreateSimpleNotification(id2));
628 message_center()->UpdateNotification(id1, std::move(notification)); 629 message_center()->UpdateNotification(id1, std::move(notification));
629 630
630 // Add (although the same ID exists) -> Update (with ID change) -> Remove 631 // Add (although the same ID exists) -> Update (with ID change) -> Remove
631 notification.reset(CreateSimpleNotification(id2)); 632 notification.reset(CreateSimpleNotification(id2));
632 message_center()->AddNotification(std::move(notification)); 633 message_center()->AddNotification(std::move(notification));
633 notification.reset(CreateSimpleNotification(id3)); 634 notification.reset(CreateSimpleNotification(id3));
634 message_center()->UpdateNotification(id2, std::move(notification)); 635 message_center()->UpdateNotification(id2, std::move(notification));
635 message_center()->RemoveNotification(id3, false); 636 message_center()->RemoveNotification(id3, false);
636 637
637 // Remove (although the ID has already removed) 638 // Remove (although the ID has already removed)
638 message_center()->RemoveNotification(id3, false); 639 message_center()->RemoveNotification(id3, false);
639 640
640 // Notification is not added since the message center has opened. 641 // Notification is not added since the message center has opened.
641 ASSERT_EQ(0u, message_center()->NotificationCount()); 642 ASSERT_EQ(0u, message_center()->NotificationCount());
642 643
643 // Forced to update. 644 // Forced to update.
644 ForceNotificationFlush(id3); 645 ForceNotificationFlush(id3);
645 646
646 // Confirms the chagnes are applied. 647 // Confirms the chagnes are applied.
647 ASSERT_EQ(0u, message_center()->NotificationCount()); 648 ASSERT_EQ(0u, message_center()->NotificationCount());
648 } 649 }
649 650
650 TEST_F(MessageCenterImplTest, DisableNotificationsByNotifier) { 651 TEST_F(MessageCenterImplTest, DisableNotificationsByNotifier) {
651 ASSERT_EQ(0u, message_center()->NotificationCount()); 652 ASSERT_EQ(0u, message_center()->NotificationCount());
652 message_center()->AddNotification( 653 message_center()->AddNotification(std::unique_ptr<Notification>(
653 scoped_ptr<Notification>( 654 CreateSimpleNotificationWithNotifierId("id1-1", "app1")));
654 CreateSimpleNotificationWithNotifierId("id1-1", "app1"))); 655 message_center()->AddNotification(std::unique_ptr<Notification>(
655 message_center()->AddNotification( 656 CreateSimpleNotificationWithNotifierId("id1-2", "app1")));
656 scoped_ptr<Notification>( 657 message_center()->AddNotification(std::unique_ptr<Notification>(
657 CreateSimpleNotificationWithNotifierId("id1-2", "app1"))); 658 CreateSimpleNotificationWithNotifierId("id2-1", "app2")));
658 message_center()->AddNotification( 659 message_center()->AddNotification(std::unique_ptr<Notification>(
659 scoped_ptr<Notification>( 660 CreateSimpleNotificationWithNotifierId("id2-2", "app2")));
660 CreateSimpleNotificationWithNotifierId("id2-1", "app2"))); 661 message_center()->AddNotification(std::unique_ptr<Notification>(
661 message_center()->AddNotification( 662 CreateSimpleNotificationWithNotifierId("id2-3", "app2")));
662 scoped_ptr<Notification>(
663 CreateSimpleNotificationWithNotifierId("id2-2", "app2")));
664 message_center()->AddNotification(
665 scoped_ptr<Notification>(
666 CreateSimpleNotificationWithNotifierId("id2-3", "app2")));
667 ASSERT_EQ(5u, message_center()->NotificationCount()); 663 ASSERT_EQ(5u, message_center()->NotificationCount());
668 664
669 // Removing all of app1's notifications should only leave app2's. 665 // Removing all of app1's notifications should only leave app2's.
670 message_center()->DisableNotificationsByNotifier( 666 message_center()->DisableNotificationsByNotifier(
671 NotifierId(NotifierId::APPLICATION, "app1")); 667 NotifierId(NotifierId::APPLICATION, "app1"));
672 ASSERT_EQ(3u, message_center()->NotificationCount()); 668 ASSERT_EQ(3u, message_center()->NotificationCount());
673 669
674 // Now we remove the remaining notifications. 670 // Now we remove the remaining notifications.
675 message_center()->DisableNotificationsByNotifier( 671 message_center()->DisableNotificationsByNotifier(
676 NotifierId(NotifierId::APPLICATION, "app2")); 672 NotifierId(NotifierId::APPLICATION, "app2"));
677 ASSERT_EQ(0u, message_center()->NotificationCount()); 673 ASSERT_EQ(0u, message_center()->NotificationCount());
678 } 674 }
679 675
680 TEST_F(MessageCenterImplTest, NotifierEnabledChanged) { 676 TEST_F(MessageCenterImplTest, NotifierEnabledChanged) {
681 ASSERT_EQ(0u, message_center()->NotificationCount()); 677 ASSERT_EQ(0u, message_center()->NotificationCount());
682 message_center()->AddNotification( 678 message_center()->AddNotification(std::unique_ptr<Notification>(
683 scoped_ptr<Notification>( 679 CreateSimpleNotificationWithNotifierId("id1-1", "app1")));
684 CreateSimpleNotificationWithNotifierId("id1-1", "app1"))); 680 message_center()->AddNotification(std::unique_ptr<Notification>(
685 message_center()->AddNotification( 681 CreateSimpleNotificationWithNotifierId("id1-2", "app1")));
686 scoped_ptr<Notification>( 682 message_center()->AddNotification(std::unique_ptr<Notification>(
687 CreateSimpleNotificationWithNotifierId("id1-2", "app1"))); 683 CreateSimpleNotificationWithNotifierId("id1-3", "app1")));
688 message_center()->AddNotification( 684 message_center()->AddNotification(std::unique_ptr<Notification>(
689 scoped_ptr<Notification>( 685 CreateSimpleNotificationWithNotifierId("id2-1", "app2")));
690 CreateSimpleNotificationWithNotifierId("id1-3", "app1"))); 686 message_center()->AddNotification(std::unique_ptr<Notification>(
691 message_center()->AddNotification( 687 CreateSimpleNotificationWithNotifierId("id2-2", "app2")));
692 scoped_ptr<Notification>( 688 message_center()->AddNotification(std::unique_ptr<Notification>(
693 CreateSimpleNotificationWithNotifierId("id2-1", "app2"))); 689 CreateSimpleNotificationWithNotifierId("id2-3", "app2")));
694 message_center()->AddNotification( 690 message_center()->AddNotification(std::unique_ptr<Notification>(
695 scoped_ptr<Notification>( 691 CreateSimpleNotificationWithNotifierId("id2-4", "app2")));
696 CreateSimpleNotificationWithNotifierId("id2-2", "app2"))); 692 message_center()->AddNotification(std::unique_ptr<Notification>(
697 message_center()->AddNotification( 693 CreateSimpleNotificationWithNotifierId("id2-5", "app2")));
698 scoped_ptr<Notification>(
699 CreateSimpleNotificationWithNotifierId("id2-3", "app2")));
700 message_center()->AddNotification(
701 scoped_ptr<Notification>(
702 CreateSimpleNotificationWithNotifierId("id2-4", "app2")));
703 message_center()->AddNotification(
704 scoped_ptr<Notification>(
705 CreateSimpleNotificationWithNotifierId("id2-5", "app2")));
706 ASSERT_EQ(8u, message_center()->NotificationCount()); 694 ASSERT_EQ(8u, message_center()->NotificationCount());
707 695
708 // Enabling an extension should have no effect on the count. 696 // Enabling an extension should have no effect on the count.
709 notifier_settings_observer()->NotifierEnabledChanged( 697 notifier_settings_observer()->NotifierEnabledChanged(
710 NotifierId(NotifierId::APPLICATION, "app1"), true); 698 NotifierId(NotifierId::APPLICATION, "app1"), true);
711 ASSERT_EQ(8u, message_center()->NotificationCount()); 699 ASSERT_EQ(8u, message_center()->NotificationCount());
712 700
713 // Removing all of app2's notifications should only leave app1's. 701 // Removing all of app2's notifications should only leave app1's.
714 notifier_settings_observer()->NotifierEnabledChanged( 702 notifier_settings_observer()->NotifierEnabledChanged(
715 NotifierId(NotifierId::APPLICATION, "app2"), false); 703 NotifierId(NotifierId::APPLICATION, "app2"), false);
(...skipping 10 matching lines...) Expand all
726 ASSERT_EQ(0u, message_center()->NotificationCount()); 714 ASSERT_EQ(0u, message_center()->NotificationCount());
727 } 715 }
728 716
729 TEST_F(MessageCenterImplTestWithChangeQueue, QueueUpdatesWithCenterVisible) { 717 TEST_F(MessageCenterImplTestWithChangeQueue, QueueUpdatesWithCenterVisible) {
730 std::string id("id1"); 718 std::string id("id1");
731 std::string id2("id2"); 719 std::string id2("id2");
732 NotifierId notifier_id1(NotifierId::APPLICATION, "app1"); 720 NotifierId notifier_id1(NotifierId::APPLICATION, "app1");
733 721
734 // First, add and update a notification to ensure updates happen 722 // First, add and update a notification to ensure updates happen
735 // normally. 723 // normally.
736 scoped_ptr<Notification> notification(CreateSimpleNotification(id)); 724 std::unique_ptr<Notification> notification(CreateSimpleNotification(id));
737 message_center()->AddNotification(std::move(notification)); 725 message_center()->AddNotification(std::move(notification));
738 notification.reset(CreateSimpleNotification(id2)); 726 notification.reset(CreateSimpleNotification(id2));
739 message_center()->UpdateNotification(id, std::move(notification)); 727 message_center()->UpdateNotification(id, std::move(notification));
740 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id2)); 728 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id2));
741 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id)); 729 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id));
742 730
743 // Then open the message center. 731 // Then open the message center.
744 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER); 732 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER);
745 733
746 // Then update a notification; nothing should have happened. 734 // Then update a notification; nothing should have happened.
747 notification.reset(CreateSimpleNotification(id)); 735 notification.reset(CreateSimpleNotification(id));
748 message_center()->UpdateNotification(id2, std::move(notification)); 736 message_center()->UpdateNotification(id2, std::move(notification));
749 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id2)); 737 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id2));
750 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id)); 738 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id));
751 739
752 // Close the message center; then the update should have propagated. 740 // Close the message center; then the update should have propagated.
753 message_center()->SetVisibility(VISIBILITY_TRANSIENT); 741 message_center()->SetVisibility(VISIBILITY_TRANSIENT);
754 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id2)); 742 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id2));
755 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id)); 743 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id));
756 } 744 }
757 745
758 TEST_F(MessageCenterImplTestWithChangeQueue, ComplexQueueing) { 746 TEST_F(MessageCenterImplTestWithChangeQueue, ComplexQueueing) {
759 std::string ids[6] = {"0", "1", "2", "3", "4p", "5"}; 747 std::string ids[6] = {"0", "1", "2", "3", "4p", "5"};
760 NotifierId notifier_id1(NotifierId::APPLICATION, "app1"); 748 NotifierId notifier_id1(NotifierId::APPLICATION, "app1");
761 749
762 scoped_ptr<Notification> notification; 750 std::unique_ptr<Notification> notification;
763 // Add some notifications 751 // Add some notifications
764 int i = 0; 752 int i = 0;
765 for (; i < 3; i++) { 753 for (; i < 3; i++) {
766 notification.reset(CreateSimpleNotification(ids[i])); 754 notification.reset(CreateSimpleNotification(ids[i]));
767 message_center()->AddNotification(std::move(notification)); 755 message_center()->AddNotification(std::move(notification));
768 } 756 }
769 for (i = 0; i < 3; i++) { 757 for (i = 0; i < 3; i++) {
770 EXPECT_TRUE(message_center()->FindVisibleNotificationById(ids[i])); 758 EXPECT_TRUE(message_center()->FindVisibleNotificationById(ids[i]));
771 } 759 }
772 for (; i < 6; i++) { 760 for (; i < 6; i++) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 EXPECT_TRUE(message_center()->FindVisibleNotificationById(ids[4])); 807 EXPECT_TRUE(message_center()->FindVisibleNotificationById(ids[4]));
820 EXPECT_TRUE(message_center()->FindVisibleNotificationById(ids[5])); 808 EXPECT_TRUE(message_center()->FindVisibleNotificationById(ids[5]));
821 EXPECT_EQ(message_center()->GetVisibleNotifications().size(), 5u); 809 EXPECT_EQ(message_center()->GetVisibleNotifications().size(), 5u);
822 } 810 }
823 811
824 TEST_F(MessageCenterImplTestWithChangeQueue, UpdateWhileQueueing) { 812 TEST_F(MessageCenterImplTestWithChangeQueue, UpdateWhileQueueing) {
825 std::string ids[11] = 813 std::string ids[11] =
826 {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10p"}; 814 {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10p"};
827 NotifierId notifier_id1(NotifierId::APPLICATION, "app1"); 815 NotifierId notifier_id1(NotifierId::APPLICATION, "app1");
828 816
829 scoped_ptr<Notification> notification; 817 std::unique_ptr<Notification> notification;
830 // Add some notifications 818 // Add some notifications
831 int i = 0; 819 int i = 0;
832 for (; i < 6; i++) { 820 for (; i < 6; i++) {
833 notification.reset(CreateSimpleNotification(ids[i])); 821 notification.reset(CreateSimpleNotification(ids[i]));
834 notification->set_title(base::ASCIIToUTF16("ORIGINAL TITLE")); 822 notification->set_title(base::ASCIIToUTF16("ORIGINAL TITLE"));
835 message_center()->AddNotification(std::move(notification)); 823 message_center()->AddNotification(std::move(notification));
836 } 824 }
837 for (i = 0; i < 6; i++) { 825 for (i = 0; i < 6; i++) {
838 EXPECT_TRUE(message_center()->FindVisibleNotificationById(ids[i])); 826 EXPECT_TRUE(message_center()->FindVisibleNotificationById(ids[i]));
839 } 827 }
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 std::string id("id1"); 962 std::string id("id1");
975 std::string id2("id2"); 963 std::string id2("id2");
976 NotifierId notifier_id1(NotifierId::APPLICATION, "app1"); 964 NotifierId notifier_id1(NotifierId::APPLICATION, "app1");
977 965
978 gfx::Size original_size(0, 0); 966 gfx::Size original_size(0, 0);
979 // Open the message center to prevent adding notifications 967 // Open the message center to prevent adding notifications
980 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER); 968 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER);
981 969
982 // Create new notification to be added to the queue; images all have the same 970 // Create new notification to be added to the queue; images all have the same
983 // original size. 971 // original size.
984 scoped_ptr<Notification> notification(CreateSimpleNotification(id)); 972 std::unique_ptr<Notification> notification(CreateSimpleNotification(id));
985 973
986 // Double-check that sizes all match. 974 // Double-check that sizes all match.
987 const std::vector<ButtonInfo>& original_buttons = notification->buttons(); 975 const std::vector<ButtonInfo>& original_buttons = notification->buttons();
988 ASSERT_EQ(2u, original_buttons.size()); 976 ASSERT_EQ(2u, original_buttons.size());
989 977
990 EXPECT_EQ(original_size, notification->icon().Size()); 978 EXPECT_EQ(original_size, notification->icon().Size());
991 EXPECT_EQ(original_size, notification->image().Size()); 979 EXPECT_EQ(original_size, notification->image().Size());
992 EXPECT_EQ(original_size, original_buttons[0].icon.Size()); 980 EXPECT_EQ(original_size, original_buttons[0].icon.Size());
993 EXPECT_EQ(original_size, original_buttons[1].icon.Size()); 981 EXPECT_EQ(original_size, original_buttons[1].icon.Size());
994 982
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1026 EXPECT_EQ(new_size, mc_notification->image().Size()); 1014 EXPECT_EQ(new_size, mc_notification->image().Size());
1027 EXPECT_EQ(new_size, buttons[0].icon.Size()); 1015 EXPECT_EQ(new_size, buttons[0].icon.Size());
1028 EXPECT_EQ(new_size, buttons[1].icon.Size()); 1016 EXPECT_EQ(new_size, buttons[1].icon.Size());
1029 } 1017 }
1030 1018
1031 TEST_F(MessageCenterImplTestWithChangeQueue, ForceNotificationFlushAdd) { 1019 TEST_F(MessageCenterImplTestWithChangeQueue, ForceNotificationFlushAdd) {
1032 std::string id("id1"); 1020 std::string id("id1");
1033 1021
1034 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER); 1022 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER);
1035 message_center()->AddNotification( 1023 message_center()->AddNotification(
1036 scoped_ptr<Notification>(CreateSimpleNotification(id))); 1024 std::unique_ptr<Notification>(CreateSimpleNotification(id)));
1037 1025
1038 // Notification is not added yet. 1026 // Notification is not added yet.
1039 ASSERT_EQ(0u, message_center()->NotificationCount()); 1027 ASSERT_EQ(0u, message_center()->NotificationCount());
1040 // Forced to update. 1028 // Forced to update.
1041 ForceNotificationFlush(id); 1029 ForceNotificationFlush(id);
1042 // Notification is added. 1030 // Notification is added.
1043 ASSERT_EQ(1u, message_center()->NotificationCount()); 1031 ASSERT_EQ(1u, message_center()->NotificationCount());
1044 } 1032 }
1045 1033
1046 1034
1047 TEST_F(MessageCenterImplTestWithChangeQueue, ForceNotificationFlushUpdate) { 1035 TEST_F(MessageCenterImplTestWithChangeQueue, ForceNotificationFlushUpdate) {
1048 std::string id("id1"); 1036 std::string id("id1");
1049 std::string id2("id2"); 1037 std::string id2("id2");
1050 1038
1051 scoped_ptr<Notification> notification(CreateSimpleNotification(id)); 1039 std::unique_ptr<Notification> notification(CreateSimpleNotification(id));
1052 message_center()->AddNotification(std::move(notification)); 1040 message_center()->AddNotification(std::move(notification));
1053 1041
1054 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER); 1042 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER);
1055 1043
1056 notification.reset(CreateSimpleNotification(id2)); 1044 notification.reset(CreateSimpleNotification(id2));
1057 message_center()->UpdateNotification(id, std::move(notification)); 1045 message_center()->UpdateNotification(id, std::move(notification));
1058 1046
1059 // Nothing is changed. 1047 // Nothing is changed.
1060 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id2)); 1048 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id2));
1061 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id)); 1049 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id));
(...skipping 12 matching lines...) Expand all
1074 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id2)); 1062 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id2));
1075 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id)); 1063 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id));
1076 1064
1077 // Makes sure if there is only one notification. 1065 // Makes sure if there is only one notification.
1078 ASSERT_EQ(1u, message_center()->NotificationCount()); 1066 ASSERT_EQ(1u, message_center()->NotificationCount());
1079 } 1067 }
1080 1068
1081 TEST_F(MessageCenterImplTestWithChangeQueue, ForceNotificationFlushRemove) { 1069 TEST_F(MessageCenterImplTestWithChangeQueue, ForceNotificationFlushRemove) {
1082 std::string id("id1"); 1070 std::string id("id1");
1083 1071
1084 scoped_ptr<Notification> notification(CreateSimpleNotification(id)); 1072 std::unique_ptr<Notification> notification(CreateSimpleNotification(id));
1085 message_center()->AddNotification(std::move(notification)); 1073 message_center()->AddNotification(std::move(notification));
1086 1074
1087 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER); 1075 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER);
1088 message_center()->RemoveNotification(id, false); 1076 message_center()->RemoveNotification(id, false);
1089 1077
1090 // Notification is not removed yet. 1078 // Notification is not removed yet.
1091 ASSERT_EQ(1u, message_center()->NotificationCount()); 1079 ASSERT_EQ(1u, message_center()->NotificationCount());
1092 1080
1093 // Forced to update. 1081 // Forced to update.
1094 ForceNotificationFlush(id); 1082 ForceNotificationFlush(id);
1095 1083
1096 // Notification is removed. 1084 // Notification is removed.
1097 ASSERT_EQ(0u, message_center()->NotificationCount()); 1085 ASSERT_EQ(0u, message_center()->NotificationCount());
1098 } 1086 }
1099 1087
1100 TEST_F(MessageCenterImplTestWithChangeQueue, 1088 TEST_F(MessageCenterImplTestWithChangeQueue,
1101 ForceNotificationFlush_ComplexUpdate) { 1089 ForceNotificationFlush_ComplexUpdate) {
1102 std::string id1("id1"); 1090 std::string id1("id1");
1103 std::string id2("id2"); 1091 std::string id2("id2");
1104 std::string id3("id3"); 1092 std::string id3("id3");
1105 1093
1106 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER); 1094 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER);
1107 1095
1108 // Add -> Update (with ID change) -> Remove 1096 // Add -> Update (with ID change) -> Remove
1109 scoped_ptr<Notification> notification(CreateSimpleNotification(id1)); 1097 std::unique_ptr<Notification> notification(CreateSimpleNotification(id1));
1110 message_center()->AddNotification(std::move(notification)); 1098 message_center()->AddNotification(std::move(notification));
1111 notification.reset(CreateSimpleNotification(id2)); 1099 notification.reset(CreateSimpleNotification(id2));
1112 message_center()->UpdateNotification(id1, std::move(notification)); 1100 message_center()->UpdateNotification(id1, std::move(notification));
1113 message_center()->RemoveNotification(id2, false); 1101 message_center()->RemoveNotification(id2, false);
1114 1102
1115 // Add -> Update (with ID change) 1103 // Add -> Update (with ID change)
1116 notification.reset(CreateSimpleNotification(id2)); 1104 notification.reset(CreateSimpleNotification(id2));
1117 message_center()->AddNotification(std::move(notification)); 1105 message_center()->AddNotification(std::move(notification));
1118 notification.reset(CreateSimpleNotification(id3)); 1106 notification.reset(CreateSimpleNotification(id3));
1119 message_center()->UpdateNotification(id2, std::move(notification)); 1107 message_center()->UpdateNotification(id2, std::move(notification));
1120 1108
1121 // Notification is not added since the message center has opened. 1109 // Notification is not added since the message center has opened.
1122 ASSERT_EQ(0u, message_center()->NotificationCount()); 1110 ASSERT_EQ(0u, message_center()->NotificationCount());
1123 1111
1124 // Forced to update. 1112 // Forced to update.
1125 ForceNotificationFlush(id3); 1113 ForceNotificationFlush(id3);
1126 1114
1127 // Confirms the chagnes are applied. 1115 // Confirms the chagnes are applied.
1128 ASSERT_EQ(1u, message_center()->NotificationCount()); 1116 ASSERT_EQ(1u, message_center()->NotificationCount());
1129 } 1117 }
1130 1118
1131 TEST_F(MessageCenterImplTestWithoutChangeQueue, 1119 TEST_F(MessageCenterImplTestWithoutChangeQueue,
1132 UpdateWhileMessageCenterVisible) { 1120 UpdateWhileMessageCenterVisible) {
1133 std::string id("id1"); 1121 std::string id("id1");
1134 std::string id2("id2"); 1122 std::string id2("id2");
1135 NotifierId notifier_id1(NotifierId::APPLICATION, "app1"); 1123 NotifierId notifier_id1(NotifierId::APPLICATION, "app1");
1136 1124
1137 // First, add and update a notification to ensure updates happen 1125 // First, add and update a notification to ensure updates happen
1138 // normally. 1126 // normally.
1139 scoped_ptr<Notification> notification(CreateSimpleNotification(id)); 1127 std::unique_ptr<Notification> notification(CreateSimpleNotification(id));
1140 message_center()->AddNotification(std::move(notification)); 1128 message_center()->AddNotification(std::move(notification));
1141 notification.reset(CreateSimpleNotification(id2)); 1129 notification.reset(CreateSimpleNotification(id2));
1142 message_center()->UpdateNotification(id, std::move(notification)); 1130 message_center()->UpdateNotification(id, std::move(notification));
1143 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id2)); 1131 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id2));
1144 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id)); 1132 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id));
1145 1133
1146 // Then open the message center. 1134 // Then open the message center.
1147 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER); 1135 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER);
1148 1136
1149 // Then update a notification; the update should have propagated. 1137 // Then update a notification; the update should have propagated.
1150 notification.reset(CreateSimpleNotification(id)); 1138 notification.reset(CreateSimpleNotification(id));
1151 message_center()->UpdateNotification(id2, std::move(notification)); 1139 message_center()->UpdateNotification(id2, std::move(notification));
1152 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id2)); 1140 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id2));
1153 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id)); 1141 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id));
1154 } 1142 }
1155 1143
1156 TEST_F(MessageCenterImplTestWithoutChangeQueue, AddWhileMessageCenterVisible) { 1144 TEST_F(MessageCenterImplTestWithoutChangeQueue, AddWhileMessageCenterVisible) {
1157 std::string id("id1"); 1145 std::string id("id1");
1158 1146
1159 // Then open the message center. 1147 // Then open the message center.
1160 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER); 1148 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER);
1161 1149
1162 // Add a notification and confirm the adding should have propagated. 1150 // Add a notification and confirm the adding should have propagated.
1163 scoped_ptr<Notification> notification(CreateSimpleNotification(id)); 1151 std::unique_ptr<Notification> notification(CreateSimpleNotification(id));
1164 message_center()->AddNotification(std::move(notification)); 1152 message_center()->AddNotification(std::move(notification));
1165 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id)); 1153 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id));
1166 } 1154 }
1167 1155
1168 TEST_F(MessageCenterImplTestWithoutChangeQueue, 1156 TEST_F(MessageCenterImplTestWithoutChangeQueue,
1169 RemoveWhileMessageCenterVisible) { 1157 RemoveWhileMessageCenterVisible) {
1170 std::string id("id1"); 1158 std::string id("id1");
1171 1159
1172 // First, add a notification to ensure updates happen normally. 1160 // First, add a notification to ensure updates happen normally.
1173 scoped_ptr<Notification> notification(CreateSimpleNotification(id)); 1161 std::unique_ptr<Notification> notification(CreateSimpleNotification(id));
1174 message_center()->AddNotification(std::move(notification)); 1162 message_center()->AddNotification(std::move(notification));
1175 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id)); 1163 EXPECT_TRUE(message_center()->FindVisibleNotificationById(id));
1176 1164
1177 // Then open the message center. 1165 // Then open the message center.
1178 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER); 1166 message_center()->SetVisibility(VISIBILITY_MESSAGE_CENTER);
1179 1167
1180 // Then update a notification; the update should have propagated. 1168 // Then update a notification; the update should have propagated.
1181 message_center()->RemoveNotification(id, false); 1169 message_center()->RemoveNotification(id, false);
1182 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id)); 1170 EXPECT_FALSE(message_center()->FindVisibleNotificationById(id));
1183 } 1171 }
1184 1172
1185 } // namespace internal 1173 } // namespace internal
1186 } // namespace message_center 1174 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/message_center_impl.cc ('k') | ui/message_center/message_center_tray.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698