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

Side by Side Diff: chrome/browser/sync_file_system/sync_task_manager_unittest.cc

Issue 190663004: [SyncFS] Drop default priority version of SyncTaskManager::ScheduleTask (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/sync_file_system/sync_task_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/memory/weak_ptr.h" 7 #include "base/memory/weak_ptr.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "chrome/browser/sync_file_system/sync_task_manager.h" 9 #include "chrome/browser/sync_file_system/sync_task_manager.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 bool last_operation_used_network) OVERRIDE { 61 bool last_operation_used_network) OVERRIDE {
62 last_operation_status_ = last_operation_status; 62 last_operation_status_ = last_operation_status;
63 } 63 }
64 64
65 void ScheduleTask(SyncStatusCode status_to_return, 65 void ScheduleTask(SyncStatusCode status_to_return,
66 const SyncStatusCallback& callback) { 66 const SyncStatusCallback& callback) {
67 task_manager_->ScheduleTask( 67 task_manager_->ScheduleTask(
68 FROM_HERE, 68 FROM_HERE,
69 base::Bind(&TaskManagerClient::DoTask, AsWeakPtr(), 69 base::Bind(&TaskManagerClient::DoTask, AsWeakPtr(),
70 status_to_return, false /* idle */), 70 status_to_return, false /* idle */),
71 SyncTaskManager::PRIORITY_MED,
71 callback); 72 callback);
72 } 73 }
73 74
74 void ScheduleTaskIfIdle(SyncStatusCode status_to_return) { 75 void ScheduleTaskIfIdle(SyncStatusCode status_to_return) {
75 task_manager_->ScheduleTaskIfIdle( 76 task_manager_->ScheduleTaskIfIdle(
76 FROM_HERE, 77 FROM_HERE,
77 base::Bind(&TaskManagerClient::DoTask, AsWeakPtr(), 78 base::Bind(&TaskManagerClient::DoTask, AsWeakPtr(),
78 status_to_return, true /* idle */), 79 status_to_return, true /* idle */),
79 SyncStatusCallback()); 80 SyncStatusCallback());
80 } 81 }
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 bool task_started = false; 244 bool task_started = false;
244 bool task_completed = false; 245 bool task_completed = false;
245 246
246 { 247 {
247 SyncTaskManager task_manager((base::WeakPtr<SyncTaskManager::Client>())); 248 SyncTaskManager task_manager((base::WeakPtr<SyncTaskManager::Client>()));
248 task_manager.Initialize(SYNC_STATUS_OK); 249 task_manager.Initialize(SYNC_STATUS_OK);
249 task_manager.ScheduleSyncTask( 250 task_manager.ScheduleSyncTask(
250 FROM_HERE, 251 FROM_HERE,
251 scoped_ptr<SyncTask>(new MultihopSyncTask( 252 scoped_ptr<SyncTask>(new MultihopSyncTask(
252 &task_started, &task_completed)), 253 &task_started, &task_completed)),
254 SyncTaskManager::PRIORITY_MED,
253 base::Bind(&IncrementAndAssign, 0, &callback_count, &status)); 255 base::Bind(&IncrementAndAssign, 0, &callback_count, &status));
254 } 256 }
255 257
256 message_loop.RunUntilIdle(); 258 message_loop.RunUntilIdle();
257 EXPECT_EQ(0, callback_count); 259 EXPECT_EQ(0, callback_count);
258 EXPECT_EQ(SYNC_STATUS_UNKNOWN, status); 260 EXPECT_EQ(SYNC_STATUS_UNKNOWN, status);
259 EXPECT_TRUE(task_started); 261 EXPECT_TRUE(task_started);
260 EXPECT_FALSE(task_completed); 262 EXPECT_FALSE(task_completed);
261 } 263 }
262 264
263 TEST(SyncTaskManagerTest, ScheduleAndCancelTask) { 265 TEST(SyncTaskManagerTest, ScheduleAndCancelTask) {
264 base::MessageLoop message_loop; 266 base::MessageLoop message_loop;
265 267
266 int callback_count = 0; 268 int callback_count = 0;
267 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 269 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
268 270
269 bool task_started = false; 271 bool task_started = false;
270 bool task_completed = false; 272 bool task_completed = false;
271 273
272 { 274 {
273 SyncTaskManager task_manager((base::WeakPtr<SyncTaskManager::Client>())); 275 SyncTaskManager task_manager((base::WeakPtr<SyncTaskManager::Client>()));
274 task_manager.Initialize(SYNC_STATUS_OK); 276 task_manager.Initialize(SYNC_STATUS_OK);
275 MultihopSyncTask* task = new MultihopSyncTask( 277 MultihopSyncTask* task = new MultihopSyncTask(
276 &task_started, &task_completed); 278 &task_started, &task_completed);
277 task_manager.ScheduleTask( 279 task_manager.ScheduleTask(
278 FROM_HERE, 280 FROM_HERE,
279 base::Bind(&MultihopSyncTask::Run, base::Unretained(task)), 281 base::Bind(&MultihopSyncTask::Run, base::Unretained(task)),
282 SyncTaskManager::PRIORITY_MED,
280 base::Bind(&IncrementAndAssignWithOwnedPointer<MultihopSyncTask>, 283 base::Bind(&IncrementAndAssignWithOwnedPointer<MultihopSyncTask>,
281 base::Owned(task), &callback_count, &status)); 284 base::Owned(task), &callback_count, &status));
282 } 285 }
283 286
284 message_loop.RunUntilIdle(); 287 message_loop.RunUntilIdle();
285 EXPECT_EQ(0, callback_count); 288 EXPECT_EQ(0, callback_count);
286 EXPECT_EQ(SYNC_STATUS_UNKNOWN, status); 289 EXPECT_EQ(SYNC_STATUS_UNKNOWN, status);
287 EXPECT_TRUE(task_started); 290 EXPECT_TRUE(task_started);
288 EXPECT_FALSE(task_completed); 291 EXPECT_FALSE(task_completed);
289 } 292 }
290 293
291 TEST(SyncTaskManagerTest, ScheduleTaskAtPriority) { 294 TEST(SyncTaskManagerTest, ScheduleTaskAtPriority) {
292 base::MessageLoop message_loop; 295 base::MessageLoop message_loop;
293 SyncTaskManager task_manager((base::WeakPtr<SyncTaskManager::Client>())); 296 SyncTaskManager task_manager((base::WeakPtr<SyncTaskManager::Client>()));
294 task_manager.Initialize(SYNC_STATUS_OK); 297 task_manager.Initialize(SYNC_STATUS_OK);
295 298
296 int callback_count = 0; 299 int callback_count = 0;
297 SyncStatusCode callback_status1 = SYNC_STATUS_OK; 300 SyncStatusCode callback_status1 = SYNC_STATUS_OK;
298 SyncStatusCode callback_status2 = SYNC_STATUS_OK; 301 SyncStatusCode callback_status2 = SYNC_STATUS_OK;
299 SyncStatusCode callback_status3 = SYNC_STATUS_OK; 302 SyncStatusCode callback_status3 = SYNC_STATUS_OK;
300 SyncStatusCode callback_status4 = SYNC_STATUS_OK; 303 SyncStatusCode callback_status4 = SYNC_STATUS_OK;
301 SyncStatusCode callback_status5 = SYNC_STATUS_OK; 304 SyncStatusCode callback_status5 = SYNC_STATUS_OK;
302 305
303 // This will run first even if its priority is low, since there're no 306 // This will run first even if its priority is low, since there're no
304 // pending tasks. 307 // pending tasks.
305 task_manager.ScheduleTaskAtPriority( 308 task_manager.ScheduleTask(
306 FROM_HERE, 309 FROM_HERE,
307 base::Bind(&DumbTask, kStatus1), 310 base::Bind(&DumbTask, kStatus1),
308 SyncTaskManager::PRIORITY_LOW, 311 SyncTaskManager::PRIORITY_LOW,
309 base::Bind(&IncrementAndAssign, 0, &callback_count, &callback_status1)); 312 base::Bind(&IncrementAndAssign, 0, &callback_count, &callback_status1));
310 313
311 // This runs last (expected counter == 4). 314 // This runs last (expected counter == 4).
312 task_manager.ScheduleTaskAtPriority( 315 task_manager.ScheduleTask(
313 FROM_HERE, 316 FROM_HERE,
314 base::Bind(&DumbTask, kStatus2), 317 base::Bind(&DumbTask, kStatus2),
315 SyncTaskManager::PRIORITY_LOW, 318 SyncTaskManager::PRIORITY_LOW,
316 base::Bind(&IncrementAndAssign, 4, &callback_count, &callback_status2)); 319 base::Bind(&IncrementAndAssign, 4, &callback_count, &callback_status2));
317 320
318 // This runs second (expected counter == 1). 321 // This runs second (expected counter == 1).
319 task_manager.ScheduleTaskAtPriority( 322 task_manager.ScheduleTask(
320 FROM_HERE, 323 FROM_HERE,
321 base::Bind(&DumbTask, kStatus3), 324 base::Bind(&DumbTask, kStatus3),
322 SyncTaskManager::PRIORITY_HIGH, 325 SyncTaskManager::PRIORITY_HIGH,
323 base::Bind(&IncrementAndAssign, 1, &callback_count, &callback_status3)); 326 base::Bind(&IncrementAndAssign, 1, &callback_count, &callback_status3));
324 327
325 // This runs fourth (expected counter == 3). 328 // This runs fourth (expected counter == 3).
326 task_manager.ScheduleTaskAtPriority( 329 task_manager.ScheduleTask(
327 FROM_HERE, 330 FROM_HERE,
328 base::Bind(&DumbTask, kStatus4), 331 base::Bind(&DumbTask, kStatus4),
329 SyncTaskManager::PRIORITY_MED, 332 SyncTaskManager::PRIORITY_MED,
330 base::Bind(&IncrementAndAssign, 3, &callback_count, &callback_status4)); 333 base::Bind(&IncrementAndAssign, 3, &callback_count, &callback_status4));
331 334
332 // This runs third (expected counter == 2). 335 // This runs third (expected counter == 2).
333 task_manager.ScheduleTaskAtPriority( 336 task_manager.ScheduleTask(
334 FROM_HERE, 337 FROM_HERE,
335 base::Bind(&DumbTask, kStatus5), 338 base::Bind(&DumbTask, kStatus5),
336 SyncTaskManager::PRIORITY_HIGH, 339 SyncTaskManager::PRIORITY_HIGH,
337 base::Bind(&IncrementAndAssign, 2, &callback_count, &callback_status5)); 340 base::Bind(&IncrementAndAssign, 2, &callback_count, &callback_status5));
338 341
339 message_loop.RunUntilIdle(); 342 message_loop.RunUntilIdle();
340 343
341 EXPECT_EQ(kStatus1, callback_status1); 344 EXPECT_EQ(kStatus1, callback_status1);
342 EXPECT_EQ(kStatus2, callback_status2); 345 EXPECT_EQ(kStatus2, callback_status2);
343 EXPECT_EQ(kStatus3, callback_status3); 346 EXPECT_EQ(kStatus3, callback_status3);
344 EXPECT_EQ(kStatus4, callback_status4); 347 EXPECT_EQ(kStatus4, callback_status4);
345 EXPECT_EQ(kStatus5, callback_status5); 348 EXPECT_EQ(kStatus5, callback_status5);
346 EXPECT_EQ(5, callback_count); 349 EXPECT_EQ(5, callback_count);
347 } 350 }
348 351
349 } // namespace sync_file_system 352 } // namespace sync_file_system
OLDNEW
« no previous file with comments | « chrome/browser/sync_file_system/sync_task_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698