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

Unified Diff: ui/message_center/message_center_impl_unittest.cc

Issue 2315513002: Reset popup dismissal timers when replacing a notification. (Closed)
Patch Set: Reset popup dismissal timers when replacing a notification. Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | ui/message_center/popup_timer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/message_center/message_center_impl_unittest.cc
diff --git a/ui/message_center/message_center_impl_unittest.cc b/ui/message_center/message_center_impl_unittest.cc
index 282b6b898a4e8fe0a9f03c7408484fc0285f8a48..b9b6a6e2c8edd912e8569b011da0e3819dc3b5a0 100644
--- a/ui/message_center/message_center_impl_unittest.cc
+++ b/ui/message_center/message_center_impl_unittest.cc
@@ -14,12 +14,14 @@
#include "base/run_loop.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/test/test_mock_time_task_runner.h"
#include "base/threading/thread_task_runner_handle.h"
#include "build/build_config.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/geometry/size.h"
#include "ui/message_center/message_center.h"
+#include "ui/message_center/message_center_style.h"
#include "ui/message_center/message_center_types.h"
#include "ui/message_center/notification_blocker.h"
#include "ui/message_center/notification_types.h"
@@ -262,7 +264,6 @@ TEST_F(MessageCenterImplTest, PopupTimersEmptyController) {
popup_timers_controller->StartAll();
popup_timers_controller->CancelAll();
popup_timers_controller->TimerFinished("unknown");
- popup_timers_controller->PauseTimer("unknown");
popup_timers_controller->CancelTimer("unknown");
}
@@ -275,17 +276,6 @@ TEST_F(MessageCenterImplTest, PopupTimersControllerStartTimer) {
EXPECT_TRUE(popup_timers_controller->timer_finished());
}
-TEST_F(MessageCenterImplTest, PopupTimersControllerPauseTimer) {
- std::unique_ptr<MockPopupTimersController> popup_timers_controller =
- base::MakeUnique<MockPopupTimersController>(message_center(), closure());
- popup_timers_controller->StartTimer("test",
- base::TimeDelta::FromMilliseconds(1));
- popup_timers_controller->PauseTimer("test");
- run_loop()->RunUntilIdle();
-
- EXPECT_FALSE(popup_timers_controller->timer_finished());
-}
-
TEST_F(MessageCenterImplTest, PopupTimersControllerCancelTimer) {
std::unique_ptr<MockPopupTimersController> popup_timers_controller =
base::MakeUnique<MockPopupTimersController>(message_center(), closure());
@@ -337,40 +327,50 @@ TEST_F(MessageCenterImplTest, PopupTimersControllerStartMultipleTimers) {
EXPECT_TRUE(popup_timers_controller->timer_finished());
}
-TEST_F(MessageCenterImplTest, PopupTimersControllerStartMultipleTimersPause) {
- std::unique_ptr<MockPopupTimersController> popup_timers_controller =
- base::MakeUnique<MockPopupTimersController>(message_center(), closure());
- popup_timers_controller->StartTimer("test",
- base::TimeDelta::FromMilliseconds(5));
- popup_timers_controller->StartTimer("test2",
- base::TimeDelta::FromMilliseconds(1));
- popup_timers_controller->StartTimer("test3",
- base::TimeDelta::FromMilliseconds(3));
- popup_timers_controller->PauseTimer("test2");
+TEST_F(MessageCenterImplTest, PopupTimersControllerRestartOnUpdate) {
+ scoped_refptr<base::SingleThreadTaskRunner> old_task_runner =
+ base::ThreadTaskRunnerHandle::Get();
- run_loop()->Run();
+ scoped_refptr<base::TestMockTimeTaskRunner> task_runner(
+ new base::TestMockTimeTaskRunner(base::Time::Now(),
+ base::TimeTicks::Now()));
+ base::MessageLoop::current()->SetTaskRunner(task_runner);
- EXPECT_EQ(popup_timers_controller->last_id(), "test3");
- EXPECT_TRUE(popup_timers_controller->timer_finished());
-}
+ NotifierId notifier_id(GURL("https://example.com"));
+
+ message_center()->AddNotification(std::unique_ptr<Notification>(
+ new Notification(NOTIFICATION_TYPE_SIMPLE, "id1", UTF8ToUTF16("title"),
+ UTF8ToUTF16("message"), gfx::Image() /* icon */,
+ base::string16() /* display_source */, GURL(),
+ notifier_id, RichNotificationData(), NULL)));
-TEST_F(MessageCenterImplTest, PopupTimersControllerResetTimer) {
std::unique_ptr<MockPopupTimersController> popup_timers_controller =
base::MakeUnique<MockPopupTimersController>(message_center(), closure());
- popup_timers_controller->StartTimer("test",
- base::TimeDelta::FromMilliseconds(5));
- popup_timers_controller->StartTimer("test2",
- base::TimeDelta::FromMilliseconds(1));
- popup_timers_controller->StartTimer("test3",
- base::TimeDelta::FromMilliseconds(3));
- popup_timers_controller->PauseTimer("test2");
- popup_timers_controller->ResetTimer("test",
- base::TimeDelta::FromMilliseconds(2));
- run_loop()->Run();
+ popup_timers_controller->OnNotificationDisplayed("id1", DISPLAY_SOURCE_POPUP);
+ ASSERT_FALSE(popup_timers_controller->timer_finished());
- EXPECT_EQ(popup_timers_controller->last_id(), "test");
- EXPECT_TRUE(popup_timers_controller->timer_finished());
+ // Fast forward the |task_runner| by one second less than the auto-close timer
+ // frequency for Web Notifications. (As set by the |notifier_id|.)
+ task_runner->FastForwardBy(
+ base::TimeDelta::FromSeconds(kAutocloseWebPageDelaySeconds - 1));
+ ASSERT_FALSE(popup_timers_controller->timer_finished());
+
+ // Trigger a replacement of the notification in the timer controller.
+ popup_timers_controller->OnNotificationUpdated("id1");
+
+ // Fast forward the |task_runner| by one second less than the auto-close timer
+ // frequency for Web Notifications again. It should have been reset.
+ task_runner->FastForwardBy(
+ base::TimeDelta::FromSeconds(kAutocloseWebPageDelaySeconds - 1));
+ ASSERT_FALSE(popup_timers_controller->timer_finished());
+
+ // Now fast forward the |task_runner| by two seconds (to avoid flakiness),
+ // after which the timer should have fired.
+ task_runner->FastForwardBy(base::TimeDelta::FromSeconds(2));
+ ASSERT_TRUE(popup_timers_controller->timer_finished());
+
+ base::MessageLoop::current()->SetTaskRunner(old_task_runner);
}
TEST_F(MessageCenterImplTest, NotificationBlocker) {
« no previous file with comments | « no previous file | ui/message_center/popup_timer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698