mock_remote_file_sync_service.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// Use of this source code is governed by a BSD-style license that can be
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// found in the LICENSE file.
4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#include "chrome/browser/sync_file_system/mock_remote_file_sync_service.h"
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#include <string>
8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "base/bind.h"
108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "base/location.h"
118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "base/message_loop/message_loop_proxy.h"
128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "url/gurl.h"
138b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org#include "webkit/browser/fileapi/file_system_url.h"
148b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org
158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comusing ::testing::_;
16548a1f321011292359ef163f78c8a1d4871b3b7freed@google.comusing ::testing::Invoke;
17548a1f321011292359ef163f78c8a1d4871b3b7freed@google.comusing ::testing::Return;
188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
193334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgnamespace sync_file_system {
203334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org
218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comMockRemoteFileSyncService::MockRemoteFileSyncService()
228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    : conflict_resolution_policy_(CONFLICT_RESOLUTION_POLICY_MANUAL),
238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      state_(REMOTE_SERVICE_OK) {
24fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com  typedef MockRemoteFileSyncService self;
258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  ON_CALL(*this, AddServiceObserver(_))
268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      .WillByDefault(Invoke(this, &self::AddServiceObserverStub));
278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  ON_CALL(*this, AddFileStatusObserver(_))
283334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org      .WillByDefault(Invoke(this, &self::AddFileStatusObserverStub));
298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  ON_CALL(*this, RegisterOrigin(_, _))
308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      .WillByDefault(Invoke(this, &self::RegisterOriginStub));
318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  ON_CALL(*this, UninstallOrigin(_, _, _))
328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      .WillByDefault(
338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com          Invoke(this, &self::DeleteOriginDirectoryStub));
343334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org  ON_CALL(*this, ProcessRemoteChange(_))
354bbdeac58cc928dc66296bde3bd06e78070d96b7reed@google.com      .WillByDefault(Invoke(this, &self::ProcessRemoteChangeStub));
36548a1f321011292359ef163f78c8a1d4871b3b7freed@google.com  ON_CALL(*this, GetLocalChangeProcessor())
378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      .WillByDefault(Return(&mock_local_change_processor_));
383334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org  ON_CALL(*this, IsConflicting(_))
398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      .WillByDefault(Return(false));
408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  ON_CALL(*this, GetCurrentState())
418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      .WillByDefault(Invoke(this, &self::GetCurrentStateStub));
428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  ON_CALL(*this, SetDefaultConflictResolutionPolicy(_))
438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      .WillByDefault(
448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com          Invoke(this, &self::SetDefaultConflictResolutionPolicyStub));
458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  ON_CALL(*this, SetConflictResolutionPolicy(_, _))
468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      .WillByDefault(Invoke(this, &self::SetConflictResolutionPolicyStub));
478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  ON_CALL(*this, GetDefaultConflictResolutionPolicy())
488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      .WillByDefault(
498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com          Invoke(this, &self::GetDefaultConflictResolutionPolicyStub));
508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  ON_CALL(*this, GetConflictResolutionPolicy(_))
518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      .WillByDefault(Invoke(this, &self::GetConflictResolutionPolicyStub));
528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}
538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comMockRemoteFileSyncService::~MockRemoteFileSyncService() {
554a3b714d73e585a3985d614600c6b79d5c8b1f1ereed@google.com}
563334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org
573334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgscoped_ptr<base::ListValue> MockRemoteFileSyncService::DumpFiles(
583334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    const GURL& origin) {
593334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org  return scoped_ptr<base::ListValue>();
603334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org}
613334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org
623334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgscoped_ptr<base::ListValue> MockRemoteFileSyncService::DumpDatabase() {
633334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org  return scoped_ptr<base::ListValue>();
643334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org}
653334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org
663334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::SetServiceState(RemoteServiceState state) {
673334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org  state_ = state;
683334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org}
693334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org
703334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::NotifyRemoteChangeQueueUpdated(
718a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    int64 pending_changes) {
728a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  FOR_EACH_OBSERVER(Observer, service_observers_,
738a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                    OnRemoteChangeQueueUpdated(pending_changes));
748a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}
758a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
763334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::NotifyRemoteServiceStateUpdated(
773334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    RemoteServiceState state,
783334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    const std::string& description) {
798a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  FOR_EACH_OBSERVER(Observer, service_observers_,
808a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                    OnRemoteServiceStateUpdated(state, description));
818a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}
828a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
838a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comvoid MockRemoteFileSyncService::NotifyFileStatusChanged(
848a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    const fileapi::FileSystemURL& url,
853334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    SyncFileStatus sync_status,
868a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SyncAction action_taken,
873334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    SyncDirection direction) {
883334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org  FOR_EACH_OBSERVER(FileStatusObserver, file_status_observers_,
893334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org                    OnFileStatusChanged(url, sync_status,
903334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org                                        action_taken, direction));
913334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org}
923334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org
933334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::AddServiceObserverStub(Observer* observer) {
943334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org  service_observers_.AddObserver(observer);
953334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org}
963334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org
973334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::AddFileStatusObserverStub(
983334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    FileStatusObserver* observer) {
993334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org  file_status_observers_.AddObserver(observer);
1003334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org}
1013334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org
1023334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::RegisterOriginStub(
1033334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    const GURL& origin,
1043334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    const SyncStatusCallback& callback) {
1053334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org  base::MessageLoopProxy::current()->PostTask(
1063334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org      FROM_HERE,
1073334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org      base::Bind(callback, SYNC_STATUS_OK));
1083334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org}
1093334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org
1103334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::DeleteOriginDirectoryStub(
1113334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    const GURL& origin,
1123334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    UninstallFlag flag,
1133334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org    const SyncStatusCallback& callback) {
1143334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org  base::MessageLoopProxy::current()->PostTask(
115277c3f87656c44e0a651ed0dd56efa16c0ab07b4reed@google.com      FROM_HERE,
116277c3f87656c44e0a651ed0dd56efa16c0ab07b4reed@google.com      base::Bind(callback, SYNC_STATUS_OK));
117277c3f87656c44e0a651ed0dd56efa16c0ab07b4reed@google.com}
1183334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org
1193334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.orgvoid MockRemoteFileSyncService::ProcessRemoteChangeStub(
1208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    const SyncFileCallback& callback) {
1218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  base::MessageLoopProxy::current()->PostTask(
1223334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org      FROM_HERE,
1238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com      base::Bind(callback, SYNC_STATUS_NO_CHANGE_TO_SYNC,
1243334c3a1fa05b5ee0cab0f2f1ec7b19939737337mike@reedtribe.org                 fileapi::FileSystemURL()));
1258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}
1268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
1278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSyncStatusCode
1288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comMockRemoteFileSyncService::SetDefaultConflictResolutionPolicyStub(
1298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    ConflictResolutionPolicy policy) {
1308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  conflict_resolution_policy_ = policy;
1319fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed  return SYNC_STATUS_OK;
1329fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed}
1339fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed
1349fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reedSyncStatusCode MockRemoteFileSyncService::SetConflictResolutionPolicyStub(
1358b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org    const GURL& origin,
1368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    ConflictResolutionPolicy policy) {
1378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  conflict_resolution_policy_ = policy;
1388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com  return SYNC_STATUS_OK;
1399fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed}
1408b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org
1418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comConflictResolutionPolicy
1428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comMockRemoteFileSyncService::GetDefaultConflictResolutionPolicyStub() const {
1439fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed  return conflict_resolution_policy_;
144}
145
146ConflictResolutionPolicy
147MockRemoteFileSyncService::GetConflictResolutionPolicyStub(
148    const GURL& origin) const {
149  return conflict_resolution_policy_;
150}
151
152RemoteServiceState MockRemoteFileSyncService::GetCurrentStateStub() const {
153  return state_;
154}
155
156}  // namespace sync_file_system
157