Index: components/scheduler/renderer/web_view_scheduler_impl_unittest.cc |
diff --git a/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc b/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc |
index b3723175406c503357b60734eaeebbddc87120da..2611332bf07617accb372e39cec4dc03ba4cc183 100644 |
--- a/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc |
+++ b/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc |
@@ -315,7 +315,7 @@ class DelayedRunOrderTask : public blink::WebTaskRunner::Task { |
}; |
} |
-TEST_F(WebViewSchedulerImplTest, VirtualTime_DelayedAndImmediateTaskOrdering) { |
+TEST_F(WebViewSchedulerImplTest, VirtualTime_NotAllowedToAdvance) { |
std::vector<int> run_order; |
web_view_scheduler_->setAllowVirtualTimeToAdvance(false); |
@@ -337,9 +337,32 @@ TEST_F(WebViewSchedulerImplTest, VirtualTime_DelayedAndImmediateTaskOrdering) { |
4.0); |
mock_task_runner_->RunUntilIdle(); |
- EXPECT_TRUE(run_order.empty()); |
+ |
+ // Immediate tasks are allowed to run even if delayed tasks are not. |
+ EXPECT_THAT(run_order, ElementsAre(0)); |
+} |
+ |
+TEST_F(WebViewSchedulerImplTest, VirtualTime_AllowedToAdvance) { |
+ std::vector<int> run_order; |
web_view_scheduler_->setAllowVirtualTimeToAdvance(true); |
+ web_view_scheduler_->enableVirtualTime(); |
+ |
+ web_frame_scheduler_->timerTaskRunner()->postTask( |
+ BLINK_FROM_HERE, new RunOrderTask(0, &run_order)); |
+ |
+ web_frame_scheduler_->timerTaskRunner()->postDelayedTask( |
+ BLINK_FROM_HERE, |
+ new DelayedRunOrderTask(1, web_frame_scheduler_->timerTaskRunner(), |
+ &run_order), |
+ 2.0); |
+ |
+ web_frame_scheduler_->timerTaskRunner()->postDelayedTask( |
+ BLINK_FROM_HERE, |
+ new DelayedRunOrderTask(3, web_frame_scheduler_->timerTaskRunner(), |
+ &run_order), |
+ 4.0); |
+ |
mock_task_runner_->RunUntilIdle(); |
EXPECT_THAT(run_order, ElementsAre(0, 1, 2, 3, 4)); |
@@ -377,8 +400,8 @@ TEST_F(WebViewSchedulerImplTest, VirtualTimeSettings_NewWebFrameScheduler) { |
scoped_ptr<WebFrameSchedulerImpl> web_frame_scheduler = |
web_view_scheduler_->createWebFrameSchedulerImpl(); |
- web_frame_scheduler->timerTaskRunner()->postTask( |
- BLINK_FROM_HERE, new RunOrderTask(1, &run_order)); |
+ web_frame_scheduler->timerTaskRunner()->postDelayedTask( |
+ BLINK_FROM_HERE, new RunOrderTask(1, &run_order), 0.1); |
mock_task_runner_->RunUntilIdle(); |
EXPECT_TRUE(run_order.empty()); |