mock_remote_file_sync_service.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_FILE_SYNC_SERVICE_H_ 6#define CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_FILE_SYNC_SERVICE_H_ 7 8#include <map> 9 10#include "base/memory/scoped_ptr.h" 11#include "base/observer_list.h" 12#include "chrome/browser/sync_file_system/file_status_observer.h" 13#include "chrome/browser/sync_file_system/mock_local_change_processor.h" 14#include "chrome/browser/sync_file_system/remote_change_processor.h" 15#include "chrome/browser/sync_file_system/remote_file_sync_service.h" 16#include "googleurl/src/gurl.h" 17#include "testing/gmock/include/gmock/gmock.h" 18#include "webkit/fileapi/syncable/sync_callbacks.h" 19#include "webkit/fileapi/syncable/sync_direction.h" 20#include "webkit/fileapi/syncable/sync_file_metadata.h" 21 22namespace sync_file_system { 23 24class MockRemoteFileSyncService : public RemoteFileSyncService { 25 public: 26 static const char kServiceName[]; 27 28 MockRemoteFileSyncService(); 29 virtual ~MockRemoteFileSyncService(); 30 31 // RemoteFileSyncService overrides. 32 MOCK_METHOD1(AddServiceObserver, 33 void(RemoteFileSyncService::Observer* observer)); 34 MOCK_METHOD1(AddFileStatusObserver, 35 void(FileStatusObserver* observer)); 36 MOCK_METHOD2(RegisterOriginForTrackingChanges, 37 void(const GURL& origin, const SyncStatusCallback& callback)); 38 MOCK_METHOD2(UnregisterOriginForTrackingChanges, 39 void(const GURL& origin, const SyncStatusCallback& callback)); 40 MOCK_METHOD2(EnableOriginForTrackingChanges, 41 void(const GURL& origin, const SyncStatusCallback& callback)); 42 MOCK_METHOD2(DisableOriginForTrackingChanges, 43 void(const GURL& origin, const SyncStatusCallback& callback)); 44 MOCK_METHOD2(UninstallOrigin, 45 void(const GURL& origin, const SyncStatusCallback& callback)); 46 MOCK_METHOD1(ProcessRemoteChange, 47 void(const SyncFileCallback& callback)); 48 MOCK_METHOD1(SetRemoteChangeProcessor, 49 void(RemoteChangeProcessor* processor)); 50 MOCK_METHOD0(GetLocalChangeProcessor, LocalChangeProcessor*()); 51 MOCK_METHOD1(IsConflicting, bool(const fileapi::FileSystemURL& url)); 52 MOCK_CONST_METHOD0(GetCurrentState, 53 RemoteServiceState()); 54 MOCK_CONST_METHOD0(GetServiceName, const char*()); 55 MOCK_METHOD1(SetSyncEnabled, void(bool)); 56 MOCK_METHOD1(SetConflictResolutionPolicy, 57 SyncStatusCode(ConflictResolutionPolicy)); 58 MOCK_CONST_METHOD0(GetConflictResolutionPolicy, 59 ConflictResolutionPolicy()); 60 61 // Send notifications to the observers. 62 // Can be used in the mock implementation. 63 void NotifyRemoteChangeQueueUpdated(int64 pending_changes); 64 void NotifyRemoteServiceStateUpdated( 65 RemoteServiceState state, 66 const std::string& description); 67 void NotifyFileStatusChanged( 68 const fileapi::FileSystemURL& url, 69 SyncFileStatus sync_status, 70 SyncAction action_taken, 71 SyncDirection direction); 72 73 private: 74 void AddServiceObserverStub(Observer* observer); 75 void AddFileStatusObserverStub(FileStatusObserver* observer); 76 void RegisterOriginForTrackingChangesStub( 77 const GURL& origin, const SyncStatusCallback& callback); 78 void UnregisterOriginForTrackingChangesStub( 79 const GURL& origin, const SyncStatusCallback& callback); 80 void DeleteOriginDirectoryStub( 81 const GURL& origin, const SyncStatusCallback& callback); 82 void ProcessRemoteChangeStub(const SyncFileCallback& callback); 83 SyncStatusCode SetConflictResolutionPolicyStub( 84 ConflictResolutionPolicy policy); 85 ConflictResolutionPolicy GetConflictResolutionPolicyStub() const; 86 87 // For default implementation. 88 ::testing::NiceMock<MockLocalChangeProcessor> mock_local_change_processor_; 89 90 ObserverList<Observer> service_observers_; 91 ObserverList<FileStatusObserver> file_status_observers_; 92 93 ConflictResolutionPolicy conflict_resolution_policy_; 94 95 DISALLOW_COPY_AND_ASSIGN(MockRemoteFileSyncService); 96}; 97 98} // namespace sync_file_system 99 100#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_FILE_SYNC_SERVICE_H_ 101