Index: third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc |
diff --git a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc |
index 88d9331ce38ee3f4f15073ef3788aac159ef7c3e..c8fa20fb2930cd3f571e28dad1b1b84f17190d4b 100644 |
--- a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc |
+++ b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc |
@@ -2411,5 +2411,28 @@ TEST_F(TaskQueueManagerTest, |
run_loop.Run(); |
} |
+TEST_F(TaskQueueManagerTest, DelayedDoWorkNotPostedForDisabledQueue) { |
+ Initialize(1u); |
+ |
+ runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&NopTask), |
+ base::TimeDelta::FromMilliseconds(1)); |
+ EXPECT_TRUE(test_task_runner_->HasPendingTasks()); |
+ EXPECT_EQ(base::TimeDelta::FromMilliseconds(1), |
+ test_task_runner_->DelayToNextTaskTime()); |
+ |
+ std::unique_ptr<TaskQueue::QueueEnabledVoter> voter = |
+ runners_[0]->CreateQueueEnabledVoter(); |
+ voter->SetQueueEnabled(false); |
+ |
+ EXPECT_TRUE(test_task_runner_->HasPendingTasks()); |
+ test_task_runner_->RemoveCancelledTasks(); |
+ EXPECT_FALSE(test_task_runner_->HasPendingTasks()); |
+ |
+ voter->SetQueueEnabled(true); |
+ EXPECT_TRUE(test_task_runner_->HasPendingTasks()); |
+ EXPECT_EQ(base::TimeDelta::FromMilliseconds(1), |
+ test_task_runner_->DelayToNextTaskTime()); |
+} |
+ |
} // namespace scheduler |
} // namespace blink |