fake_disk_mount_manager.h revision 116680a4aac90f2aa7413d9095a592090648e557
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
17namespace file_manager {
18
19class 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