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

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

Issue 15582004: Move NotificationDelegate into message_center. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix the ever-changing Mac unit tests. Created 7 years, 7 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/notification_list.h" 5 #include "ui/message_center/notification_list.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/i18n/time_formatting.h" 8 #include "base/i18n/time_formatting.h"
9 #include "base/stringprintf.h" 9 #include "base/stringprintf.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 15 matching lines...) Expand all
26 counter_ = 0; 26 counter_ = 0;
27 } 27 }
28 28
29 protected: 29 protected:
30 // Currently NotificationListTest doesn't care about some fields like title or 30 // Currently NotificationListTest doesn't care about some fields like title or
31 // message, so put a simple template on it. Returns the id of the new 31 // message, so put a simple template on it. Returns the id of the new
32 // notification. 32 // notification.
33 std::string AddNotification(const base::DictionaryValue* optional_fields) { 33 std::string AddNotification(const base::DictionaryValue* optional_fields) {
34 std::string new_id = base::StringPrintf(kIdFormat, counter_); 34 std::string new_id = base::StringPrintf(kIdFormat, counter_);
35 notification_list_->AddNotification( 35 notification_list_->AddNotification(
36 message_center::NOTIFICATION_TYPE_SIMPLE, new_id, 36 message_center::NOTIFICATION_TYPE_SIMPLE,
37 new_id,
37 UTF8ToUTF16(base::StringPrintf(kTitleFormat, counter_)), 38 UTF8ToUTF16(base::StringPrintf(kTitleFormat, counter_)),
38 UTF8ToUTF16(base::StringPrintf(kMessageFormat, counter_)), 39 UTF8ToUTF16(base::StringPrintf(kMessageFormat, counter_)),
39 UTF8ToUTF16(kDisplaySource), kExtensionId, 40 UTF8ToUTF16(kDisplaySource),
40 optional_fields); 41 kExtensionId,
42 optional_fields,
43 NULL);
41 counter_++; 44 counter_++;
42 return new_id; 45 return new_id;
43 } 46 }
44 47
45 // Utility methods of AddNotification. 48 // Utility methods of AddNotification.
46 std::string AddPriorityNotification(NotificationPriority priority) { 49 std::string AddPriorityNotification(NotificationPriority priority) {
47 base::DictionaryValue optional; 50 base::DictionaryValue optional;
48 optional.SetInteger(message_center::kPriorityKey, 51 optional.SetInteger(message_center::kPriorityKey,
49 static_cast<int>(priority)); 52 static_cast<int>(priority));
50 return AddNotification(&optional); 53 return AddNotification(&optional);
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 notification_list()->MarkSinglePopupAsDisplayed(id0); 157 notification_list()->MarkSinglePopupAsDisplayed(id0);
155 EXPECT_EQ(1u, notification_list()->unread_count()); 158 EXPECT_EQ(1u, notification_list()->unread_count());
156 notification_list()->MarkSinglePopupAsDisplayed(id1); 159 notification_list()->MarkSinglePopupAsDisplayed(id1);
157 EXPECT_EQ(0u, notification_list()->unread_count()); 160 EXPECT_EQ(0u, notification_list()->unread_count());
158 } 161 }
159 162
160 TEST_F(NotificationListTest, UpdateNotification) { 163 TEST_F(NotificationListTest, UpdateNotification) {
161 std::string id0 = AddNotification(NULL); 164 std::string id0 = AddNotification(NULL);
162 std::string replaced = id0 + "_replaced"; 165 std::string replaced = id0 + "_replaced";
163 EXPECT_EQ(1u, notification_list()->NotificationCount()); 166 EXPECT_EQ(1u, notification_list()->NotificationCount());
164 notification_list()->UpdateNotificationMessage( 167 notification_list()->UpdateNotificationMessage(id0,
165 id0, replaced, UTF8ToUTF16("newtitle"), UTF8ToUTF16("newbody"), NULL); 168 replaced,
169 UTF8ToUTF16("newtitle"),
170 UTF8ToUTF16("newbody"),
171 NULL,
172 NULL);
166 EXPECT_EQ(1u, notification_list()->NotificationCount()); 173 EXPECT_EQ(1u, notification_list()->NotificationCount());
167 const NotificationList::Notifications& notifications = 174 const NotificationList::Notifications& notifications =
168 notification_list()->GetNotifications(); 175 notification_list()->GetNotifications();
169 EXPECT_EQ(replaced, (*notifications.begin())->id()); 176 EXPECT_EQ(replaced, (*notifications.begin())->id());
170 EXPECT_EQ(UTF8ToUTF16("newtitle"), (*notifications.begin())->title()); 177 EXPECT_EQ(UTF8ToUTF16("newtitle"), (*notifications.begin())->title());
171 EXPECT_EQ(UTF8ToUTF16("newbody"), (*notifications.begin())->message()); 178 EXPECT_EQ(UTF8ToUTF16("newbody"), (*notifications.begin())->message());
172 } 179 }
173 180
174 TEST_F(NotificationListTest, GetNotificationsBySourceOrExtensions) { 181 TEST_F(NotificationListTest, GetNotificationsBySourceOrExtensions) {
175 notification_list()->AddNotification( 182 notification_list()->AddNotification(message_center::NOTIFICATION_TYPE_SIMPLE,
176 message_center::NOTIFICATION_TYPE_SIMPLE, "id0", UTF8ToUTF16("title0"), 183 "id0",
177 UTF8ToUTF16("message0"), UTF8ToUTF16("source0"), "ext0", NULL); 184 UTF8ToUTF16("title0"),
178 notification_list()->AddNotification( 185 UTF8ToUTF16("message0"),
179 message_center::NOTIFICATION_TYPE_SIMPLE, "id1", UTF8ToUTF16("title1"), 186 UTF8ToUTF16("source0"),
180 UTF8ToUTF16("message1"), UTF8ToUTF16("source0"), "ext0", NULL); 187 "ext0",
181 notification_list()->AddNotification( 188 NULL,
182 message_center::NOTIFICATION_TYPE_SIMPLE, "id2", UTF8ToUTF16("title1"), 189 NULL);
183 UTF8ToUTF16("message1"), UTF8ToUTF16("source1"), "ext0", NULL); 190 notification_list()->AddNotification(message_center::NOTIFICATION_TYPE_SIMPLE,
184 notification_list()->AddNotification( 191 "id1",
185 message_center::NOTIFICATION_TYPE_SIMPLE, "id3", UTF8ToUTF16("title1"), 192 UTF8ToUTF16("title1"),
186 UTF8ToUTF16("message1"), UTF8ToUTF16("source2"), "ext1", NULL); 193 UTF8ToUTF16("message1"),
194 UTF8ToUTF16("source0"),
195 "ext0",
196 NULL,
197 NULL);
198 notification_list()->AddNotification(message_center::NOTIFICATION_TYPE_SIMPLE,
199 "id2",
200 UTF8ToUTF16("title1"),
201 UTF8ToUTF16("message1"),
202 UTF8ToUTF16("source1"),
203 "ext0",
204 NULL,
205 NULL);
206 notification_list()->AddNotification(message_center::NOTIFICATION_TYPE_SIMPLE,
207 "id3",
208 UTF8ToUTF16("title1"),
209 UTF8ToUTF16("message1"),
210 UTF8ToUTF16("source2"),
211 "ext1",
212 NULL,
213 NULL);
187 214
188 NotificationList::Notifications by_source = 215 NotificationList::Notifications by_source =
189 notification_list()->GetNotificationsBySource("id0"); 216 notification_list()->GetNotificationsBySource("id0");
190 EXPECT_TRUE(IsInNotifications(by_source, "id0")); 217 EXPECT_TRUE(IsInNotifications(by_source, "id0"));
191 EXPECT_TRUE(IsInNotifications(by_source, "id1")); 218 EXPECT_TRUE(IsInNotifications(by_source, "id1"));
192 EXPECT_FALSE(IsInNotifications(by_source, "id2")); 219 EXPECT_FALSE(IsInNotifications(by_source, "id2"));
193 EXPECT_FALSE(IsInNotifications(by_source, "id3")); 220 EXPECT_FALSE(IsInNotifications(by_source, "id3"));
194 221
195 NotificationList::Notifications by_extension = 222 NotificationList::Notifications by_extension =
196 notification_list()->GetNotificationsByExtension("id0"); 223 notification_list()->GetNotificationsByExtension("id0");
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 EXPECT_EQ(1u, GetPopupCounts()); 301 EXPECT_EQ(1u, GetPopupCounts());
275 } 302 }
276 303
277 TEST_F(NotificationListTest, PriorityPromotion) { 304 TEST_F(NotificationListTest, PriorityPromotion) {
278 std::string id0 = AddPriorityNotification(LOW_PRIORITY); 305 std::string id0 = AddPriorityNotification(LOW_PRIORITY);
279 std::string replaced = id0 + "_replaced"; 306 std::string replaced = id0 + "_replaced";
280 EXPECT_EQ(1u, notification_list()->NotificationCount()); 307 EXPECT_EQ(1u, notification_list()->NotificationCount());
281 EXPECT_EQ(0u, GetPopupCounts()); 308 EXPECT_EQ(0u, GetPopupCounts());
282 base::DictionaryValue optional; 309 base::DictionaryValue optional;
283 optional.SetInteger(message_center::kPriorityKey, 1); 310 optional.SetInteger(message_center::kPriorityKey, 1);
284 notification_list()->UpdateNotificationMessage( 311 notification_list()->UpdateNotificationMessage(id0,
285 id0, replaced, UTF8ToUTF16("newtitle"), UTF8ToUTF16("newbody"), 312 replaced,
286 &optional); 313 UTF8ToUTF16("newtitle"),
314 UTF8ToUTF16("newbody"),
315 &optional,
316 NULL);
287 EXPECT_EQ(1u, notification_list()->NotificationCount()); 317 EXPECT_EQ(1u, notification_list()->NotificationCount());
288 EXPECT_EQ(1u, GetPopupCounts()); 318 EXPECT_EQ(1u, GetPopupCounts());
289 const NotificationList::Notifications& notifications = 319 const NotificationList::Notifications& notifications =
290 notification_list()->GetNotifications(); 320 notification_list()->GetNotifications();
291 EXPECT_EQ(replaced, (*notifications.begin())->id()); 321 EXPECT_EQ(replaced, (*notifications.begin())->id());
292 EXPECT_EQ(UTF8ToUTF16("newtitle"), (*notifications.begin())->title()); 322 EXPECT_EQ(UTF8ToUTF16("newtitle"), (*notifications.begin())->title());
293 EXPECT_EQ(UTF8ToUTF16("newbody"), (*notifications.begin())->message()); 323 EXPECT_EQ(UTF8ToUTF16("newbody"), (*notifications.begin())->message());
294 EXPECT_EQ(1, (*notifications.begin())->priority()); 324 EXPECT_EQ(1, (*notifications.begin())->priority());
295 } 325 }
296 326
297 TEST_F(NotificationListTest, PriorityPromotionWithPopups) { 327 TEST_F(NotificationListTest, PriorityPromotionWithPopups) {
298 std::string id0 = AddPriorityNotification(LOW_PRIORITY); 328 std::string id0 = AddPriorityNotification(LOW_PRIORITY);
299 std::string id1 = AddPriorityNotification(DEFAULT_PRIORITY); 329 std::string id1 = AddPriorityNotification(DEFAULT_PRIORITY);
300 EXPECT_EQ(1u, GetPopupCounts()); 330 EXPECT_EQ(1u, GetPopupCounts());
301 notification_list()->MarkSinglePopupAsShown(id1, true); 331 notification_list()->MarkSinglePopupAsShown(id1, true);
302 EXPECT_EQ(0u, GetPopupCounts()); 332 EXPECT_EQ(0u, GetPopupCounts());
303 333
304 // id0 promoted to LOW->DEFAULT, it'll appear as toast (popup). 334 // id0 promoted to LOW->DEFAULT, it'll appear as toast (popup).
305 base::DictionaryValue priority_default; 335 base::DictionaryValue priority_default;
306 priority_default.SetInteger(message_center::kPriorityKey, 336 priority_default.SetInteger(message_center::kPriorityKey,
307 static_cast<int>(DEFAULT_PRIORITY)); 337 static_cast<int>(DEFAULT_PRIORITY));
308 notification_list()->UpdateNotificationMessage( 338 notification_list()->UpdateNotificationMessage(id0,
309 id0, id0, UTF8ToUTF16("newtitle"), UTF8ToUTF16("newbody"), 339 id0,
310 &priority_default); 340 UTF8ToUTF16("newtitle"),
341 UTF8ToUTF16("newbody"),
342 &priority_default,
343 NULL);
311 EXPECT_EQ(1u, GetPopupCounts()); 344 EXPECT_EQ(1u, GetPopupCounts());
312 notification_list()->MarkSinglePopupAsShown(id0, true); 345 notification_list()->MarkSinglePopupAsShown(id0, true);
313 EXPECT_EQ(0u, GetPopupCounts()); 346 EXPECT_EQ(0u, GetPopupCounts());
314 347
315 // update with no promotion change for id0, it won't appear as a toast. 348 // update with no promotion change for id0, it won't appear as a toast.
316 notification_list()->UpdateNotificationMessage( 349 notification_list()->UpdateNotificationMessage(
317 id0, id0, UTF8ToUTF16("newtitle2"), UTF8ToUTF16("newbody2"), 350 id0, id0, UTF8ToUTF16("newtitle2"), UTF8ToUTF16("newbody2"), NULL, NULL);
318 NULL);
319 EXPECT_EQ(0u, GetPopupCounts()); 351 EXPECT_EQ(0u, GetPopupCounts());
320 352
321 // id1 promoted to DEFAULT->HIGH, it'll appear as toast (popup). 353 // id1 promoted to DEFAULT->HIGH, it'll appear as toast (popup).
322 base::DictionaryValue priority_high; 354 base::DictionaryValue priority_high;
323 priority_high.SetInteger(message_center::kPriorityKey, 355 priority_high.SetInteger(message_center::kPriorityKey,
324 static_cast<int>(HIGH_PRIORITY)); 356 static_cast<int>(HIGH_PRIORITY));
325 notification_list()->UpdateNotificationMessage( 357 notification_list()->UpdateNotificationMessage(id1,
326 id1, id1, UTF8ToUTF16("newtitle"), UTF8ToUTF16("newbody"), 358 id1,
327 &priority_high); 359 UTF8ToUTF16("newtitle"),
360 UTF8ToUTF16("newbody"),
361 &priority_high,
362 NULL);
328 EXPECT_EQ(1u, GetPopupCounts()); 363 EXPECT_EQ(1u, GetPopupCounts());
329 notification_list()->MarkSinglePopupAsShown(id1, true); 364 notification_list()->MarkSinglePopupAsShown(id1, true);
330 EXPECT_EQ(0u, GetPopupCounts()); 365 EXPECT_EQ(0u, GetPopupCounts());
331 366
332 // id1 promoted to HIGH->MAX, it'll appear as toast again. 367 // id1 promoted to HIGH->MAX, it'll appear as toast again.
333 base::DictionaryValue priority_max; 368 base::DictionaryValue priority_max;
334 priority_max.SetInteger(message_center::kPriorityKey, 369 priority_max.SetInteger(message_center::kPriorityKey,
335 static_cast<int>(MAX_PRIORITY)); 370 static_cast<int>(MAX_PRIORITY));
336 notification_list()->UpdateNotificationMessage( 371 notification_list()->UpdateNotificationMessage(id1,
337 id1, id1, UTF8ToUTF16("newtitle2"), UTF8ToUTF16("newbody2"), 372 id1,
338 &priority_max); 373 UTF8ToUTF16("newtitle2"),
374 UTF8ToUTF16("newbody2"),
375 &priority_max,
376 NULL);
339 EXPECT_EQ(1u, GetPopupCounts()); 377 EXPECT_EQ(1u, GetPopupCounts());
340 notification_list()->MarkSinglePopupAsShown(id1, true); 378 notification_list()->MarkSinglePopupAsShown(id1, true);
341 EXPECT_EQ(0u, GetPopupCounts()); 379 EXPECT_EQ(0u, GetPopupCounts());
342 380
343 // id1 demoted to MAX->DEFAULT, no appearing as toast. 381 // id1 demoted to MAX->DEFAULT, no appearing as toast.
344 notification_list()->UpdateNotificationMessage( 382 notification_list()->UpdateNotificationMessage(id1,
345 id1, id1, UTF8ToUTF16("newtitle3"), UTF8ToUTF16("newbody3"), 383 id1,
346 &priority_default); 384 UTF8ToUTF16("newtitle3"),
385 UTF8ToUTF16("newbody3"),
386 &priority_default,
387 NULL);
347 EXPECT_EQ(0u, GetPopupCounts()); 388 EXPECT_EQ(0u, GetPopupCounts());
348 } 389 }
349 390
350 TEST_F(NotificationListTest, NotificationOrderAndPriority) { 391 TEST_F(NotificationListTest, NotificationOrderAndPriority) {
351 base::Time now = base::Time::Now(); 392 base::Time now = base::Time::Now();
352 base::DictionaryValue optional; 393 base::DictionaryValue optional;
353 SetupTimestampKey(now, &optional); 394 SetupTimestampKey(now, &optional);
354 optional.SetInteger(message_center::kPriorityKey, 2); 395 optional.SetInteger(message_center::kPriorityKey, 2);
355 std::string max_id = AddNotification(&optional); 396 std::string max_id = AddNotification(&optional);
356 now += base::TimeDelta::FromSeconds(1); 397 now += base::TimeDelta::FromSeconds(1);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 EXPECT_FALSE(n1->shown_as_popup()); 506 EXPECT_FALSE(n1->shown_as_popup());
466 EXPECT_TRUE(n1->is_read()); 507 EXPECT_TRUE(n1->is_read());
467 508
468 notification_list()->MarkSinglePopupAsShown(id1, true); 509 notification_list()->MarkSinglePopupAsShown(id1, true);
469 510
470 n1 = GetNotification(id1); 511 n1 = GetNotification(id1);
471 EXPECT_TRUE(n1->shown_as_popup()); 512 EXPECT_TRUE(n1->shown_as_popup());
472 EXPECT_TRUE(n1->is_read()); 513 EXPECT_TRUE(n1->is_read());
473 514
474 const std::string replaced("test-replaced-id"); 515 const std::string replaced("test-replaced-id");
475 notification_list()->UpdateNotificationMessage( 516 notification_list()->UpdateNotificationMessage(id1,
476 id1, replaced, UTF8ToUTF16("newtitle"), UTF8ToUTF16("newbody"), NULL); 517 replaced,
518 UTF8ToUTF16("newtitle"),
519 UTF8ToUTF16("newbody"),
520 NULL,
521 NULL);
477 n1 = GetNotification(id1); 522 n1 = GetNotification(id1);
478 EXPECT_TRUE(n1 == NULL); 523 EXPECT_TRUE(n1 == NULL);
479 const Notification* nr = GetNotification(replaced); 524 const Notification* nr = GetNotification(replaced);
480 EXPECT_TRUE(nr->shown_as_popup()); 525 EXPECT_TRUE(nr->shown_as_popup());
481 EXPECT_TRUE(nr->is_read()); 526 EXPECT_TRUE(nr->is_read());
482 } 527 }
483 528
484 TEST_F(NotificationListTest, QuietMode) { 529 TEST_F(NotificationListTest, QuietMode) {
485 notification_list()->SetQuietMode(true); 530 notification_list()->SetQuietMode(true);
486 AddNotification(NULL); 531 AddNotification(NULL);
487 AddPriorityNotification(HIGH_PRIORITY); 532 AddPriorityNotification(HIGH_PRIORITY);
488 AddPriorityNotification(MAX_PRIORITY); 533 AddPriorityNotification(MAX_PRIORITY);
489 EXPECT_EQ(3u, notification_list()->NotificationCount()); 534 EXPECT_EQ(3u, notification_list()->NotificationCount());
490 EXPECT_EQ(0u, GetPopupCounts()); 535 EXPECT_EQ(0u, GetPopupCounts());
491 // TODO(mukai): fix here when notification_list distinguish dismiss by quiet 536 // TODO(mukai): fix here when notification_list distinguish dismiss by quiet
492 // mode and by user operation. 537 // mode and by user operation.
493 EXPECT_EQ(0u, notification_list()->unread_count()); 538 EXPECT_EQ(0u, notification_list()->unread_count());
494 539
495 notification_list()->SetQuietMode(false); 540 notification_list()->SetQuietMode(false);
496 AddNotification(NULL); 541 AddNotification(NULL);
497 EXPECT_EQ(4u, notification_list()->NotificationCount()); 542 EXPECT_EQ(4u, notification_list()->NotificationCount());
498 EXPECT_EQ(1u, GetPopupCounts()); 543 EXPECT_EQ(1u, GetPopupCounts());
499 544
500 // TODO(mukai): Add test of quiet mode with expiration. 545 // TODO(mukai): Add test of quiet mode with expiration.
501 } 546 }
502 547
503 } // namespace test 548 } // namespace test
504 } // namespace message_center 549 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/notification_list.cc ('k') | ui/message_center/views/message_center_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698