Home | History | Annotate | Download | only in drive_backend
      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