Home | History | Annotate | Download | only in sync_file_system
      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 #include "chrome/browser/sync_file_system/mock_remote_file_sync_service.h"
      6 
      7 #include <string>
      8 
      9 #include "base/bind.h"
     10 #include "base/location.h"
     11 #include "base/message_loop/message_loop_proxy.h"
     12 #include "url/gurl.h"
     13 #include "webkit/browser/fileapi/file_system_url.h"
     14 
     15 using ::testing::_;
     16 using ::testing::Invoke;
     17 using ::testing::Return;
     18 
     19 namespace sync_file_system {
     20 
     21 MockRemoteFileSyncService::MockRemoteFileSyncService()
     22     : conflict_resolution_policy_(CONFLICT_RESOLUTION_POLICY_MANUAL),
     23       state_(REMOTE_SERVICE_OK) {
     24   typedef MockRemoteFileSyncService self;
     25   ON_CALL(*this, AddServiceObserver(_))
     26       .WillByDefault(Invoke(this, &self::AddServiceObserverStub));
     27   ON_CALL(*this, AddFileStatusObserver(_))
     28       .WillByDefault(Invoke(this, &self::AddFileStatusObserverStub));
     29   ON_CALL(*this, RegisterOrigin(_, _))
     30       .WillByDefault(Invoke(this, &self::RegisterOriginStub));
     31   ON_CALL(*this, UninstallOrigin(_, _, _))
     32       .WillByDefault(
     33           Invoke(this, &self::DeleteOriginDirectoryStub));
     34   ON_CALL(*this, ProcessRemoteChange(_))
     35       .WillByDefault(Invoke(this, &self::ProcessRemoteChangeStub));
     36   ON_CALL(*this, GetLocalChangeProcessor())
     37       .WillByDefault(Return(&mock_local_change_processor_));
     38   ON_CALL(*this, GetCurrentState())
     39       .WillByDefault(Invoke(this, &self::GetCurrentStateStub));
     40 }
     41 
     42 MockRemoteFileSyncService::~MockRemoteFileSyncService() {
     43 }
     44 
     45 void MockRemoteFileSyncService::DumpFiles(const GURL& origin,
     46                                           const ListCallback& callback) {
     47   callback.Run(scoped_ptr<base::ListValue>());
     48 }
     49 
     50 void MockRemoteFileSyncService::DumpDatabase(const ListCallback& callback) {
     51   callback.Run(scoped_ptr<base::ListValue>());
     52 }
     53 
     54 void MockRemoteFileSyncService::SetServiceState(RemoteServiceState state) {
     55   state_ = state;
     56 }
     57 
     58 void MockRemoteFileSyncService::NotifyRemoteChangeQueueUpdated(
     59     int64 pending_changes) {
     60   FOR_EACH_OBSERVER(Observer, service_observers_,
     61                     OnRemoteChangeQueueUpdated(pending_changes));
     62 }
     63 
     64 void MockRemoteFileSyncService::NotifyRemoteServiceStateUpdated(
     65     RemoteServiceState state,
     66     const std::string& description) {
     67   FOR_EACH_OBSERVER(Observer, service_observers_,
     68                     OnRemoteServiceStateUpdated(state, description));
     69 }
     70 
     71 void MockRemoteFileSyncService::NotifyFileStatusChanged(
     72     const fileapi::FileSystemURL& url,
     73     SyncFileStatus sync_status,
     74     SyncAction action_taken,
     75     SyncDirection direction) {
     76   FOR_EACH_OBSERVER(FileStatusObserver, file_status_observers_,
     77                     OnFileStatusChanged(url, sync_status,
     78                                         action_taken, direction));
     79 }
     80 
     81 void MockRemoteFileSyncService::AddServiceObserverStub(Observer* observer) {
     82   service_observers_.AddObserver(observer);
     83 }
     84 
     85 void MockRemoteFileSyncService::AddFileStatusObserverStub(
     86     FileStatusObserver* observer) {
     87   file_status_observers_.AddObserver(observer);
     88 }
     89 
     90 void MockRemoteFileSyncService::RegisterOriginStub(
     91     const GURL& origin,
     92     const SyncStatusCallback& callback) {
     93   base::MessageLoopProxy::current()->PostTask(
     94       FROM_HERE,
     95       base::Bind(callback, SYNC_STATUS_OK));
     96 }
     97 
     98 void MockRemoteFileSyncService::DeleteOriginDirectoryStub(
     99     const GURL& origin,
    100     UninstallFlag flag,
    101     const SyncStatusCallback& callback) {
    102   base::MessageLoopProxy::current()->PostTask(
    103       FROM_HERE,
    104       base::Bind(callback, SYNC_STATUS_OK));
    105 }
    106 
    107 void MockRemoteFileSyncService::ProcessRemoteChangeStub(
    108     const SyncFileCallback& callback) {
    109   base::MessageLoopProxy::current()->PostTask(
    110       FROM_HERE,
    111       base::Bind(callback, SYNC_STATUS_NO_CHANGE_TO_SYNC,
    112                  fileapi::FileSystemURL()));
    113 }
    114 
    115 RemoteServiceState MockRemoteFileSyncService::GetCurrentStateStub() const {
    116   return state_;
    117 }
    118 
    119 }  // namespace sync_file_system
    120