OLD | NEW |
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 14 matching lines...) Expand all Loading... |
25 notification_list_.reset(new NotificationList()); | 25 notification_list_.reset(new NotificationList()); |
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 scoped_ptr<Notification> notification(new Notification( |
36 message_center::NOTIFICATION_TYPE_SIMPLE, | 36 message_center::NOTIFICATION_TYPE_SIMPLE, |
37 new_id, | 37 new_id, |
38 UTF8ToUTF16(base::StringPrintf(kTitleFormat, counter_)), | 38 UTF8ToUTF16(base::StringPrintf(kTitleFormat, counter_)), |
39 UTF8ToUTF16(base::StringPrintf(kMessageFormat, counter_)), | 39 UTF8ToUTF16(base::StringPrintf(kMessageFormat, counter_)), |
| 40 gfx::Image(), |
40 UTF8ToUTF16(kDisplaySource), | 41 UTF8ToUTF16(kDisplaySource), |
41 kExtensionId, | 42 kExtensionId, |
42 optional_fields, | 43 optional_fields, |
43 NULL); | 44 NULL)); |
| 45 notification_list_->AddNotification(notification.Pass()); |
44 counter_++; | 46 counter_++; |
45 return new_id; | 47 return new_id; |
46 } | 48 } |
47 | 49 |
48 // Utility methods of AddNotification. | 50 // Utility methods of AddNotification. |
49 std::string AddPriorityNotification(NotificationPriority priority) { | 51 std::string AddPriorityNotification(NotificationPriority priority) { |
50 base::DictionaryValue optional; | 52 base::DictionaryValue optional; |
51 optional.SetInteger(message_center::kPriorityKey, | 53 optional.SetInteger(message_center::kPriorityKey, |
52 static_cast<int>(priority)); | 54 static_cast<int>(priority)); |
53 return AddNotification(&optional); | 55 return AddNotification(&optional); |
(...skipping 11 matching lines...) Expand all Loading... |
65 Notification* GetNotification(const std::string& id) { | 67 Notification* GetNotification(const std::string& id) { |
66 NotificationList::Notifications::iterator iter = | 68 NotificationList::Notifications::iterator iter = |
67 notification_list()->GetNotification(id); | 69 notification_list()->GetNotification(id); |
68 if (iter == notification_list()->GetNotifications().end()) | 70 if (iter == notification_list()->GetNotifications().end()) |
69 return NULL; | 71 return NULL; |
70 return *iter; | 72 return *iter; |
71 } | 73 } |
72 | 74 |
73 NotificationList* notification_list() { return notification_list_.get(); } | 75 NotificationList* notification_list() { return notification_list_.get(); } |
74 | 76 |
75 private: | |
76 static const char kIdFormat[]; | 77 static const char kIdFormat[]; |
77 static const char kTitleFormat[]; | 78 static const char kTitleFormat[]; |
78 static const char kMessageFormat[]; | 79 static const char kMessageFormat[]; |
79 static const char kDisplaySource[]; | 80 static const char kDisplaySource[]; |
80 static const char kExtensionId[]; | 81 static const char kExtensionId[]; |
81 | 82 |
| 83 private: |
82 scoped_ptr<NotificationList> notification_list_; | 84 scoped_ptr<NotificationList> notification_list_; |
83 size_t counter_; | 85 size_t counter_; |
84 | 86 |
85 DISALLOW_COPY_AND_ASSIGN(NotificationListTest); | 87 DISALLOW_COPY_AND_ASSIGN(NotificationListTest); |
86 }; | 88 }; |
87 | 89 |
88 bool IsInNotifications(const NotificationList::Notifications& notifications, | 90 bool IsInNotifications(const NotificationList::Notifications& notifications, |
89 const std::string& id) { | 91 const std::string& id) { |
90 for (NotificationList::Notifications::const_iterator iter = | 92 for (NotificationList::Notifications::const_iterator iter = |
91 notifications.begin(); iter != notifications.end(); ++iter) { | 93 notifications.begin(); iter != notifications.end(); ++iter) { |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 notification_list()->MarkSinglePopupAsDisplayed(id0); | 159 notification_list()->MarkSinglePopupAsDisplayed(id0); |
158 EXPECT_EQ(1u, notification_list()->unread_count()); | 160 EXPECT_EQ(1u, notification_list()->unread_count()); |
159 notification_list()->MarkSinglePopupAsDisplayed(id1); | 161 notification_list()->MarkSinglePopupAsDisplayed(id1); |
160 EXPECT_EQ(0u, notification_list()->unread_count()); | 162 EXPECT_EQ(0u, notification_list()->unread_count()); |
161 } | 163 } |
162 | 164 |
163 TEST_F(NotificationListTest, UpdateNotification) { | 165 TEST_F(NotificationListTest, UpdateNotification) { |
164 std::string id0 = AddNotification(NULL); | 166 std::string id0 = AddNotification(NULL); |
165 std::string replaced = id0 + "_replaced"; | 167 std::string replaced = id0 + "_replaced"; |
166 EXPECT_EQ(1u, notification_list()->NotificationCount()); | 168 EXPECT_EQ(1u, notification_list()->NotificationCount()); |
167 notification_list()->UpdateNotificationMessage(id0, | 169 scoped_ptr<Notification> notification( |
168 replaced, | 170 new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
169 UTF8ToUTF16("newtitle"), | 171 replaced, |
170 UTF8ToUTF16("newbody"), | 172 UTF8ToUTF16("newtitle"), |
171 NULL, | 173 UTF8ToUTF16("newbody"), |
172 NULL); | 174 gfx::Image(), |
| 175 UTF8ToUTF16(kDisplaySource), |
| 176 kExtensionId, |
| 177 NULL, |
| 178 NULL)); |
| 179 notification_list()->UpdateNotificationMessage(id0, notification.Pass()); |
173 EXPECT_EQ(1u, notification_list()->NotificationCount()); | 180 EXPECT_EQ(1u, notification_list()->NotificationCount()); |
174 const NotificationList::Notifications& notifications = | 181 const NotificationList::Notifications& notifications = |
175 notification_list()->GetNotifications(); | 182 notification_list()->GetNotifications(); |
176 EXPECT_EQ(replaced, (*notifications.begin())->id()); | 183 EXPECT_EQ(replaced, (*notifications.begin())->id()); |
177 EXPECT_EQ(UTF8ToUTF16("newtitle"), (*notifications.begin())->title()); | 184 EXPECT_EQ(UTF8ToUTF16("newtitle"), (*notifications.begin())->title()); |
178 EXPECT_EQ(UTF8ToUTF16("newbody"), (*notifications.begin())->message()); | 185 EXPECT_EQ(UTF8ToUTF16("newbody"), (*notifications.begin())->message()); |
179 } | 186 } |
180 | 187 |
181 TEST_F(NotificationListTest, GetNotificationsBySourceOrExtensions) { | 188 TEST_F(NotificationListTest, GetNotificationsBySourceOrExtensions) { |
182 notification_list()->AddNotification(message_center::NOTIFICATION_TYPE_SIMPLE, | 189 scoped_ptr<Notification> notification( |
183 "id0", | 190 new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
184 UTF8ToUTF16("title0"), | 191 "id0", |
185 UTF8ToUTF16("message0"), | 192 UTF8ToUTF16("title0"), |
186 UTF8ToUTF16("source0"), | 193 UTF8ToUTF16("message0"), |
187 "ext0", | 194 gfx::Image(), |
188 NULL, | 195 UTF8ToUTF16("source0"), |
189 NULL); | 196 "ext0", |
190 notification_list()->AddNotification(message_center::NOTIFICATION_TYPE_SIMPLE, | 197 NULL, |
191 "id1", | 198 NULL)); |
192 UTF8ToUTF16("title1"), | 199 notification_list()->AddNotification(notification.Pass()); |
193 UTF8ToUTF16("message1"), | 200 notification.reset(new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
194 UTF8ToUTF16("source0"), | 201 "id1", |
195 "ext0", | 202 UTF8ToUTF16("title1"), |
196 NULL, | 203 UTF8ToUTF16("message1"), |
197 NULL); | 204 gfx::Image(), |
198 notification_list()->AddNotification(message_center::NOTIFICATION_TYPE_SIMPLE, | 205 UTF8ToUTF16("source0"), |
199 "id2", | 206 "ext0", |
200 UTF8ToUTF16("title1"), | 207 NULL, |
201 UTF8ToUTF16("message1"), | 208 NULL)); |
202 UTF8ToUTF16("source1"), | 209 notification_list()->AddNotification(notification.Pass()); |
203 "ext0", | 210 notification.reset(new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
204 NULL, | 211 "id2", |
205 NULL); | 212 UTF8ToUTF16("title1"), |
206 notification_list()->AddNotification(message_center::NOTIFICATION_TYPE_SIMPLE, | 213 UTF8ToUTF16("message1"), |
207 "id3", | 214 gfx::Image(), |
208 UTF8ToUTF16("title1"), | 215 UTF8ToUTF16("source1"), |
209 UTF8ToUTF16("message1"), | 216 "ext0", |
210 UTF8ToUTF16("source2"), | 217 NULL, |
211 "ext1", | 218 NULL)); |
212 NULL, | 219 notification_list()->AddNotification(notification.Pass()); |
213 NULL); | 220 notification.reset(new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
| 221 "id3", |
| 222 UTF8ToUTF16("title1"), |
| 223 UTF8ToUTF16("message1"), |
| 224 gfx::Image(), |
| 225 UTF8ToUTF16("source2"), |
| 226 "ext1", |
| 227 NULL, |
| 228 NULL)); |
| 229 notification_list()->AddNotification(notification.Pass()); |
214 | 230 |
215 NotificationList::Notifications by_source = | 231 NotificationList::Notifications by_source = |
216 notification_list()->GetNotificationsBySource("id0"); | 232 notification_list()->GetNotificationsBySource("id0"); |
217 EXPECT_TRUE(IsInNotifications(by_source, "id0")); | 233 EXPECT_TRUE(IsInNotifications(by_source, "id0")); |
218 EXPECT_TRUE(IsInNotifications(by_source, "id1")); | 234 EXPECT_TRUE(IsInNotifications(by_source, "id1")); |
219 EXPECT_FALSE(IsInNotifications(by_source, "id2")); | 235 EXPECT_FALSE(IsInNotifications(by_source, "id2")); |
220 EXPECT_FALSE(IsInNotifications(by_source, "id3")); | 236 EXPECT_FALSE(IsInNotifications(by_source, "id3")); |
221 | 237 |
222 NotificationList::Notifications by_extension = | 238 NotificationList::Notifications by_extension = |
223 notification_list()->GetNotificationsByExtension("id0"); | 239 notification_list()->GetNotificationsByExtension("id0"); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 EXPECT_EQ(1u, GetPopupCounts()); | 317 EXPECT_EQ(1u, GetPopupCounts()); |
302 } | 318 } |
303 | 319 |
304 TEST_F(NotificationListTest, PriorityPromotion) { | 320 TEST_F(NotificationListTest, PriorityPromotion) { |
305 std::string id0 = AddPriorityNotification(LOW_PRIORITY); | 321 std::string id0 = AddPriorityNotification(LOW_PRIORITY); |
306 std::string replaced = id0 + "_replaced"; | 322 std::string replaced = id0 + "_replaced"; |
307 EXPECT_EQ(1u, notification_list()->NotificationCount()); | 323 EXPECT_EQ(1u, notification_list()->NotificationCount()); |
308 EXPECT_EQ(0u, GetPopupCounts()); | 324 EXPECT_EQ(0u, GetPopupCounts()); |
309 base::DictionaryValue optional; | 325 base::DictionaryValue optional; |
310 optional.SetInteger(message_center::kPriorityKey, 1); | 326 optional.SetInteger(message_center::kPriorityKey, 1); |
311 notification_list()->UpdateNotificationMessage(id0, | 327 scoped_ptr<Notification> notification( |
312 replaced, | 328 new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
313 UTF8ToUTF16("newtitle"), | 329 replaced, |
314 UTF8ToUTF16("newbody"), | 330 UTF8ToUTF16("newtitle"), |
315 &optional, | 331 UTF8ToUTF16("newbody"), |
316 NULL); | 332 gfx::Image(), |
| 333 UTF8ToUTF16(kDisplaySource), |
| 334 kExtensionId, |
| 335 &optional, |
| 336 NULL)); |
| 337 notification_list()->UpdateNotificationMessage(id0, notification.Pass()); |
317 EXPECT_EQ(1u, notification_list()->NotificationCount()); | 338 EXPECT_EQ(1u, notification_list()->NotificationCount()); |
318 EXPECT_EQ(1u, GetPopupCounts()); | 339 EXPECT_EQ(1u, GetPopupCounts()); |
319 const NotificationList::Notifications& notifications = | 340 const NotificationList::Notifications& notifications = |
320 notification_list()->GetNotifications(); | 341 notification_list()->GetNotifications(); |
321 EXPECT_EQ(replaced, (*notifications.begin())->id()); | 342 EXPECT_EQ(replaced, (*notifications.begin())->id()); |
322 EXPECT_EQ(UTF8ToUTF16("newtitle"), (*notifications.begin())->title()); | 343 EXPECT_EQ(UTF8ToUTF16("newtitle"), (*notifications.begin())->title()); |
323 EXPECT_EQ(UTF8ToUTF16("newbody"), (*notifications.begin())->message()); | 344 EXPECT_EQ(UTF8ToUTF16("newbody"), (*notifications.begin())->message()); |
324 EXPECT_EQ(1, (*notifications.begin())->priority()); | 345 EXPECT_EQ(1, (*notifications.begin())->priority()); |
325 } | 346 } |
326 | 347 |
327 TEST_F(NotificationListTest, PriorityPromotionWithPopups) { | 348 TEST_F(NotificationListTest, PriorityPromotionWithPopups) { |
328 std::string id0 = AddPriorityNotification(LOW_PRIORITY); | 349 std::string id0 = AddPriorityNotification(LOW_PRIORITY); |
329 std::string id1 = AddPriorityNotification(DEFAULT_PRIORITY); | 350 std::string id1 = AddPriorityNotification(DEFAULT_PRIORITY); |
330 EXPECT_EQ(1u, GetPopupCounts()); | 351 EXPECT_EQ(1u, GetPopupCounts()); |
331 notification_list()->MarkSinglePopupAsShown(id1, true); | 352 notification_list()->MarkSinglePopupAsShown(id1, true); |
332 EXPECT_EQ(0u, GetPopupCounts()); | 353 EXPECT_EQ(0u, GetPopupCounts()); |
333 | 354 |
334 // id0 promoted to LOW->DEFAULT, it'll appear as toast (popup). | 355 // id0 promoted to LOW->DEFAULT, it'll appear as toast (popup). |
335 base::DictionaryValue priority_default; | 356 base::DictionaryValue priority_default; |
336 priority_default.SetInteger(message_center::kPriorityKey, | 357 priority_default.SetInteger(message_center::kPriorityKey, |
337 static_cast<int>(DEFAULT_PRIORITY)); | 358 static_cast<int>(DEFAULT_PRIORITY)); |
338 notification_list()->UpdateNotificationMessage(id0, | 359 scoped_ptr<Notification> notification( |
339 id0, | 360 new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
340 UTF8ToUTF16("newtitle"), | 361 id0, |
341 UTF8ToUTF16("newbody"), | 362 UTF8ToUTF16("newtitle"), |
342 &priority_default, | 363 UTF8ToUTF16("newbody"), |
343 NULL); | 364 gfx::Image(), |
| 365 UTF8ToUTF16(kDisplaySource), |
| 366 kExtensionId, |
| 367 &priority_default, |
| 368 NULL)); |
| 369 notification_list()->UpdateNotificationMessage(id0, notification.Pass()); |
344 EXPECT_EQ(1u, GetPopupCounts()); | 370 EXPECT_EQ(1u, GetPopupCounts()); |
345 notification_list()->MarkSinglePopupAsShown(id0, true); | 371 notification_list()->MarkSinglePopupAsShown(id0, true); |
346 EXPECT_EQ(0u, GetPopupCounts()); | 372 EXPECT_EQ(0u, GetPopupCounts()); |
347 | 373 |
348 // update with no promotion change for id0, it won't appear as a toast. | 374 // update with no promotion change for id0, it won't appear as a toast. |
349 notification_list()->UpdateNotificationMessage( | 375 notification.reset(new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
350 id0, id0, UTF8ToUTF16("newtitle2"), UTF8ToUTF16("newbody2"), NULL, NULL); | 376 id0, |
| 377 UTF8ToUTF16("newtitle2"), |
| 378 UTF8ToUTF16("newbody2"), |
| 379 gfx::Image(), |
| 380 UTF8ToUTF16(kDisplaySource), |
| 381 kExtensionId, |
| 382 NULL, |
| 383 NULL)); |
| 384 notification_list()->UpdateNotificationMessage(id0, notification.Pass()); |
351 EXPECT_EQ(0u, GetPopupCounts()); | 385 EXPECT_EQ(0u, GetPopupCounts()); |
352 | 386 |
353 // id1 promoted to DEFAULT->HIGH, it'll appear as toast (popup). | 387 // id1 promoted to DEFAULT->HIGH, it'll appear as toast (popup). |
354 base::DictionaryValue priority_high; | 388 base::DictionaryValue priority_high; |
355 priority_high.SetInteger(message_center::kPriorityKey, | 389 priority_high.SetInteger(message_center::kPriorityKey, |
356 static_cast<int>(HIGH_PRIORITY)); | 390 static_cast<int>(HIGH_PRIORITY)); |
357 notification_list()->UpdateNotificationMessage(id1, | 391 notification.reset(new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
358 id1, | 392 id1, |
359 UTF8ToUTF16("newtitle"), | 393 UTF8ToUTF16("newtitle"), |
360 UTF8ToUTF16("newbody"), | 394 UTF8ToUTF16("newbody"), |
361 &priority_high, | 395 gfx::Image(), |
362 NULL); | 396 UTF8ToUTF16(kDisplaySource), |
| 397 kExtensionId, |
| 398 &priority_high, |
| 399 NULL)); |
| 400 notification_list()->UpdateNotificationMessage(id1, notification.Pass()); |
363 EXPECT_EQ(1u, GetPopupCounts()); | 401 EXPECT_EQ(1u, GetPopupCounts()); |
364 notification_list()->MarkSinglePopupAsShown(id1, true); | 402 notification_list()->MarkSinglePopupAsShown(id1, true); |
365 EXPECT_EQ(0u, GetPopupCounts()); | 403 EXPECT_EQ(0u, GetPopupCounts()); |
366 | 404 |
367 // id1 promoted to HIGH->MAX, it'll appear as toast again. | 405 // id1 promoted to HIGH->MAX, it'll appear as toast again. |
368 base::DictionaryValue priority_max; | 406 base::DictionaryValue priority_max; |
369 priority_max.SetInteger(message_center::kPriorityKey, | 407 priority_max.SetInteger(message_center::kPriorityKey, |
370 static_cast<int>(MAX_PRIORITY)); | 408 static_cast<int>(MAX_PRIORITY)); |
371 notification_list()->UpdateNotificationMessage(id1, | 409 notification.reset(new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
372 id1, | 410 id1, |
373 UTF8ToUTF16("newtitle2"), | 411 UTF8ToUTF16("newtitle2"), |
374 UTF8ToUTF16("newbody2"), | 412 UTF8ToUTF16("newbody2"), |
375 &priority_max, | 413 gfx::Image(), |
376 NULL); | 414 UTF8ToUTF16(kDisplaySource), |
| 415 kExtensionId, |
| 416 &priority_max, |
| 417 NULL)); |
| 418 notification_list()->UpdateNotificationMessage(id1, notification.Pass()); |
377 EXPECT_EQ(1u, GetPopupCounts()); | 419 EXPECT_EQ(1u, GetPopupCounts()); |
378 notification_list()->MarkSinglePopupAsShown(id1, true); | 420 notification_list()->MarkSinglePopupAsShown(id1, true); |
379 EXPECT_EQ(0u, GetPopupCounts()); | 421 EXPECT_EQ(0u, GetPopupCounts()); |
380 | 422 |
381 // id1 demoted to MAX->DEFAULT, no appearing as toast. | 423 // id1 demoted to MAX->DEFAULT, no appearing as toast. |
382 notification_list()->UpdateNotificationMessage(id1, | 424 notification.reset(new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
383 id1, | 425 id1, |
384 UTF8ToUTF16("newtitle3"), | 426 UTF8ToUTF16("newtitle3"), |
385 UTF8ToUTF16("newbody3"), | 427 UTF8ToUTF16("newbody3"), |
386 &priority_default, | 428 gfx::Image(), |
387 NULL); | 429 UTF8ToUTF16(kDisplaySource), |
| 430 kExtensionId, |
| 431 &priority_default, |
| 432 NULL)); |
| 433 notification_list()->UpdateNotificationMessage(id1, notification.Pass()); |
388 EXPECT_EQ(0u, GetPopupCounts()); | 434 EXPECT_EQ(0u, GetPopupCounts()); |
389 } | 435 } |
390 | 436 |
391 TEST_F(NotificationListTest, NotificationOrderAndPriority) { | 437 TEST_F(NotificationListTest, NotificationOrderAndPriority) { |
392 base::Time now = base::Time::Now(); | 438 base::Time now = base::Time::Now(); |
393 base::DictionaryValue optional; | 439 base::DictionaryValue optional; |
394 SetupTimestampKey(now, &optional); | 440 SetupTimestampKey(now, &optional); |
395 optional.SetInteger(message_center::kPriorityKey, 2); | 441 optional.SetInteger(message_center::kPriorityKey, 2); |
396 std::string max_id = AddNotification(&optional); | 442 std::string max_id = AddNotification(&optional); |
397 now += base::TimeDelta::FromSeconds(1); | 443 now += base::TimeDelta::FromSeconds(1); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 EXPECT_FALSE(n1->shown_as_popup()); | 552 EXPECT_FALSE(n1->shown_as_popup()); |
507 EXPECT_TRUE(n1->is_read()); | 553 EXPECT_TRUE(n1->is_read()); |
508 | 554 |
509 notification_list()->MarkSinglePopupAsShown(id1, true); | 555 notification_list()->MarkSinglePopupAsShown(id1, true); |
510 | 556 |
511 n1 = GetNotification(id1); | 557 n1 = GetNotification(id1); |
512 EXPECT_TRUE(n1->shown_as_popup()); | 558 EXPECT_TRUE(n1->shown_as_popup()); |
513 EXPECT_TRUE(n1->is_read()); | 559 EXPECT_TRUE(n1->is_read()); |
514 | 560 |
515 const std::string replaced("test-replaced-id"); | 561 const std::string replaced("test-replaced-id"); |
516 notification_list()->UpdateNotificationMessage(id1, | 562 scoped_ptr<Notification> notification( |
517 replaced, | 563 new Notification(message_center::NOTIFICATION_TYPE_SIMPLE, |
518 UTF8ToUTF16("newtitle"), | 564 replaced, |
519 UTF8ToUTF16("newbody"), | 565 UTF8ToUTF16("newtitle"), |
520 NULL, | 566 UTF8ToUTF16("newbody"), |
521 NULL); | 567 gfx::Image(), |
| 568 UTF8ToUTF16(kDisplaySource), |
| 569 kExtensionId, |
| 570 NULL, |
| 571 NULL)); |
| 572 notification_list()->UpdateNotificationMessage(id1, notification.Pass()); |
522 n1 = GetNotification(id1); | 573 n1 = GetNotification(id1); |
523 EXPECT_TRUE(n1 == NULL); | 574 EXPECT_TRUE(n1 == NULL); |
524 const Notification* nr = GetNotification(replaced); | 575 const Notification* nr = GetNotification(replaced); |
525 EXPECT_TRUE(nr->shown_as_popup()); | 576 EXPECT_TRUE(nr->shown_as_popup()); |
526 EXPECT_TRUE(nr->is_read()); | 577 EXPECT_TRUE(nr->is_read()); |
527 } | 578 } |
528 | 579 |
529 TEST_F(NotificationListTest, QuietMode) { | 580 TEST_F(NotificationListTest, QuietMode) { |
530 notification_list()->SetQuietMode(true); | 581 notification_list()->SetQuietMode(true); |
531 AddNotification(NULL); | 582 AddNotification(NULL); |
532 AddPriorityNotification(HIGH_PRIORITY); | 583 AddPriorityNotification(HIGH_PRIORITY); |
533 AddPriorityNotification(MAX_PRIORITY); | 584 AddPriorityNotification(MAX_PRIORITY); |
534 EXPECT_EQ(3u, notification_list()->NotificationCount()); | 585 EXPECT_EQ(3u, notification_list()->NotificationCount()); |
535 EXPECT_EQ(0u, GetPopupCounts()); | 586 EXPECT_EQ(0u, GetPopupCounts()); |
536 // TODO(mukai): fix here when notification_list distinguish dismiss by quiet | 587 // TODO(mukai): fix here when notification_list distinguish dismiss by quiet |
537 // mode and by user operation. | 588 // mode and by user operation. |
538 EXPECT_EQ(0u, notification_list()->unread_count()); | 589 EXPECT_EQ(0u, notification_list()->unread_count()); |
539 | 590 |
540 notification_list()->SetQuietMode(false); | 591 notification_list()->SetQuietMode(false); |
541 AddNotification(NULL); | 592 AddNotification(NULL); |
542 EXPECT_EQ(4u, notification_list()->NotificationCount()); | 593 EXPECT_EQ(4u, notification_list()->NotificationCount()); |
543 EXPECT_EQ(1u, GetPopupCounts()); | 594 EXPECT_EQ(1u, GetPopupCounts()); |
544 | 595 |
545 // TODO(mukai): Add test of quiet mode with expiration. | 596 // TODO(mukai): Add test of quiet mode with expiration. |
546 } | 597 } |
547 | 598 |
548 } // namespace test | 599 } // namespace test |
549 } // namespace message_center | 600 } // namespace message_center |
OLD | NEW |