Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(422)

Unified Diff: cc/base/delayed_unique_notifier_unittest.cc

Issue 2627863002: Split Closure part of TestPendingTask out of the struct (Closed)
Patch Set: rebase Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/test/test_simple_task_runner.cc ('k') | cc/test/ordered_simple_task_runner.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/base/delayed_unique_notifier_unittest.cc
diff --git a/cc/base/delayed_unique_notifier_unittest.cc b/cc/base/delayed_unique_notifier_unittest.cc
index ae9ad17e9972d9c2dc4d314c86edc62ba2627891..fbd3b1d379ff3229ddf8b2ddf870e3854d47c140 100644
--- a/cc/base/delayed_unique_notifier_unittest.cc
+++ b/cc/base/delayed_unique_notifier_unittest.cc
@@ -6,7 +6,7 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
-#include "base/test/test_pending_task.h"
+#include "base/test/test_pending_task_info.h"
#include "base/test/test_simple_task_runner.h"
#include "cc/base/delayed_unique_notifier.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -44,7 +44,7 @@ class DelayedUniqueNotifierTest : public testing::Test {
int NotificationCount() const { return notification_count_; }
- std::deque<base::TestPendingTask> TakePendingTasks() {
+ base::TestPendingTaskQueue TakePendingTasks() {
return task_runner_->TakePendingTasks();
}
@@ -69,11 +69,14 @@ TEST_F(DelayedUniqueNotifierTest, ZeroDelay) {
notifier.SetNow(schedule_time);
notifier.Schedule();
- std::deque<base::TestPendingTask> tasks = TakePendingTasks();
+ base::TestPendingTaskQueue tasks = TakePendingTasks();
ASSERT_EQ(1u, tasks.size());
- EXPECT_EQ(base::TimeTicks() + delay, tasks[0].GetTimeToRun());
+ base::TestPendingTaskInfo task_info = tasks[0].first;
+ base::OnceClosure task = std::move(tasks[0].second);
- tasks[0].task.Run();
+ EXPECT_EQ(base::TimeTicks() + delay, task_info.GetTimeToRun());
+
+ std::move(task).Run();
EXPECT_EQ(1, NotificationCount());
// 5 schedules should result in only one run.
@@ -82,9 +85,11 @@ TEST_F(DelayedUniqueNotifierTest, ZeroDelay) {
tasks = TakePendingTasks();
ASSERT_EQ(1u, tasks.size());
- EXPECT_EQ(base::TimeTicks() + delay, tasks[0].GetTimeToRun());
+ task_info = tasks[0].first;
+ task = std::move(tasks[0].second);
+ EXPECT_EQ(base::TimeTicks() + delay, task_info.GetTimeToRun());
- tasks[0].task.Run();
+ std::move(task).Run();
EXPECT_EQ(2, NotificationCount());
}
@@ -104,44 +109,50 @@ TEST_F(DelayedUniqueNotifierTest, SmallDelay) {
notifier.SetNow(schedule_time);
notifier.Schedule();
- std::deque<base::TestPendingTask> tasks = TakePendingTasks();
+ base::TestPendingTaskQueue tasks = TakePendingTasks();
ASSERT_EQ(1u, tasks.size());
- EXPECT_EQ(base::TimeTicks() + delay, tasks[0].GetTimeToRun());
+ base::TestPendingTaskInfo task_info = tasks[0].first;
+ base::OnceClosure task = std::move(tasks[0].second);
+ EXPECT_EQ(base::TimeTicks() + delay, task_info.GetTimeToRun());
// It's not yet time to run, so we expect no notifications.
- tasks[0].task.Run();
+ std::move(task).Run();
EXPECT_EQ(0, NotificationCount());
tasks = TakePendingTasks();
-
ASSERT_EQ(1u, tasks.size());
+ task_info = tasks[0].first;
+ task = std::move(tasks[0].second);
+
// Now the time should be delay minus whatever the value of now happens to be
// (now: 30, run time: 50).
base::TimeTicks scheduled_run_time = notifier.Now() + delay;
base::TimeTicks scheduled_delay =
base::TimeTicks() + (scheduled_run_time - notifier.Now());
- EXPECT_EQ(scheduled_delay, tasks[0].GetTimeToRun());
+ EXPECT_EQ(scheduled_delay, task_info.GetTimeToRun());
// Move closer to the run time (time: 49, run time: 50).
notifier.SetNow(notifier.Now() + base::TimeDelta::FromInternalValue(19));
// It's not yet time to run, so we expect no notifications.
- tasks[0].task.Run();
+ std::move(task).Run();
EXPECT_EQ(0, NotificationCount());
tasks = TakePendingTasks();
ASSERT_EQ(1u, tasks.size());
+ task_info = tasks[0].first;
+ task = std::move(tasks[0].second);
// Now the time should be delay minus whatever the value of now happens to be.
scheduled_delay = base::TimeTicks() + (scheduled_run_time - notifier.Now());
- EXPECT_EQ(scheduled_delay, tasks[0].GetTimeToRun());
+ EXPECT_EQ(scheduled_delay, task_info.GetTimeToRun());
// Move to exactly the run time (time: 50, run time: 50).
notifier.SetNow(notifier.Now() + base::TimeDelta::FromInternalValue(1));
// It's time to run!
- tasks[0].task.Run();
+ std::move(task).Run();
EXPECT_EQ(1, NotificationCount());
tasks = TakePendingTasks();
@@ -166,13 +177,14 @@ TEST_F(DelayedUniqueNotifierTest, RescheduleDelay) {
notifier.SetNow(schedule_time);
notifier.Schedule();
- std::deque<base::TestPendingTask> tasks = TakePendingTasks();
-
+ base::TestPendingTaskQueue tasks = TakePendingTasks();
ASSERT_EQ(1u, tasks.size());
- EXPECT_EQ(base::TimeTicks() + delay, tasks[0].GetTimeToRun());
+ base::TestPendingTaskInfo task_info = tasks[0].first;
+ base::OnceClosure task = std::move(tasks[0].second);
+ EXPECT_EQ(base::TimeTicks() + delay, task_info.GetTimeToRun());
// It's not yet time to run, so we expect no notifications.
- tasks[0].task.Run();
+ std::move(task).Run();
EXPECT_EQ(0, NotificationCount());
}
@@ -180,13 +192,14 @@ TEST_F(DelayedUniqueNotifierTest, RescheduleDelay) {
schedule_time = notifier.Now() + base::TimeDelta::FromInternalValue(20);
notifier.SetNow(schedule_time);
- std::deque<base::TestPendingTask> tasks = TakePendingTasks();
-
+ base::TestPendingTaskQueue tasks = TakePendingTasks();
ASSERT_EQ(1u, tasks.size());
- EXPECT_EQ(base::TimeTicks() + delay, tasks[0].GetTimeToRun());
+ base::TestPendingTaskInfo task_info = tasks[0].first;
+ base::OnceClosure task = std::move(tasks[0].second);
+ EXPECT_EQ(base::TimeTicks() + delay, task_info.GetTimeToRun());
// Time to run!
- tasks[0].task.Run();
+ std::move(task).Run();
EXPECT_EQ(1, NotificationCount());
}
@@ -210,13 +223,14 @@ TEST_F(DelayedUniqueNotifierTest, CancelAndHasPendingNotification) {
notifier.Cancel();
EXPECT_FALSE(notifier.HasPendingNotification());
- std::deque<base::TestPendingTask> tasks = TakePendingTasks();
-
+ base::TestPendingTaskQueue tasks = TakePendingTasks();
ASSERT_EQ(1u, tasks.size());
- EXPECT_EQ(base::TimeTicks() + delay, tasks[0].GetTimeToRun());
+ base::TestPendingTaskInfo task_info = tasks[0].first;
+ base::OnceClosure task = std::move(tasks[0].second);
+ EXPECT_EQ(base::TimeTicks() + delay, task_info.GetTimeToRun());
// Time to run, but a canceled task!
- tasks[0].task.Run();
+ std::move(task).Run();
EXPECT_EQ(0, NotificationCount());
EXPECT_FALSE(notifier.HasPendingNotification());
@@ -228,13 +242,15 @@ TEST_F(DelayedUniqueNotifierTest, CancelAndHasPendingNotification) {
tasks = TakePendingTasks();
ASSERT_EQ(1u, tasks.size());
- EXPECT_EQ(base::TimeTicks() + delay, tasks[0].GetTimeToRun());
+ task_info = tasks[0].first;
+ task = std::move(tasks[0].second);
+ EXPECT_EQ(base::TimeTicks() + delay, task_info.GetTimeToRun());
// Advance the time.
notifier.SetNow(notifier.Now() + delay);
// This should run since it wasn't canceled.
- tasks[0].task.Run();
+ std::move(task).Run();
EXPECT_EQ(1, NotificationCount());
EXPECT_FALSE(notifier.HasPendingNotification());
@@ -246,13 +262,14 @@ TEST_F(DelayedUniqueNotifierTest, CancelAndHasPendingNotification) {
}
tasks = TakePendingTasks();
-
ASSERT_EQ(1u, tasks.size());
- EXPECT_EQ(base::TimeTicks() + delay, tasks[0].GetTimeToRun());
+ task_info = tasks[0].first;
+ task = std::move(tasks[0].second);
+ EXPECT_EQ(base::TimeTicks() + delay, task_info.GetTimeToRun());
// Time to run, but a canceled task!
notifier.SetNow(notifier.Now() + delay);
- tasks[0].task.Run();
+ std::move(task).Run();
EXPECT_EQ(1, NotificationCount());
tasks = TakePendingTasks();
@@ -280,11 +297,11 @@ TEST_F(DelayedUniqueNotifierTest, ShutdownWithScheduledTask) {
notifier.Shutdown();
// The task is still there, but...
- std::deque<base::TestPendingTask> tasks = TakePendingTasks();
+ base::TestPendingTaskQueue tasks = TakePendingTasks();
ASSERT_EQ(1u, tasks.size());
// Running the task after shutdown does nothing since it's cancelled.
- tasks[0].task.Run();
+ std::move(tasks[0].second).Run();
EXPECT_EQ(0, NotificationCount());
tasks = TakePendingTasks();
@@ -320,7 +337,7 @@ TEST_F(DelayedUniqueNotifierTest, ShutdownPreventsSchedule) {
// Scheduling a task no longer does anything.
notifier.Schedule();
- std::deque<base::TestPendingTask> tasks = TakePendingTasks();
+ base::TestPendingTaskQueue tasks = TakePendingTasks();
ASSERT_EQ(0u, tasks.size());
// Verify after the scheduled time happens there is still no task.
« no previous file with comments | « base/test/test_simple_task_runner.cc ('k') | cc/test/ordered_simple_task_runner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698