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

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

Issue 12304015: Migrated sync_file_status, sync_action and sync_direction from fileapi:: namespace to sync_file_sys… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 10 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
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 <vector> 5 #include <vector>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 43
44 namespace { 44 namespace {
45 45
46 const char kOrigin[] = "http://example.com"; 46 const char kOrigin[] = "http://example.com";
47 const char kServiceName[] = "test"; 47 const char kServiceName[] = "test";
48 48
49 template <typename R> struct AssignTrait { 49 template <typename R> struct AssignTrait {
50 typedef const R& ArgumentType; 50 typedef const R& ArgumentType;
51 }; 51 };
52 52
53 template <> struct AssignTrait<fileapi::SyncFileStatus> { 53 template <> struct AssignTrait<SyncFileStatus> {
54 typedef fileapi::SyncFileStatus ArgumentType; 54 typedef SyncFileStatus ArgumentType;
55 }; 55 };
56 56
57 template <typename R> 57 template <typename R>
58 void AssignValueAndQuit(base::RunLoop* run_loop, 58 void AssignValueAndQuit(base::RunLoop* run_loop,
59 SyncStatusCode* status_out, R* value_out, 59 SyncStatusCode* status_out, R* value_out,
60 SyncStatusCode status, 60 SyncStatusCode status,
61 typename AssignTrait<R>::ArgumentType value) { 61 typename AssignTrait<R>::ArgumentType value) {
62 DCHECK(status_out); 62 DCHECK(status_out);
63 DCHECK(value_out); 63 DCHECK(value_out);
64 DCHECK(run_loop); 64 DCHECK(run_loop);
(...skipping 16 matching lines...) Expand all
81 public: 81 public:
82 MockSyncEventObserver() {} 82 MockSyncEventObserver() {}
83 virtual ~MockSyncEventObserver() {} 83 virtual ~MockSyncEventObserver() {}
84 84
85 MOCK_METHOD3(OnSyncStateUpdated, 85 MOCK_METHOD3(OnSyncStateUpdated,
86 void(const GURL& app_origin, 86 void(const GURL& app_origin,
87 SyncServiceState state, 87 SyncServiceState state,
88 const std::string& description)); 88 const std::string& description));
89 MOCK_METHOD4(OnFileSynced, 89 MOCK_METHOD4(OnFileSynced,
90 void(const fileapi::FileSystemURL& url, 90 void(const fileapi::FileSystemURL& url,
91 fileapi::SyncFileStatus status, 91 SyncFileStatus status,
92 fileapi::SyncAction action, 92 SyncAction action,
93 fileapi::SyncDirection direction)); 93 SyncDirection direction));
94 }; 94 };
95 95
96 ACTION_P3(NotifyStateAndCallback, 96 ACTION_P3(NotifyStateAndCallback,
97 mock_remote_service, service_state, operation_status) { 97 mock_remote_service, service_state, operation_status) {
98 mock_remote_service->NotifyRemoteServiceStateUpdated( 98 mock_remote_service->NotifyRemoteServiceStateUpdated(
99 service_state, "Test event."); 99 service_state, "Test event.");
100 base::MessageLoopProxy::current()->PostTask( 100 base::MessageLoopProxy::current()->PostTask(
101 FROM_HERE, base::Bind(arg1, operation_status)); 101 FROM_HERE, base::Bind(arg1, operation_status));
102 } 102 }
103 103
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 412
413 event.Wait(); 413 event.Wait();
414 } 414 }
415 415
416 TEST_F(SyncFileSystemServiceTest, GetFileSyncStatus) { 416 TEST_F(SyncFileSystemServiceTest, GetFileSyncStatus) {
417 InitializeApp(); 417 InitializeApp();
418 418
419 const FileSystemURL kFile(file_system_->URL("foo")); 419 const FileSystemURL kFile(file_system_->URL("foo"));
420 420
421 fileapi::SyncStatusCode status; 421 fileapi::SyncStatusCode status;
422 fileapi::SyncFileStatus sync_file_status; 422 SyncFileStatus sync_file_status;
423 423
424 // 1. The file is not in conflicting nor in pending change state. 424 // 1. The file is not in conflicting nor in pending change state.
425 { 425 {
426 base::RunLoop run_loop; 426 base::RunLoop run_loop;
427 EXPECT_CALL(*mock_remote_service(), IsConflicting(kFile)) 427 EXPECT_CALL(*mock_remote_service(), IsConflicting(kFile))
428 .WillOnce(Return(false)); 428 .WillOnce(Return(false));
429 429
430 status = fileapi::SYNC_STATUS_UNKNOWN; 430 status = fileapi::SYNC_STATUS_UNKNOWN;
431 sync_file_status = fileapi::SYNC_FILE_STATUS_UNKNOWN; 431 sync_file_status = SYNC_FILE_STATUS_UNKNOWN;
432 sync_service_->GetFileSyncStatus( 432 sync_service_->GetFileSyncStatus(
433 kFile, 433 kFile,
434 base::Bind(&AssignValueAndQuit<fileapi::SyncFileStatus>, 434 base::Bind(&AssignValueAndQuit<SyncFileStatus>,
435 &run_loop, &status, &sync_file_status)); 435 &run_loop, &status, &sync_file_status));
436 run_loop.Run(); 436 run_loop.Run();
437 437
438 EXPECT_EQ(fileapi::SYNC_STATUS_OK, status); 438 EXPECT_EQ(fileapi::SYNC_STATUS_OK, status);
439 EXPECT_EQ(fileapi::SYNC_FILE_STATUS_SYNCED, sync_file_status); 439 EXPECT_EQ(SYNC_FILE_STATUS_SYNCED, sync_file_status);
440 } 440 }
441 441
442 // 2. Conflicting case. 442 // 2. Conflicting case.
443 { 443 {
444 base::RunLoop run_loop; 444 base::RunLoop run_loop;
445 EXPECT_CALL(*mock_remote_service(), IsConflicting(kFile)) 445 EXPECT_CALL(*mock_remote_service(), IsConflicting(kFile))
446 .WillOnce(Return(true)); 446 .WillOnce(Return(true));
447 447
448 status = fileapi::SYNC_STATUS_UNKNOWN; 448 status = fileapi::SYNC_STATUS_UNKNOWN;
449 sync_file_status = fileapi::SYNC_FILE_STATUS_UNKNOWN; 449 sync_file_status = SYNC_FILE_STATUS_UNKNOWN;
450 sync_service_->GetFileSyncStatus( 450 sync_service_->GetFileSyncStatus(
451 kFile, 451 kFile,
452 base::Bind(&AssignValueAndQuit<fileapi::SyncFileStatus>, 452 base::Bind(&AssignValueAndQuit<SyncFileStatus>,
453 &run_loop, &status, &sync_file_status)); 453 &run_loop, &status, &sync_file_status));
454 run_loop.Run(); 454 run_loop.Run();
455 455
456 EXPECT_EQ(fileapi::SYNC_STATUS_OK, status); 456 EXPECT_EQ(fileapi::SYNC_STATUS_OK, status);
457 EXPECT_EQ(fileapi::SYNC_FILE_STATUS_CONFLICTING, sync_file_status); 457 EXPECT_EQ(SYNC_FILE_STATUS_CONFLICTING, sync_file_status);
458 } 458 }
459 459
460 // 3. The file has pending local changes. 460 // 3. The file has pending local changes.
461 { 461 {
462 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->CreateFile(kFile)); 462 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->CreateFile(kFile));
463 463
464 base::RunLoop run_loop; 464 base::RunLoop run_loop;
465 EXPECT_CALL(*mock_remote_service(), IsConflicting(kFile)) 465 EXPECT_CALL(*mock_remote_service(), IsConflicting(kFile))
466 .WillOnce(Return(false)); 466 .WillOnce(Return(false));
467 467
468 status = fileapi::SYNC_STATUS_UNKNOWN; 468 status = fileapi::SYNC_STATUS_UNKNOWN;
469 sync_file_status = fileapi::SYNC_FILE_STATUS_UNKNOWN; 469 sync_file_status = SYNC_FILE_STATUS_UNKNOWN;
470 sync_service_->GetFileSyncStatus( 470 sync_service_->GetFileSyncStatus(
471 kFile, 471 kFile,
472 base::Bind(&AssignValueAndQuit<fileapi::SyncFileStatus>, 472 base::Bind(&AssignValueAndQuit<SyncFileStatus>,
473 &run_loop, &status, &sync_file_status)); 473 &run_loop, &status, &sync_file_status));
474 run_loop.Run(); 474 run_loop.Run();
475 475
476 EXPECT_EQ(fileapi::SYNC_STATUS_OK, status); 476 EXPECT_EQ(fileapi::SYNC_STATUS_OK, status);
477 EXPECT_EQ(fileapi::SYNC_FILE_STATUS_HAS_PENDING_CHANGES, sync_file_status); 477 EXPECT_EQ(SYNC_FILE_STATUS_HAS_PENDING_CHANGES, sync_file_status);
478 } 478 }
479 479
480 // 4. The file has a conflict and pending local changes. In this case 480 // 4. The file has a conflict and pending local changes. In this case
481 // we return SYNC_FILE_STATUS_CONFLICTING. 481 // we return SYNC_FILE_STATUS_CONFLICTING.
482 { 482 {
483 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->TruncateFile(kFile, 1U)); 483 EXPECT_EQ(base::PLATFORM_FILE_OK, file_system_->TruncateFile(kFile, 1U));
484 484
485 base::RunLoop run_loop; 485 base::RunLoop run_loop;
486 EXPECT_CALL(*mock_remote_service(), IsConflicting(kFile)) 486 EXPECT_CALL(*mock_remote_service(), IsConflicting(kFile))
487 .WillOnce(Return(true)); 487 .WillOnce(Return(true));
488 488
489 status = fileapi::SYNC_STATUS_UNKNOWN; 489 status = fileapi::SYNC_STATUS_UNKNOWN;
490 sync_file_status = fileapi::SYNC_FILE_STATUS_UNKNOWN; 490 sync_file_status = SYNC_FILE_STATUS_UNKNOWN;
491 sync_service_->GetFileSyncStatus( 491 sync_service_->GetFileSyncStatus(
492 kFile, 492 kFile,
493 base::Bind(&AssignValueAndQuit<fileapi::SyncFileStatus>, 493 base::Bind(&AssignValueAndQuit<SyncFileStatus>,
494 &run_loop, &status, &sync_file_status)); 494 &run_loop, &status, &sync_file_status));
495 run_loop.Run(); 495 run_loop.Run();
496 496
497 EXPECT_EQ(fileapi::SYNC_STATUS_OK, status); 497 EXPECT_EQ(fileapi::SYNC_STATUS_OK, status);
498 EXPECT_EQ(fileapi::SYNC_FILE_STATUS_CONFLICTING, sync_file_status); 498 EXPECT_EQ(SYNC_FILE_STATUS_CONFLICTING, sync_file_status);
499 } 499 }
500 } 500 }
501 501
502 } // namespace sync_file_system 502 } // namespace sync_file_system
OLDNEW
« no previous file with comments | « chrome/browser/sync_file_system/sync_file_system_service.cc ('k') | webkit/fileapi/syncable/sync_action.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698