| Index: base/task_scheduler/utils_unittest.cc
|
| diff --git a/base/task_scheduler/utils_unittest.cc b/base/task_scheduler/utils_unittest.cc
|
| index c2962f6fb3dd1082bdb3ba0cd250043170b71869..3d69fc5ca78010903291761d3ef2896fe4fa71d3 100644
|
| --- a/base/task_scheduler/utils_unittest.cc
|
| +++ b/base/task_scheduler/utils_unittest.cc
|
| @@ -11,6 +11,7 @@
|
| #include "base/callback.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"
|
| @@ -39,19 +40,36 @@ class MockSchedulerTaskExecutor : public SchedulerTaskExecutor {
|
| void(const Closure&, const TaskTraits&, 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) {
|
| const Closure closure(Bind(&DoNothing));
|
| const TaskTraits traits;
|
| scoped_refptr<Sequence> sequence(new Sequence);
|
| testing::StrictMock<MockSchedulerTaskExecutor> executor;
|
| TaskTracker task_tracker;
|
| + DelayedTaskManager delayed_task_manager(Bind(&DoNothing));
|
|
|
| EXPECT_CALL(executor,
|
| PostTaskWithSequenceMock(closure, traits, sequence.get()));
|
| PostTaskToExecutor(FROM_HERE, closure, traits, TimeDelta(), sequence,
|
| - &executor, &task_tracker);
|
| + &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) {
|
| + const Closure closure(Bind(&DoNothing));
|
| + const TaskTraits traits;
|
| + 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(FROM_HERE, closure, traits, 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
|
| @@ -61,12 +79,14 @@ 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(
|
| FROM_HERE, Bind(&DoNothing),
|
| TaskTraits().WithShutdownBehavior(TaskShutdownBehavior::SKIP_ON_SHUTDOWN),
|
| - TimeDelta(), make_scoped_refptr(new Sequence), &executor, &task_tracker);
|
| + TimeDelta(), make_scoped_refptr(new Sequence), &executor, &task_tracker,
|
| + &delayed_task_manager);
|
| }
|
|
|
| // Verifies that when AddTaskToSequenceAndPriorityQueue is called with an empty
|
|
|