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 #ifndef CHROMEOS_DBUS_FAKE_CROS_DISKS_CLIENT_H_
      6 #define CHROMEOS_DBUS_FAKE_CROS_DISKS_CLIENT_H_
      7 
      8 #include <string>
      9 
     10 #include "base/callback.h"
     11 #include "chromeos/dbus/cros_disks_client.h"
     12 
     13 namespace chromeos {
     14 
     15 // A fake implementation of CrosDiskeClient. This class provides a fake behavior
     16 // and the user of this class can raise a fake mouse events.
     17 class FakeCrosDisksClient : public CrosDisksClient {
     18  public:
     19   FakeCrosDisksClient();
     20   virtual ~FakeCrosDisksClient();
     21 
     22   // CrosDisksClient overrides.
     23   virtual void Mount(const std::string& source_path,
     24                      const std::string& source_format,
     25                      const std::string& mount_label,
     26                      const base::Closure& callback,
     27                      const base::Closure& error_callback) OVERRIDE;
     28   virtual void Unmount(const std::string& device_path,
     29                        UnmountOptions options,
     30                        const base::Closure& callback,
     31                        const base::Closure& error_callback) OVERRIDE;
     32   virtual void EnumerateAutoMountableDevices(
     33       const EnumerateAutoMountableDevicesCallback& callback,
     34       const base::Closure& error_callback) OVERRIDE;
     35   virtual void FormatDevice(const std::string& device_path,
     36                             const std::string& filesystem,
     37                             const FormatDeviceCallback& callback,
     38                             const base::Closure& error_callback) OVERRIDE;
     39   virtual void GetDeviceProperties(
     40       const std::string& device_path,
     41       const GetDevicePropertiesCallback& callback,
     42       const base::Closure& error_callback) OVERRIDE;
     43   virtual void SetUpConnections(
     44       const MountEventHandler& mount_event_handler,
     45       const MountCompletedHandler& mount_completed_handler) OVERRIDE;
     46 
     47   // Used in tests to simulate signals sent by cros disks layer.
     48   // Invokes handlers set in |SetUpConnections|.
     49   bool SendMountEvent(MountEventType event, const std::string& path);
     50   bool SendMountCompletedEvent(MountError error_code,
     51                                const std::string& source_path,
     52                                MountType mount_type,
     53                                const std::string& mount_path);
     54 
     55   // Returns how many times Unmount() was called.
     56   int unmount_call_count() const {
     57     return unmount_call_count_;
     58   }
     59 
     60   // Returns the |device_path| parameter from the last invocation of Unmount().
     61   const std::string& last_unmount_device_path() const {
     62     return last_unmount_device_path_;
     63   }
     64 
     65   // Returns the |options| parameter from the last invocation of Unmount().
     66   UnmountOptions last_unmount_options() const {
     67     return last_unmount_options_;
     68   }
     69 
     70   // Makes the subsequent Unmount() calls fail. Unmount() succeeds by default.
     71   void MakeUnmountFail() {
     72     unmount_success_ = false;
     73   }
     74 
     75   // Sets a listener callbackif the following Unmount() call is success or not.
     76   // Unmount() calls the corresponding callback given as a parameter.
     77   void set_unmount_listener(base::Closure listener) {
     78     unmount_listener_ = listener;
     79   }
     80 
     81   // Returns how many times FormatDevice() was called.
     82   int format_device_call_count() const {
     83     return format_device_call_count_;
     84   }
     85 
     86   // Returns the |device_path| parameter from the last invocation of
     87   // FormatDevice().
     88   const std::string& last_format_device_device_path() const {
     89     return last_format_device_device_path_;
     90   }
     91 
     92   // Returns the |filesystem| parameter from the last invocation of
     93   // FormatDevice().
     94   const std::string& last_format_device_filesystem() const {
     95     return last_format_device_filesystem_;
     96   }
     97 
     98   // Makes the subsequent FormatDevice() calls fail. FormatDevice() succeeds by
     99   // default.
    100   void MakeFormatDeviceFail() {
    101     format_device_success_ = false;
    102   }
    103 
    104  private:
    105   MountEventHandler mount_event_handler_;
    106   MountCompletedHandler mount_completed_handler_;
    107 
    108   int unmount_call_count_;
    109   std::string last_unmount_device_path_;
    110   UnmountOptions last_unmount_options_;
    111   bool unmount_success_;
    112   base::Closure unmount_listener_;
    113   int format_device_call_count_;
    114   std::string last_format_device_device_path_;
    115   std::string last_format_device_filesystem_;
    116   bool format_device_success_;
    117 };
    118 
    119 }  // namespace chromeos
    120 
    121 #endif  // CHROMEOS_DBUS_FAKE_CROS_DISKS_CLIENT_H_
    122