mock_remote_file_sync_service.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// Use of this source code is governed by a BSD-style license that can be 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// found in the LICENSE file. 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#include "chrome/browser/sync_file_system/mock_remote_file_sync_service.h" 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#include <string> 8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "base/bind.h" 108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "base/location.h" 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "base/message_loop/message_loop_proxy.h" 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "url/gurl.h" 138b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org#include "webkit/browser/fileapi/file_system_url.h" 148b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comusing ::testing::_; 16548a1f321011292359ef163f78c8a1d4871b3b7freed@google.comusing ::testing::Invoke; 17548a1f321011292359ef163f78c8a1d4871b3b7freed@google.comusing ::testing::Return; 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 193334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgnamespace sync_file_system { 203334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comMockRemoteFileSyncService::MockRemoteFileSyncService() 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com : conflict_resolution_policy_(CONFLICT_RESOLUTION_POLICY_MANUAL), 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com state_(REMOTE_SERVICE_OK) { 24fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com typedef MockRemoteFileSyncService self; 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ON_CALL(*this, AddServiceObserver(_)) 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com .WillByDefault(Invoke(this, &self::AddServiceObserverStub)); 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ON_CALL(*this, AddFileStatusObserver(_)) 283334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org .WillByDefault(Invoke(this, &self::AddFileStatusObserverStub)); 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ON_CALL(*this, RegisterOrigin(_, _)) 308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com .WillByDefault(Invoke(this, &self::RegisterOriginStub)); 318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ON_CALL(*this, UninstallOrigin(_, _, _)) 328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com .WillByDefault( 338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com Invoke(this, &self::DeleteOriginDirectoryStub)); 343334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org ON_CALL(*this, ProcessRemoteChange(_)) 354bbdeac58cc928dc66296bde3bd06e78070d96b7reed@google.com .WillByDefault(Invoke(this, &self::ProcessRemoteChangeStub)); 36548a1f321011292359ef163f78c8a1d4871b3b7freed@google.com ON_CALL(*this, GetLocalChangeProcessor()) 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com .WillByDefault(Return(&mock_local_change_processor_)); 383334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org ON_CALL(*this, IsConflicting(_)) 398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com .WillByDefault(Return(false)); 408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ON_CALL(*this, GetCurrentState()) 418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com .WillByDefault(Invoke(this, &self::GetCurrentStateStub)); 428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ON_CALL(*this, SetDefaultConflictResolutionPolicy(_)) 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com .WillByDefault( 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com Invoke(this, &self::SetDefaultConflictResolutionPolicyStub)); 458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ON_CALL(*this, SetConflictResolutionPolicy(_, _)) 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com .WillByDefault(Invoke(this, &self::SetConflictResolutionPolicyStub)); 478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ON_CALL(*this, GetDefaultConflictResolutionPolicy()) 488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com .WillByDefault( 498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com Invoke(this, &self::GetDefaultConflictResolutionPolicyStub)); 508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ON_CALL(*this, GetConflictResolutionPolicy(_)) 518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com .WillByDefault(Invoke(this, &self::GetConflictResolutionPolicyStub)); 528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comMockRemoteFileSyncService::~MockRemoteFileSyncService() { 554a3b714d73e585a3985d614600c6b79d5c8b1f1ereed@google.com} 563334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org 573334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgscoped_ptr<base::ListValue> MockRemoteFileSyncService::DumpFiles( 583334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org const GURL& origin) { 593334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org return scoped_ptr<base::ListValue>(); 603334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org} 613334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org 623334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgscoped_ptr<base::ListValue> MockRemoteFileSyncService::DumpDatabase() { 633334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org return scoped_ptr<base::ListValue>(); 643334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org} 653334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org 663334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::SetServiceState(RemoteServiceState state) { 673334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org state_ = state; 683334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org} 693334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org 703334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::NotifyRemoteChangeQueueUpdated( 718a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int64 pending_changes) { 728a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com FOR_EACH_OBSERVER(Observer, service_observers_, 738a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com OnRemoteChangeQueueUpdated(pending_changes)); 748a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 758a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 763334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::NotifyRemoteServiceStateUpdated( 773334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org RemoteServiceState state, 783334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org const std::string& description) { 798a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com FOR_EACH_OBSERVER(Observer, service_observers_, 808a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com OnRemoteServiceStateUpdated(state, description)); 818a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 828a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 838a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comvoid MockRemoteFileSyncService::NotifyFileStatusChanged( 848a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com const fileapi::FileSystemURL& url, 853334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org SyncFileStatus sync_status, 868a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SyncAction action_taken, 873334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org SyncDirection direction) { 883334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org FOR_EACH_OBSERVER(FileStatusObserver, file_status_observers_, 893334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org OnFileStatusChanged(url, sync_status, 903334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org action_taken, direction)); 913334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org} 923334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org 933334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::AddServiceObserverStub(Observer* observer) { 943334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org service_observers_.AddObserver(observer); 953334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org} 963334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org 973334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::AddFileStatusObserverStub( 983334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org FileStatusObserver* observer) { 993334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org file_status_observers_.AddObserver(observer); 1003334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org} 1013334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org 1023334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::RegisterOriginStub( 1033334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org const GURL& origin, 1043334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org const SyncStatusCallback& callback) { 1053334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org base::MessageLoopProxy::current()->PostTask( 1063334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org FROM_HERE, 1073334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org base::Bind(callback, SYNC_STATUS_OK)); 1083334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org} 1093334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org 1103334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::DeleteOriginDirectoryStub( 1113334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org const GURL& origin, 1123334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org UninstallFlag flag, 1133334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org const SyncStatusCallback& callback) { 1143334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org base::MessageLoopProxy::current()->PostTask( 115277c3f87656c44e0a651ed0dd56efa16c0ab07b4reed@google.com FROM_HERE, 116277c3f87656c44e0a651ed0dd56efa16c0ab07b4reed@google.com base::Bind(callback, SYNC_STATUS_OK)); 117277c3f87656c44e0a651ed0dd56efa16c0ab07b4reed@google.com} 1183334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org 1193334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::ProcessRemoteChangeStub( 1208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com const SyncFileCallback& callback) { 1218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com base::MessageLoopProxy::current()->PostTask( 1223334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org FROM_HERE, 1238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com base::Bind(callback, SYNC_STATUS_NO_CHANGE_TO_SYNC, 1243334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org fileapi::FileSystemURL())); 1258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 1268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSyncStatusCode 1288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comMockRemoteFileSyncService::SetDefaultConflictResolutionPolicyStub( 1298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ConflictResolutionPolicy policy) { 1308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com conflict_resolution_policy_ = policy; 1319fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed return SYNC_STATUS_OK; 1329fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed} 1339fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed 1349fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reedSyncStatusCode MockRemoteFileSyncService::SetConflictResolutionPolicyStub( 1358b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org const GURL& origin, 1368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ConflictResolutionPolicy policy) { 1378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com conflict_resolution_policy_ = policy; 1388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return SYNC_STATUS_OK; 1399fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed} 1408b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org 1418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comConflictResolutionPolicy 1428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comMockRemoteFileSyncService::GetDefaultConflictResolutionPolicyStub() const { 1439fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed return conflict_resolution_policy_; 144} 145 146ConflictResolutionPolicy 147MockRemoteFileSyncService::GetConflictResolutionPolicyStub( 148 const GURL& origin) const { 149 return conflict_resolution_policy_; 150} 151 152RemoteServiceState MockRemoteFileSyncService::GetCurrentStateStub() const { 153 return state_; 154} 155 156} // namespace sync_file_system 157