mock_remote_file_sync_service.h revision 3551c9c881056c480085172ff9840cab31610854
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 "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(RegisterOriginForTrackingChanges,
36               void(const GURL& origin, const SyncStatusCallback& callback));
37  MOCK_METHOD2(UnregisterOriginForTrackingChanges,
38               void(const GURL& origin, const SyncStatusCallback& callback));
39  MOCK_METHOD2(EnableOriginForTrackingChanges,
40               void(const GURL& origin, const SyncStatusCallback& callback));
41  MOCK_METHOD2(DisableOriginForTrackingChanges,
42               void(const GURL& origin, const SyncStatusCallback& callback));
43  MOCK_METHOD2(UninstallOrigin,
44               void(const GURL& origin, const SyncStatusCallback& callback));
45  MOCK_METHOD1(ProcessRemoteChange,
46               void(const SyncFileCallback& callback));
47  MOCK_METHOD1(SetRemoteChangeProcessor,
48               void(RemoteChangeProcessor* processor));
49  MOCK_METHOD0(GetLocalChangeProcessor, LocalChangeProcessor*());
50  MOCK_METHOD1(IsConflicting, bool(const fileapi::FileSystemURL& url));
51  MOCK_CONST_METHOD0(GetCurrentState,
52                     RemoteServiceState());
53  MOCK_METHOD1(GetOriginStatusMap,
54               void(RemoteFileSyncService::OriginStatusMap* status_map));
55  MOCK_METHOD1(SetSyncEnabled, void(bool));
56  MOCK_METHOD1(SetConflictResolutionPolicy,
57               SyncStatusCode(ConflictResolutionPolicy));
58  MOCK_CONST_METHOD0(GetConflictResolutionPolicy,
59                     ConflictResolutionPolicy());
60  MOCK_METHOD2(GetRemoteVersions,
61               void(const fileapi::FileSystemURL&,
62                    const RemoteVersionsCallback&));
63  MOCK_METHOD3(DownloadRemoteVersion,
64               void(const fileapi::FileSystemURL&,
65                    const std::string&,
66                    const DownloadVersionCallback&));
67
68  virtual scoped_ptr<base::ListValue> DumpFiles(const GURL& origin) OVERRIDE;
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 RegisterOriginForTrackingChangesStub(
86      const GURL& origin, const SyncStatusCallback& callback);
87  void UnregisterOriginForTrackingChangesStub(
88      const GURL& origin, const SyncStatusCallback& callback);
89  void DeleteOriginDirectoryStub(
90      const GURL& origin, const SyncStatusCallback& callback);
91  void ProcessRemoteChangeStub(const SyncFileCallback& callback);
92  SyncStatusCode SetConflictResolutionPolicyStub(
93      ConflictResolutionPolicy policy);
94  ConflictResolutionPolicy GetConflictResolutionPolicyStub() const;
95
96  // For default implementation.
97  ::testing::NiceMock<MockLocalChangeProcessor> mock_local_change_processor_;
98
99  ObserverList<Observer> service_observers_;
100  ObserverList<FileStatusObserver> file_status_observers_;
101
102  ConflictResolutionPolicy conflict_resolution_policy_;
103
104  DISALLOW_COPY_AND_ASSIGN(MockRemoteFileSyncService);
105};
106
107}  // namespace sync_file_system
108
109#endif  // CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_FILE_SYNC_SERVICE_H_
110