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

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

Issue 11602004: Cleanup: Remote metadata parameter from ApplyLocalChange (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/file_util.h" 7 #include "base/file_util.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/message_loop_proxy.h" 9 #include "base/message_loop_proxy.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 SyncStatusCode status, 82 SyncStatusCode status,
83 const SyncFileMetadata& metadata) { 83 const SyncFileMetadata& metadata) {
84 SCOPED_TRACE(testing::Message() << where.ToString()); 84 SCOPED_TRACE(testing::Message() << where.ToString());
85 *status_out = status; 85 *status_out = status;
86 *metadata_out = metadata; 86 *metadata_out = metadata;
87 oncompleted.Run(); 87 oncompleted.Run();
88 } 88 }
89 89
90 ACTION_P(MockStatusCallback, status) { 90 ACTION_P(MockStatusCallback, status) {
91 base::MessageLoopProxy::current()->PostTask( 91 base::MessageLoopProxy::current()->PostTask(
92 FROM_HERE, base::Bind(arg4, status)); 92 FROM_HERE, base::Bind(arg3, status));
93 } 93 }
94 94
95 ACTION_P2(MockStatusCallbackAndRecordChange, status, changes) { 95 ACTION_P2(MockStatusCallbackAndRecordChange, status, changes) {
96 base::MessageLoopProxy::current()->PostTask( 96 base::MessageLoopProxy::current()->PostTask(
97 FROM_HERE, base::Bind(arg4, status)); 97 FROM_HERE, base::Bind(arg3, status));
98 changes->push_back(arg0); 98 changes->push_back(arg0);
99 } 99 }
100 100
101 } // namespace 101 } // namespace
102 102
103 class LocalFileSyncServiceTest 103 class LocalFileSyncServiceTest
104 : public testing::Test, 104 : public testing::Test,
105 public LocalFileSyncService::Observer { 105 public LocalFileSyncService::Observer {
106 protected: 106 protected:
107 LocalFileSyncServiceTest() : num_changes_(0) {} 107 LocalFileSyncServiceTest() : num_changes_(0) {}
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 StrictMock<MockSyncStatusObserver> status_observer; 322 StrictMock<MockSyncStatusObserver> status_observer;
323 EXPECT_CALL(status_observer, OnSyncEnabled(kFile)) 323 EXPECT_CALL(status_observer, OnSyncEnabled(kFile))
324 .Times(AtLeast(1)); 324 .Times(AtLeast(1));
325 file_system_->AddSyncStatusObserver(&status_observer); 325 file_system_->AddSyncStatusObserver(&status_observer);
326 326
327 // Creates and writes into a file. 327 // Creates and writes into a file.
328 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->CreateFile(kFile)); 328 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->CreateFile(kFile));
329 EXPECT_EQ(kTestFileDataSize, 329 EXPECT_EQ(kTestFileDataSize,
330 file_system_->WriteString(kFile, std::string(kTestFileData))); 330 file_system_->WriteString(kFile, std::string(kTestFileData)));
331 331
332 // Retrieve the file metadata to set up the expected values. 332 // Retrieve the expected platform_path.
333 base::PlatformFileInfo info; 333 base::PlatformFileInfo info;
334 FilePath platform_path; 334 FilePath platform_path;
335 EXPECT_EQ(base::PLATFORM_FILE_OK, 335 EXPECT_EQ(base::PLATFORM_FILE_OK,
336 file_system_->GetMetadata(kFile, &info, &platform_path)); 336 file_system_->GetMetadata(kFile, &info, &platform_path));
337 337
338 ASSERT_FALSE(info.is_directory);
339 ASSERT_EQ(kTestFileDataSize, info.size);
340
341 fileapi::SyncFileMetadata metadata;
342 metadata.file_type = fileapi::SYNC_FILE_TYPE_FILE;
343 metadata.size = info.size;
344 metadata.last_modified = info.last_modified;
345
346 // The local_change_processor's ApplyLocalChange should be called once 338 // The local_change_processor's ApplyLocalChange should be called once
347 // with ADD_OR_UPDATE change for TYPE_FILE. 339 // with ADD_OR_UPDATE change for TYPE_FILE.
348 StrictMock<MockLocalChangeProcessor> local_change_processor; 340 StrictMock<MockLocalChangeProcessor> local_change_processor;
349 const FileChange change(FileChange::FILE_CHANGE_ADD_OR_UPDATE, 341 const FileChange change(FileChange::FILE_CHANGE_ADD_OR_UPDATE,
350 fileapi::SYNC_FILE_TYPE_FILE); 342 fileapi::SYNC_FILE_TYPE_FILE);
351 EXPECT_CALL(local_change_processor, 343 EXPECT_CALL(local_change_processor,
352 ApplyLocalChange(change, platform_path, metadata, kFile, _)) 344 ApplyLocalChange(change, platform_path, kFile, _))
353 .WillOnce(MockStatusCallback(fileapi::SYNC_STATUS_OK)); 345 .WillOnce(MockStatusCallback(fileapi::SYNC_STATUS_OK));
354 346
355 local_service_->ProcessLocalChange( 347 local_service_->ProcessLocalChange(
356 &local_change_processor, 348 &local_change_processor,
357 base::Bind(&OnSyncCompleted, FROM_HERE, run_loop.QuitClosure(), 349 base::Bind(&OnSyncCompleted, FROM_HERE, run_loop.QuitClosure(),
358 fileapi::SYNC_STATUS_OK, kFile)); 350 fileapi::SYNC_STATUS_OK, kFile));
359 351
360 run_loop.Run(); 352 run_loop.Run();
361 353
362 file_system_->RemoveSyncStatusObserver(&status_observer); 354 file_system_->RemoveSyncStatusObserver(&status_observer);
(...skipping 16 matching lines...) Expand all
379 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->CreateFile(kFile)); 371 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->CreateFile(kFile));
380 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->Remove(kFile, false)); 372 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->Remove(kFile, false));
381 373
382 // The local_change_processor's ApplyLocalChange should be called once 374 // The local_change_processor's ApplyLocalChange should be called once
383 // with DELETE change for TYPE_FILE. 375 // with DELETE change for TYPE_FILE.
384 // The file will NOT exist in the remote side and the processor might 376 // The file will NOT exist in the remote side and the processor might
385 // return SYNC_FILE_ERROR_NOT_FOUND (as mocked). 377 // return SYNC_FILE_ERROR_NOT_FOUND (as mocked).
386 StrictMock<MockLocalChangeProcessor> local_change_processor; 378 StrictMock<MockLocalChangeProcessor> local_change_processor;
387 const FileChange change(FileChange::FILE_CHANGE_DELETE, 379 const FileChange change(FileChange::FILE_CHANGE_DELETE,
388 fileapi::SYNC_FILE_TYPE_FILE); 380 fileapi::SYNC_FILE_TYPE_FILE);
389 EXPECT_CALL(local_change_processor, ApplyLocalChange(change, _, _, kFile, _)) 381 EXPECT_CALL(local_change_processor, ApplyLocalChange(change, _, kFile, _))
390 .WillOnce(MockStatusCallback(fileapi::SYNC_FILE_ERROR_NOT_FOUND)); 382 .WillOnce(MockStatusCallback(fileapi::SYNC_FILE_ERROR_NOT_FOUND));
391 383
392 // The sync should succeed anyway. 384 // The sync should succeed anyway.
393 local_service_->ProcessLocalChange( 385 local_service_->ProcessLocalChange(
394 &local_change_processor, 386 &local_change_processor,
395 base::Bind(&OnSyncCompleted, FROM_HERE, run_loop.QuitClosure(), 387 base::Bind(&OnSyncCompleted, FROM_HERE, run_loop.QuitClosure(),
396 fileapi::SYNC_STATUS_OK, kFile)); 388 fileapi::SYNC_STATUS_OK, kFile));
397 389
398 run_loop.Run(); 390 run_loop.Run();
399 391
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->Remove(kPath, false)); 442 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->Remove(kPath, false));
451 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->CreateDirectory(kPath)); 443 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->CreateDirectory(kPath));
452 444
453 // Creates one more file. 445 // Creates one more file.
454 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->CreateFile(kOther)); 446 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->CreateFile(kOther));
455 447
456 // The local_change_processor's ApplyLocalChange will be called 448 // The local_change_processor's ApplyLocalChange will be called
457 // twice for FILE_TYPE and FILE_DIRECTORY. 449 // twice for FILE_TYPE and FILE_DIRECTORY.
458 StrictMock<MockLocalChangeProcessor> local_change_processor; 450 StrictMock<MockLocalChangeProcessor> local_change_processor;
459 std::vector<FileChange> changes; 451 std::vector<FileChange> changes;
460 EXPECT_CALL(local_change_processor, ApplyLocalChange(_, _, _, kPath, _)) 452 EXPECT_CALL(local_change_processor, ApplyLocalChange(_, _, kPath, _))
461 .Times(2) 453 .Times(2)
462 .WillOnce(MockStatusCallbackAndRecordChange(fileapi::SYNC_STATUS_OK, 454 .WillOnce(MockStatusCallbackAndRecordChange(fileapi::SYNC_STATUS_OK,
463 &changes)) 455 &changes))
464 .WillOnce(MockStatusCallbackAndRecordChange(fileapi::SYNC_STATUS_OK, 456 .WillOnce(MockStatusCallbackAndRecordChange(fileapi::SYNC_STATUS_OK,
465 &changes)); 457 &changes));
466 458
467 local_service_->ProcessLocalChange( 459 local_service_->ProcessLocalChange(
468 &local_change_processor, 460 &local_change_processor,
469 base::Bind(&OnSyncCompleted, FROM_HERE, run_loop.QuitClosure(), 461 base::Bind(&OnSyncCompleted, FROM_HERE, run_loop.QuitClosure(),
470 fileapi::SYNC_STATUS_OK, kPath)); 462 fileapi::SYNC_STATUS_OK, kPath));
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 } 531 }
540 532
541 EXPECT_EQ(1, GetNumChangesInTracker()); 533 EXPECT_EQ(1, GetNumChangesInTracker());
542 file_system_->GetChangedURLsInTracker(&urlset); 534 file_system_->GetChangedURLsInTracker(&urlset);
543 EXPECT_EQ(1U, urlset.size()); 535 EXPECT_EQ(1U, urlset.size());
544 EXPECT_TRUE(urlset.find(kURL) != urlset.end()); 536 EXPECT_TRUE(urlset.find(kURL) != urlset.end());
545 537
546 // Next local sync should pick up the recorded change. 538 // Next local sync should pick up the recorded change.
547 StrictMock<MockLocalChangeProcessor> local_change_processor; 539 StrictMock<MockLocalChangeProcessor> local_change_processor;
548 std::vector<FileChange> changes; 540 std::vector<FileChange> changes;
549 EXPECT_CALL(local_change_processor, ApplyLocalChange(_, _, _, kURL, _)) 541 EXPECT_CALL(local_change_processor, ApplyLocalChange(_, _, kURL, _))
550 .WillOnce(MockStatusCallbackAndRecordChange(fileapi::SYNC_STATUS_OK, 542 .WillOnce(MockStatusCallbackAndRecordChange(fileapi::SYNC_STATUS_OK,
551 &changes)); 543 &changes));
552 { 544 {
553 base::RunLoop run_loop; 545 base::RunLoop run_loop;
554 local_service_->ProcessLocalChange( 546 local_service_->ProcessLocalChange(
555 &local_change_processor, 547 &local_change_processor,
556 base::Bind(&OnSyncCompleted, FROM_HERE, run_loop.QuitClosure(), 548 base::Bind(&OnSyncCompleted, FROM_HERE, run_loop.QuitClosure(),
557 fileapi::SYNC_STATUS_OK, kURL)); 549 fileapi::SYNC_STATUS_OK, kURL));
558 run_loop.Run(); 550 run_loop.Run();
559 } 551 }
560 552
561 EXPECT_EQ(1U, changes.size()); 553 EXPECT_EQ(1U, changes.size());
562 EXPECT_EQ(change, changes[0]); 554 EXPECT_EQ(change, changes[0]);
563 } 555 }
564 556
565 // TODO(kinuko): Add tests for multiple file changes and multiple 557 // TODO(kinuko): Add tests for multiple file changes and multiple
566 // FileSystemContexts. 558 // FileSystemContexts.
567 559
568 } // namespace sync_file_system 560 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698