Home | History | Annotate | Download | only in dbus
      1 // Copyright (c) 2013 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 "chromeos/dbus/fake_cros_disks_client.h"
      6 
      7 #include "base/bind.h"
      8 #include "base/logging.h"
      9 #include "base/message_loop/message_loop.h"
     10 
     11 namespace chromeos {
     12 
     13 FakeCrosDisksClient::FakeCrosDisksClient()
     14     : unmount_call_count_(0),
     15       unmount_success_(true),
     16       format_device_call_count_(0),
     17       format_device_success_(true) {
     18 }
     19 
     20 FakeCrosDisksClient::~FakeCrosDisksClient() {
     21 }
     22 
     23 void FakeCrosDisksClient::Init(dbus::Bus* bus) {
     24 }
     25 
     26 void FakeCrosDisksClient::Mount(const std::string& source_path,
     27                                 const std::string& source_format,
     28                                 const std::string& mount_label,
     29                                 const base::Closure& callback,
     30                                 const base::Closure& error_callback) {
     31 }
     32 
     33 void FakeCrosDisksClient::Unmount(const std::string& device_path,
     34                                   UnmountOptions options,
     35                                   const base::Closure& callback,
     36                                   const base::Closure& error_callback) {
     37   DCHECK(!callback.is_null());
     38   DCHECK(!error_callback.is_null());
     39 
     40   unmount_call_count_++;
     41   last_unmount_device_path_ = device_path;
     42   last_unmount_options_ = options;
     43   base::MessageLoopProxy::current()->PostTask(
     44       FROM_HERE, unmount_success_ ? callback : error_callback);
     45   if (!unmount_listener_.is_null())
     46     unmount_listener_.Run();
     47 }
     48 
     49 void FakeCrosDisksClient::EnumerateAutoMountableDevices(
     50     const EnumerateAutoMountableDevicesCallback& callback,
     51     const base::Closure& error_callback) {
     52 }
     53 
     54 void FakeCrosDisksClient::FormatDevice(const std::string& device_path,
     55                                        const std::string& filesystem,
     56                                        const FormatDeviceCallback& callback,
     57                                        const base::Closure& error_callback) {
     58   DCHECK(!callback.is_null());
     59   DCHECK(!error_callback.is_null());
     60 
     61   format_device_call_count_++;
     62   last_format_device_device_path_ = device_path;
     63   last_format_device_filesystem_ = filesystem;
     64   if (format_device_success_) {
     65     base::MessageLoopProxy::current()->PostTask(FROM_HERE,
     66                                                 base::Bind(callback, true));
     67   } else {
     68     base::MessageLoopProxy::current()->PostTask(FROM_HERE, error_callback);
     69   }
     70 }
     71 
     72 void FakeCrosDisksClient::GetDeviceProperties(
     73     const std::string& device_path,
     74     const GetDevicePropertiesCallback& callback,
     75     const base::Closure& error_callback) {
     76 }
     77 
     78 void FakeCrosDisksClient::SetUpConnections(
     79     const MountEventHandler& mount_event_handler,
     80     const MountCompletedHandler& mount_completed_handler) {
     81   mount_event_handler_ = mount_event_handler;
     82   mount_completed_handler_ = mount_completed_handler;
     83 }
     84 
     85 bool FakeCrosDisksClient::SendMountEvent(MountEventType event,
     86                                          const std::string& path) {
     87   if (mount_event_handler_.is_null())
     88     return false;
     89   mount_event_handler_.Run(event, path);
     90   return true;
     91 }
     92 
     93 bool FakeCrosDisksClient::SendMountCompletedEvent(
     94     MountError error_code,
     95     const std::string& source_path,
     96     MountType mount_type,
     97     const std::string& mount_path) {
     98   if (mount_completed_handler_.is_null())
     99     return false;
    100   mount_completed_handler_.Run(error_code, source_path, mount_type, mount_path);
    101   return true;
    102 }
    103 
    104 }  // namespace chromeos
    105