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