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 20class GURL; 21 22namespace base { 23class FilePath; 24class ListValue; 25} 26 27namespace drive { 28class DriveServiceInterface; 29class DriveUploaderInterface; 30} 31 32namespace storage { 33class FileSystemURL; 34} 35 36namespace sync_file_system { 37 38class FileChange; 39class SyncFileMetadata; 40 41namespace drive_backend { 42 43class MetadataDatabase; 44class RemoteChangeProcessorOnWorker; 45class SyncEngineContext; 46class SyncTaskManager; 47 48class 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