Index: chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc b/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc |
index 4583553c60ee71847c3302741ba960c8b70e9ce0..1bbdf08657ff1b7925b701cae948bb63a439d84d 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc |
@@ -60,8 +60,10 @@ class TaskManagerClient |
idle_task_scheduled_count_(0), |
last_operation_status_(SYNC_STATUS_OK) { |
task_manager_.reset(new SyncTaskManager( |
- AsWeakPtr(), maximum_background_task)); |
+ AsWeakPtr(), maximum_background_task, |
+ base::MessageLoopProxy::current())); |
task_manager_->Initialize(SYNC_STATUS_OK); |
+ base::MessageLoop::current()->RunUntilIdle(); |
maybe_schedule_next_task_count_ = 0; |
} |
virtual ~TaskManagerClient() {} |
@@ -393,8 +395,10 @@ TEST(SyncTaskManagerTest, ScheduleAndCancelSyncTask) { |
{ |
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
- 0 /* maximum_background_task */); |
+ 0 /* maximum_background_task */, |
+ base::MessageLoopProxy::current()); |
task_manager.Initialize(SYNC_STATUS_OK); |
+ message_loop.RunUntilIdle(); |
task_manager.ScheduleSyncTask( |
FROM_HERE, |
scoped_ptr<SyncTask>(new MultihopSyncTask( |
@@ -402,8 +406,8 @@ TEST(SyncTaskManagerTest, ScheduleAndCancelSyncTask) { |
SyncTaskManager::PRIORITY_MED, |
base::Bind(&IncrementAndAssign, 0, &callback_count, &status)); |
} |
- |
message_loop.RunUntilIdle(); |
+ |
EXPECT_EQ(0, callback_count); |
EXPECT_EQ(SYNC_STATUS_UNKNOWN, status); |
EXPECT_TRUE(task_started); |
@@ -413,8 +417,10 @@ TEST(SyncTaskManagerTest, ScheduleAndCancelSyncTask) { |
TEST(SyncTaskManagerTest, ScheduleTaskAtPriority) { |
base::MessageLoop message_loop; |
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
- 0 /* maximum_background_task */); |
+ 0 /* maximum_background_task */, |
+ base::MessageLoopProxy::current()); |
task_manager.Initialize(SYNC_STATUS_OK); |
+ message_loop.RunUntilIdle(); |
int callback_count = 0; |
SyncStatusCode callback_status1 = SYNC_STATUS_OK; |
@@ -472,7 +478,8 @@ TEST(SyncTaskManagerTest, ScheduleTaskAtPriority) { |
TEST(SyncTaskManagerTest, BackgroundTask_Sequential) { |
base::MessageLoop message_loop; |
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
- 10 /* maximum_background_task */); |
+ 10 /* maximum_background_task */, |
+ base::MessageLoopProxy::current()); |
task_manager.Initialize(SYNC_STATUS_OK); |
SyncStatusCode status = SYNC_STATUS_FAILED; |
@@ -512,7 +519,8 @@ TEST(SyncTaskManagerTest, BackgroundTask_Sequential) { |
TEST(SyncTaskManagerTest, BackgroundTask_Parallel) { |
base::MessageLoop message_loop; |
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
- 10 /* maximum_background_task */); |
+ 10 /* maximum_background_task */, |
+ base::MessageLoopProxy::current()); |
task_manager.Initialize(SYNC_STATUS_OK); |
SyncStatusCode status = SYNC_STATUS_FAILED; |
@@ -552,7 +560,8 @@ TEST(SyncTaskManagerTest, BackgroundTask_Parallel) { |
TEST(SyncTaskManagerTest, BackgroundTask_Throttled) { |
base::MessageLoop message_loop; |
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
- 2 /* maximum_background_task */); |
+ 2 /* maximum_background_task */, |
+ base::MessageLoopProxy::current()); |
task_manager.Initialize(SYNC_STATUS_OK); |
SyncStatusCode status = SYNC_STATUS_FAILED; |
@@ -592,10 +601,12 @@ TEST(SyncTaskManagerTest, BackgroundTask_Throttled) { |
TEST(SyncTaskManagerTest, UpdateBlockingFactor) { |
base::MessageLoop message_loop; |
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
- 10 /* maximum_background_task */); |
+ 10 /* maximum_background_task */, |
+ base::MessageLoopProxy::current()); |
task_manager.Initialize(SYNC_STATUS_OK); |
- SyncStatusCode status = SYNC_STATUS_FAILED; |
+ SyncStatusCode status1 = SYNC_STATUS_FAILED; |
+ SyncStatusCode status2 = SYNC_STATUS_FAILED; |
BlockerUpdateTestHelper::Log log; |
{ |
@@ -608,7 +619,7 @@ TEST(SyncTaskManagerTest, UpdateBlockingFactor) { |
scoped_ptr<SyncTask>(new BlockerUpdateTestHelper( |
"task1", "app_id", paths, &log)), |
SyncTaskManager::PRIORITY_MED, |
- CreateResultReceiver(&status)); |
+ CreateResultReceiver(&status1)); |
} |
{ |
@@ -621,22 +632,23 @@ TEST(SyncTaskManagerTest, UpdateBlockingFactor) { |
scoped_ptr<SyncTask>(new BlockerUpdateTestHelper( |
"task2", "app_id", paths, &log)), |
SyncTaskManager::PRIORITY_MED, |
- CreateResultReceiver(&status)); |
+ CreateResultReceiver(&status2)); |
} |
message_loop.RunUntilIdle(); |
- EXPECT_EQ(SYNC_STATUS_OK, status); |
+ EXPECT_EQ(SYNC_STATUS_OK, status1); |
+ EXPECT_EQ(SYNC_STATUS_OK, status2); |
ASSERT_EQ(14u, log.size()); |
int i = 0; |
// task1 takes "/foo/bar" first. |
EXPECT_EQ("task1: updating to /foo/bar", log[i++]); |
- EXPECT_EQ("task1: updated to /foo/bar", log[i++]); |
- // task1 blocks task2. task2's update should be pending until task1 update. |
+ // task1 blocks task2. task2's update should not complete until task1 update. |
EXPECT_EQ("task2: updating to /foo", log[i++]); |
+ EXPECT_EQ("task1: updated to /foo/bar", log[i++]); |
// task1 releases "/foo/bar" and tries to take "/foo". Then, pending task2 |
// takes "/foo" and blocks task1. |