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