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.
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_
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"
23 namespace sync_file_system
{
25 class MockRemoteFileSyncService
: public RemoteFileSyncService
{
27 MockRemoteFileSyncService();
28 virtual ~MockRemoteFileSyncService();
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_METHOD3(UninstallOrigin
,
42 void(const GURL
& origin
,
44 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 enabled
));
56 MOCK_METHOD1(SetDefaultConflictResolutionPolicy
,
57 SyncStatusCode(ConflictResolutionPolicy
));
58 MOCK_METHOD2(SetConflictResolutionPolicy
,
59 SyncStatusCode(const GURL
&, ConflictResolutionPolicy
));
60 MOCK_CONST_METHOD0(GetDefaultConflictResolutionPolicy
,
61 ConflictResolutionPolicy());
62 MOCK_CONST_METHOD1(GetConflictResolutionPolicy
,
63 ConflictResolutionPolicy(const GURL
&));
64 MOCK_METHOD2(GetRemoteVersions
,
65 void(const fileapi::FileSystemURL
&,
66 const RemoteVersionsCallback
&));
67 MOCK_METHOD3(DownloadRemoteVersion
,
68 void(const fileapi::FileSystemURL
&,
70 const DownloadVersionCallback
&));
71 MOCK_METHOD0(PromoteDemotedChanges
, void());
73 virtual scoped_ptr
<base::ListValue
> DumpFiles(const GURL
& origin
) OVERRIDE
;
74 virtual scoped_ptr
<base::ListValue
> DumpDatabase() OVERRIDE
;
76 void SetServiceState(RemoteServiceState state
);
78 // Send notifications to the observers.
79 // Can be used in the mock implementation.
80 void NotifyRemoteChangeQueueUpdated(int64 pending_changes
);
81 void NotifyRemoteServiceStateUpdated(
82 RemoteServiceState state
,
83 const std::string
& description
);
84 void NotifyFileStatusChanged(
85 const fileapi::FileSystemURL
& url
,
86 SyncFileStatus sync_status
,
87 SyncAction action_taken
,
88 SyncDirection direction
);
91 void AddServiceObserverStub(Observer
* observer
);
92 void AddFileStatusObserverStub(FileStatusObserver
* observer
);
93 void RegisterOriginStub(
94 const GURL
& origin
, const SyncStatusCallback
& callback
);
95 void DeleteOriginDirectoryStub(
96 const GURL
& origin
, UninstallFlag flag
,
97 const SyncStatusCallback
& callback
);
98 void ProcessRemoteChangeStub(const SyncFileCallback
& callback
);
99 SyncStatusCode
SetDefaultConflictResolutionPolicyStub(
100 ConflictResolutionPolicy policy
);
101 SyncStatusCode
SetConflictResolutionPolicyStub(
103 ConflictResolutionPolicy policy
);
104 ConflictResolutionPolicy
GetDefaultConflictResolutionPolicyStub() const;
105 ConflictResolutionPolicy
GetConflictResolutionPolicyStub(
106 const GURL
& origin
) const;
107 RemoteServiceState
GetCurrentStateStub() const;
109 // For default implementation.
110 ::testing::NiceMock
<MockLocalChangeProcessor
> mock_local_change_processor_
;
112 ObserverList
<Observer
> service_observers_
;
113 ObserverList
<FileStatusObserver
> file_status_observers_
;
115 ConflictResolutionPolicy conflict_resolution_policy_
;
117 RemoteServiceState state_
;
119 DISALLOW_COPY_AND_ASSIGN(MockRemoteFileSyncService
);
122 } // namespace sync_file_system
124 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_FILE_SYNC_SERVICE_H_