| Index: base/task_scheduler/utils_unittest.cc
|
| diff --git a/base/task_scheduler/utils_unittest.cc b/base/task_scheduler/utils_unittest.cc
|
| index 4e65da788afabd6b47226ab786e6ffa071484c16..eb8d888164edbbb1cdd3abc4cb5f650a9977d55b 100644
|
| --- a/base/task_scheduler/utils_unittest.cc
|
| +++ b/base/task_scheduler/utils_unittest.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/bind_helpers.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/task_scheduler/delayed_task_manager.h"
|
| #include "base/task_scheduler/priority_queue.h"
|
| #include "base/task_scheduler/scheduler_task_executor.h"
|
| #include "base/task_scheduler/sequence.h"
|
| @@ -33,8 +34,8 @@ class MockSchedulerTaskExecutor : public SchedulerTaskExecutor {
|
| void(const Task* task, const Sequence* sequence));
|
| };
|
|
|
| -// Verifies that when PostTaskToExecutor receives a Task that is allowed to be
|
| -// posted, it forwards it to a SchedulerTaskExecutor.
|
| +// Verifies that when PostTaskToExecutor receives a non-delayed Task that is
|
| +// allowed to be posted, it forwards it to a SchedulerTaskExecutor.
|
| TEST(TaskSchedulerPostTaskToExecutorTest, PostTaskAllowed) {
|
| std::unique_ptr<Task> task(
|
| new Task(FROM_HERE, Bind(&DoNothing), TaskTraits(), TimeTicks()));
|
| @@ -42,9 +43,27 @@ TEST(TaskSchedulerPostTaskToExecutorTest, PostTaskAllowed) {
|
| scoped_refptr<Sequence> sequence(new Sequence);
|
| testing::StrictMock<MockSchedulerTaskExecutor> executor;
|
| TaskTracker task_tracker;
|
| + DelayedTaskManager delayed_task_manager(Bind(&DoNothing));
|
|
|
| EXPECT_CALL(executor, PostTaskWithSequenceMock(task_raw, sequence.get()));
|
| - PostTaskToExecutor(std::move(task), sequence, &executor, &task_tracker);
|
| + PostTaskToExecutor(std::move(task), sequence, &executor, &task_tracker,
|
| + &delayed_task_manager);
|
| +}
|
| +
|
| +// Verifies that when PostTaskToExecutor receives a delayed Task that is allowed
|
| +// to be posted, it forwards it to a DelayedTaskManager.
|
| +TEST(TaskSchedulerPostTaskToExecutorTest, PostDelayedTaskAllowed) {
|
| + scoped_refptr<Sequence> sequence(new Sequence);
|
| + testing::StrictMock<MockSchedulerTaskExecutor> executor;
|
| + TaskTracker task_tracker;
|
| + DelayedTaskManager delayed_task_manager(Bind(&DoNothing));
|
| +
|
| + EXPECT_TRUE(delayed_task_manager.GetDelayedRunTime().is_null());
|
| + PostTaskToExecutor(
|
| + WrapUnique(new Task(FROM_HERE, Bind(&DoNothing), TaskTraits(),
|
| + TimeTicks::Now() + TimeDelta::FromSeconds(10))),
|
| + sequence, &executor, &task_tracker, &delayed_task_manager);
|
| + EXPECT_FALSE(delayed_task_manager.GetDelayedRunTime().is_null());
|
| }
|
|
|
| // Verifies that when PostTaskToExecutor receives a Task that isn't allowed to
|
| @@ -54,12 +73,13 @@ TEST(TaskSchedulerPostTaskToExecutorTest, PostTaskNotAllowed) {
|
| // call to the mock method of |executor|.
|
| testing::StrictMock<MockSchedulerTaskExecutor> executor;
|
| TaskTracker task_tracker;
|
| + DelayedTaskManager delayed_task_manager(Bind(&DoNothing));
|
| task_tracker.Shutdown();
|
|
|
| PostTaskToExecutor(WrapUnique(new Task(FROM_HERE, Bind(&DoNothing),
|
| TaskTraits(), TimeTicks())),
|
| - make_scoped_refptr(new Sequence), &executor,
|
| - &task_tracker);
|
| + make_scoped_refptr(new Sequence), &executor, &task_tracker,
|
| + &delayed_task_manager);
|
| }
|
|
|
| // Verifies that when AddTaskToSequenceAndPriorityQueue is called with an empty
|
|
|