Fix infinite recursion on hiding panel when created during fullscreen mode.
[chromium-blink-merge.git] / chrome / browser / sync_file_system / mock_remote_file_sync_service.h
blob687c5cab9bccf8a1f6eb4af2d8990c7a6916d6a0
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_
8 #include <string>
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"
23 namespace sync_file_system {
25 class MockRemoteFileSyncService : public RemoteFileSyncService {
26 public:
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,
43 UninstallFlag flag,
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&,
69 const std::string&,
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);
90 private:
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(
102 const GURL& origin,
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_