Index: base/task_scheduler/utils_unittest.cc |
diff --git a/base/task_scheduler/utils_unittest.cc b/base/task_scheduler/utils_unittest.cc |
index 1b199fae8878c234a7942730bfd5e9c00459509b..78f00aacc06a69c30c5a4fc65009254818931d4f 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 |