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