blob: 648389490ea9523c7502eca7f33ecc10a648285b [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_FILE_SYNC_SERVICE_H_
#define CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_FILE_SYNC_SERVICE_H_
#include <stdint.h>
#include <memory>
#include <string>
#include "base/macros.h"
#include "base/observer_list.h"
#include "base/values.h"
#include "chrome/browser/sync_file_system/file_status_observer.h"
#include "chrome/browser/sync_file_system/mock_local_change_processor.h"
#include "chrome/browser/sync_file_system/remote_change_processor.h"
#include "chrome/browser/sync_file_system/remote_file_sync_service.h"
#include "chrome/browser/sync_file_system/sync_callbacks.h"
#include "chrome/browser/sync_file_system/sync_direction.h"
#include "chrome/browser/sync_file_system/sync_file_metadata.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "url/gurl.h"
namespace sync_file_system {
class MockRemoteFileSyncService : public RemoteFileSyncService {
public:
MockRemoteFileSyncService();
~MockRemoteFileSyncService() override;
// RemoteFileSyncService overrides.
MOCK_METHOD1(AddServiceObserver,
void(RemoteFileSyncService::Observer* observer));
MOCK_METHOD1(AddFileStatusObserver,
void(FileStatusObserver* observer));
MOCK_METHOD2(RegisterOrigin,
void(const GURL& origin, const SyncStatusCallback& callback));
MOCK_METHOD2(EnableOrigin,
void(const GURL& origin, const SyncStatusCallback& callback));
MOCK_METHOD2(DisableOrigin,
void(const GURL& origin, const SyncStatusCallback& callback));
MOCK_METHOD3(UninstallOrigin,
void(const GURL& origin,
UninstallFlag flag,
const SyncStatusCallback& callback));
MOCK_METHOD1(ProcessRemoteChange,
void(const SyncFileCallback& callback));
MOCK_METHOD1(SetRemoteChangeProcessor,
void(RemoteChangeProcessor* processor));
MOCK_METHOD0(GetLocalChangeProcessor, LocalChangeProcessor*());
MOCK_CONST_METHOD0(GetCurrentState,
RemoteServiceState());
MOCK_METHOD1(GetOriginStatusMap,
void(const StatusMapCallback& callback));
MOCK_METHOD1(SetSyncEnabled, void(bool enabled));
MOCK_METHOD1(PromoteDemotedChanges, void(const base::Closure& callback));
void DumpFiles(const GURL& origin, const ListCallback& callback) override;
void DumpDatabase(const ListCallback& callback) override;
void SetServiceState(RemoteServiceState state);
// Send notifications to the observers.
// Can be used in the mock implementation.
void NotifyRemoteChangeQueueUpdated(int64_t pending_changes);
void NotifyRemoteServiceStateUpdated(
RemoteServiceState state,
const std::string& description);
void NotifyFileStatusChanged(const storage::FileSystemURL& url,
SyncFileType file_type,
SyncFileStatus sync_status,
SyncAction action_taken,
SyncDirection direction);
private:
void AddServiceObserverStub(Observer* observer);
void AddFileStatusObserverStub(FileStatusObserver* observer);
void RegisterOriginStub(
const GURL& origin, const SyncStatusCallback& callback);
void DeleteOriginDirectoryStub(
const GURL& origin, UninstallFlag flag,
const SyncStatusCallback& callback);
void ProcessRemoteChangeStub(const SyncFileCallback& callback);
RemoteServiceState GetCurrentStateStub() const;
// For default implementation.
::testing::NiceMock<MockLocalChangeProcessor> mock_local_change_processor_;
base::ObserverList<Observer>::Unchecked service_observers_;
base::ObserverList<FileStatusObserver>::Unchecked file_status_observers_;
RemoteServiceState state_;
DISALLOW_COPY_AND_ASSIGN(MockRemoteFileSyncService);
};
} // namespace sync_file_system
#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_FILE_SYNC_SERVICE_H_