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