1 // Copyright 2014 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_DRIVE_BACKEND_FAKE_SYNC_WORKER_H_ 6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_FAKE_SYNC_WORKER_H_ 7 8 #include <map> 9 #include <string> 10 11 #include "base/callback.h" 12 #include "base/memory/scoped_ptr.h" 13 #include "base/observer_list.h" 14 #include "base/sequence_checker.h" 15 #include "chrome/browser/sync_file_system/drive_backend/sync_worker_interface.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 "net/base/network_change_notifier.h" 19 20 class GURL; 21 22 namespace base { 23 class FilePath; 24 class ListValue; 25 } 26 27 namespace drive { 28 class DriveServiceInterface; 29 class DriveUploaderInterface; 30 } 31 32 namespace storage { 33 class FileSystemURL; 34 } 35 36 namespace sync_file_system { 37 38 class FileChange; 39 class SyncFileMetadata; 40 41 namespace drive_backend { 42 43 class MetadataDatabase; 44 class RemoteChangeProcessorOnWorker; 45 class SyncEngineContext; 46 class SyncTaskManager; 47 48 class FakeSyncWorker : public SyncWorkerInterface { 49 public: 50 FakeSyncWorker(); 51 virtual ~FakeSyncWorker(); 52 53 // SyncWorkerInterface overrides. 54 virtual void Initialize( 55 scoped_ptr<SyncEngineContext> sync_engine_context) OVERRIDE; 56 virtual void RegisterOrigin(const GURL& origin, 57 const SyncStatusCallback& callback) OVERRIDE; 58 virtual void EnableOrigin(const GURL& origin, 59 const SyncStatusCallback& callback) OVERRIDE; 60 virtual void DisableOrigin(const GURL& origin, 61 const SyncStatusCallback& callback) OVERRIDE; 62 virtual void UninstallOrigin( 63 const GURL& origin, 64 RemoteFileSyncService::UninstallFlag flag, 65 const SyncStatusCallback& callback) OVERRIDE; 66 virtual void ProcessRemoteChange(const SyncFileCallback& callback) OVERRIDE; 67 virtual void SetRemoteChangeProcessor( 68 RemoteChangeProcessorOnWorker* remote_change_processor_on_worker) 69 OVERRIDE; 70 virtual RemoteServiceState GetCurrentState() const OVERRIDE; 71 virtual void GetOriginStatusMap( 72 const RemoteFileSyncService::StatusMapCallback& callback) OVERRIDE; 73 virtual scoped_ptr<base::ListValue> DumpFiles(const GURL& origin) OVERRIDE; 74 virtual scoped_ptr<base::ListValue> DumpDatabase() OVERRIDE; 75 virtual void SetSyncEnabled(bool enabled) OVERRIDE; 76 virtual void PromoteDemotedChanges(const base::Closure& callback) OVERRIDE; 77 virtual void ApplyLocalChange(const FileChange& local_change, 78 const base::FilePath& local_path, 79 const SyncFileMetadata& local_metadata, 80 const storage::FileSystemURL& url, 81 const SyncStatusCallback& callback) OVERRIDE; 82 virtual void ActivateService(RemoteServiceState service_state, 83 const std::string& description) OVERRIDE; 84 virtual void DeactivateService(const std::string& description) OVERRIDE; 85 virtual void DetachFromSequence() OVERRIDE; 86 virtual void AddObserver(Observer* observer) OVERRIDE; 87 88 private: 89 friend class SyncEngineTest; 90 91 enum AppStatus { 92 REGISTERED, 93 ENABLED, 94 DISABLED, 95 UNINSTALLED, 96 }; 97 typedef std::map<GURL, AppStatus> StatusMap; 98 99 void UpdateServiceState(RemoteServiceState state, 100 const std::string& description); 101 102 bool sync_enabled_; 103 StatusMap status_map_; 104 105 scoped_ptr<SyncEngineContext> sync_engine_context_; 106 107 ObserverList<Observer> observers_; 108 base::SequenceChecker sequence_checker_; 109 110 DISALLOW_COPY_AND_ASSIGN(FakeSyncWorker); 111 }; 112 113 } // namespace drive_backend 114 } // namespace sync_file_system 115 116 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_FAKE_SYNC_WORKER_H_ 117