mock_remote_file_sync_service.cc revision cedac228d2dd51db4b79ea1e72c7f249408ee061
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync_file_system/mock_remote_file_sync_service.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include <string> 8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/bind.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/location.h" 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/message_loop/message_loop_proxy.h" 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "url/gurl.h" 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "webkit/browser/fileapi/file_system_url.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochusing ::testing::_; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using ::testing::Invoke; 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using ::testing::Return; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace sync_file_system { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockRemoteFileSyncService::MockRemoteFileSyncService() 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : conflict_resolution_policy_(CONFLICT_RESOLUTION_POLICY_MANUAL), 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) state_(REMOTE_SERVICE_OK) { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef MockRemoteFileSyncService self; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ON_CALL(*this, AddServiceObserver(_)) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) .WillByDefault(Invoke(this, &self::AddServiceObserverStub)); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ON_CALL(*this, AddFileStatusObserver(_)) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) .WillByDefault(Invoke(this, &self::AddFileStatusObserverStub)); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ON_CALL(*this, RegisterOrigin(_, _)) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) .WillByDefault(Invoke(this, &self::RegisterOriginStub)); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ON_CALL(*this, UninstallOrigin(_, _, _)) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) .WillByDefault( 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Invoke(this, &self::DeleteOriginDirectoryStub)); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ON_CALL(*this, ProcessRemoteChange(_)) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) .WillByDefault(Invoke(this, &self::ProcessRemoteChangeStub)); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ON_CALL(*this, GetLocalChangeProcessor()) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) .WillByDefault(Return(&mock_local_change_processor_)); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ON_CALL(*this, GetCurrentState()) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) .WillByDefault(Invoke(this, &self::GetCurrentStateStub)); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockRemoteFileSyncService::~MockRemoteFileSyncService() { 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockRemoteFileSyncService::DumpFiles(const GURL& origin, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ListCallback& callback) { 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) callback.Run(scoped_ptr<base::ListValue>()); 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockRemoteFileSyncService::DumpDatabase(const ListCallback& callback) { 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) callback.Run(scoped_ptr<base::ListValue>()); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockRemoteFileSyncService::SetServiceState(RemoteServiceState state) { 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) state_ = state; 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockRemoteFileSyncService::NotifyRemoteChangeQueueUpdated( 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 pending_changes) { 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FOR_EACH_OBSERVER(Observer, service_observers_, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OnRemoteChangeQueueUpdated(pending_changes)); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockRemoteFileSyncService::NotifyRemoteServiceStateUpdated( 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RemoteServiceState state, 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& description) { 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FOR_EACH_OBSERVER(Observer, service_observers_, 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OnRemoteServiceStateUpdated(state, description)); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockRemoteFileSyncService::NotifyFileStatusChanged( 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const fileapi::FileSystemURL& url, 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SyncFileStatus sync_status, 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SyncAction action_taken, 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SyncDirection direction) { 76eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FOR_EACH_OBSERVER(FileStatusObserver, file_status_observers_, 77eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch OnFileStatusChanged(url, sync_status, 78eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch action_taken, direction)); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MockRemoteFileSyncService::AddServiceObserverStub(Observer* observer) { 82 service_observers_.AddObserver(observer); 83} 84 85void MockRemoteFileSyncService::AddFileStatusObserverStub( 86 FileStatusObserver* observer) { 87 file_status_observers_.AddObserver(observer); 88} 89 90void 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 98void 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 107void 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 115RemoteServiceState MockRemoteFileSyncService::GetCurrentStateStub() const { 116 return state_; 117} 118 119} // namespace sync_file_system 120