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 3 // found in the LICENSE file. 4 5 #include "chrome/browser/sync_file_system/mock_remote_file_sync_service.h" 6 7 #include <string> 8 9 #include "base/bind.h" 10 #include "base/location.h" 11 #include "base/single_thread_task_runner.h" 12 #include "base/thread_task_runner_handle.h" 13 #include "storage/browser/fileapi/file_system_url.h" 14 #include "url/gurl.h" 15 16 using ::testing::_; 17 using ::testing::Invoke; 18 using ::testing::Return; 19 20 namespace sync_file_system { 21 22 MockRemoteFileSyncService::MockRemoteFileSyncService() 23 : conflict_resolution_policy_(CONFLICT_RESOLUTION_POLICY_MANUAL), 24 state_(REMOTE_SERVICE_OK) { 25 typedef MockRemoteFileSyncService self; 26 ON_CALL(*this, AddServiceObserver(_)) 27 .WillByDefault(Invoke(this, &self::AddServiceObserverStub)); 28 ON_CALL(*this, AddFileStatusObserver(_)) 29 .WillByDefault(Invoke(this, &self::AddFileStatusObserverStub)); 30 ON_CALL(*this, RegisterOrigin(_, _)) 31 .WillByDefault(Invoke(this, &self::RegisterOriginStub)); 32 ON_CALL(*this, UninstallOrigin(_, _, _)) 33 .WillByDefault( 34 Invoke(this, &self::DeleteOriginDirectoryStub)); 35 ON_CALL(*this, ProcessRemoteChange(_)) 36 .WillByDefault(Invoke(this, &self::ProcessRemoteChangeStub)); 37 ON_CALL(*this, GetLocalChangeProcessor()) 38 .WillByDefault(Return(&mock_local_change_processor_)); 39 ON_CALL(*this, GetCurrentState()) 40 .WillByDefault(Invoke(this, &self::GetCurrentStateStub)); 41 } 42 43 MockRemoteFileSyncService::~MockRemoteFileSyncService() { 44 } 45 46 void MockRemoteFileSyncService::DumpFiles(const GURL& origin, 47 const ListCallback& callback) { 48 callback.Run(scoped_ptr<base::ListValue>()); 49 } 50 51 void MockRemoteFileSyncService::DumpDatabase(const ListCallback& callback) { 52 callback.Run(scoped_ptr<base::ListValue>()); 53 } 54 55 void MockRemoteFileSyncService::SetServiceState(RemoteServiceState state) { 56 state_ = state; 57 } 58 59 void MockRemoteFileSyncService::NotifyRemoteChangeQueueUpdated( 60 int64 pending_changes) { 61 FOR_EACH_OBSERVER(Observer, service_observers_, 62 OnRemoteChangeQueueUpdated(pending_changes)); 63 } 64 65 void MockRemoteFileSyncService::NotifyRemoteServiceStateUpdated( 66 RemoteServiceState state, 67 const std::string& description) { 68 FOR_EACH_OBSERVER(Observer, service_observers_, 69 OnRemoteServiceStateUpdated(state, description)); 70 } 71 72 void MockRemoteFileSyncService::NotifyFileStatusChanged( 73 const storage::FileSystemURL& url, 74 SyncFileStatus sync_status, 75 SyncAction action_taken, 76 SyncDirection direction) { 77 FOR_EACH_OBSERVER(FileStatusObserver, file_status_observers_, 78 OnFileStatusChanged(url, sync_status, 79 action_taken, direction)); 80 } 81 82 void MockRemoteFileSyncService::AddServiceObserverStub(Observer* observer) { 83 service_observers_.AddObserver(observer); 84 } 85 86 void MockRemoteFileSyncService::AddFileStatusObserverStub( 87 FileStatusObserver* observer) { 88 file_status_observers_.AddObserver(observer); 89 } 90 91 void MockRemoteFileSyncService::RegisterOriginStub( 92 const GURL& origin, 93 const SyncStatusCallback& callback) { 94 base::ThreadTaskRunnerHandle::Get()->PostTask( 95 FROM_HERE, 96 base::Bind(callback, SYNC_STATUS_OK)); 97 } 98 99 void MockRemoteFileSyncService::DeleteOriginDirectoryStub( 100 const GURL& origin, 101 UninstallFlag flag, 102 const SyncStatusCallback& callback) { 103 base::ThreadTaskRunnerHandle::Get()->PostTask( 104 FROM_HERE, 105 base::Bind(callback, SYNC_STATUS_OK)); 106 } 107 108 void MockRemoteFileSyncService::ProcessRemoteChangeStub( 109 const SyncFileCallback& callback) { 110 base::ThreadTaskRunnerHandle::Get()->PostTask( 111 FROM_HERE, 112 base::Bind( 113 callback, SYNC_STATUS_NO_CHANGE_TO_SYNC, storage::FileSystemURL())); 114 } 115 116 RemoteServiceState MockRemoteFileSyncService::GetCurrentStateStub() const { 117 return state_; 118 } 119 120 } // namespace sync_file_system 121