1 // Copyright 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 CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FAKE_DISK_MOUNT_MANAGER_H_ 6 #define CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FAKE_DISK_MOUNT_MANAGER_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "base/basictypes.h" 12 #include "base/compiler_specific.h" 13 #include "base/observer_list.h" 14 #include "chromeos/dbus/cros_disks_client.h" 15 #include "chromeos/disks/disk_mount_manager.h" 16 17 namespace file_manager { 18 19 class FakeDiskMountManager : public chromeos::disks::DiskMountManager { 20 public: 21 struct MountRequest { 22 MountRequest(const std::string& source_path, 23 const std::string& source_format, 24 const std::string& mount_label, 25 chromeos::MountType type); 26 27 std::string source_path; 28 std::string source_format; 29 std::string mount_label; 30 chromeos::MountType type; 31 }; 32 33 struct UnmountRequest { 34 UnmountRequest(const std::string& mount_path, 35 chromeos::UnmountOptions options); 36 37 std::string mount_path; 38 chromeos::UnmountOptions options; 39 }; 40 41 FakeDiskMountManager(); 42 virtual ~FakeDiskMountManager(); 43 44 const std::vector<MountRequest>& mount_requests() const { 45 return mount_requests_; 46 } 47 const std::vector<UnmountRequest>& unmount_requests() const { 48 return unmount_requests_; 49 } 50 51 // DiskMountManager overrides. 52 virtual void AddObserver(Observer* observer) OVERRIDE; 53 virtual void RemoveObserver(Observer* observer) OVERRIDE; 54 virtual const DiskMap& disks() const OVERRIDE; 55 virtual const Disk* FindDiskBySourcePath( 56 const std::string& source_path) const OVERRIDE; 57 virtual const MountPointMap& mount_points() const OVERRIDE; 58 virtual void EnsureMountInfoRefreshed( 59 const EnsureMountInfoRefreshedCallback& callback) OVERRIDE; 60 virtual void MountPath(const std::string& source_path, 61 const std::string& source_format, 62 const std::string& mount_label, 63 chromeos::MountType type) OVERRIDE; 64 virtual void UnmountPath(const std::string& mount_path, 65 chromeos::UnmountOptions options, 66 const UnmountPathCallback& callback) OVERRIDE; 67 virtual void FormatMountedDevice(const std::string& mount_path) OVERRIDE; 68 virtual void UnmountDeviceRecursively( 69 const std::string& device_path, 70 const UnmountDeviceRecursivelyCallbackType& callback) OVERRIDE; 71 72 virtual bool AddDiskForTest(Disk* disk) OVERRIDE; 73 virtual bool AddMountPointForTest( 74 const MountPointInfo& mount_point) OVERRIDE; 75 void InvokeDiskEventForTest(DiskEvent event, const Disk* disk); 76 77 private: 78 ObserverList<Observer> observers_; 79 80 DiskMap disks_; 81 MountPointMap mount_points_; 82 83 std::vector<MountRequest> mount_requests_; 84 std::vector<UnmountRequest> unmount_requests_; 85 86 DISALLOW_COPY_AND_ASSIGN(FakeDiskMountManager); 87 }; 88 89 } // namespace file_manager 90 91 #endif // CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FAKE_DISK_MOUNT_MANAGER_H_ 92