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.
5 #include "chrome/browser/chromeos/file_manager/fake_disk_mount_manager.h"
7 #include "base/stl_util.h"
9 namespace file_manager {
11 FakeDiskMountManager::MountRequest::MountRequest(
12 const std::string& source_path,
13 const std::string& source_format,
14 const std::string& mount_label,
15 chromeos::MountType type)
16 : source_path(source_path),
17 source_format(source_format),
18 mount_label(mount_label),
22 FakeDiskMountManager::UnmountRequest::UnmountRequest(
23 const std::string& mount_path,
24 chromeos::UnmountOptions options)
25 : mount_path(mount_path),
29 FakeDiskMountManager::FakeDiskMountManager() {
32 FakeDiskMountManager::~FakeDiskMountManager() {
33 STLDeleteValues(&disks_);
36 void FakeDiskMountManager::AddObserver(Observer* observer) {
38 observers_.AddObserver(observer);
41 void FakeDiskMountManager::RemoveObserver(Observer* observer) {
43 observers_.RemoveObserver(observer);
46 const chromeos::disks::DiskMountManager::DiskMap&
47 FakeDiskMountManager::disks() const {
51 const chromeos::disks::DiskMountManager::Disk*
52 FakeDiskMountManager::FindDiskBySourcePath(
53 const std::string& source_path) const {
54 DiskMap::const_iterator iter = disks_.find(source_path);
55 if (iter == disks_.end())
60 const chromeos::disks::DiskMountManager::MountPointMap&
61 FakeDiskMountManager::mount_points() const {
65 void FakeDiskMountManager::RequestMountInfoRefresh() {
68 void FakeDiskMountManager::MountPath(const std::string& source_path,
69 const std::string& source_format,
70 const std::string& mount_label,
71 chromeos::MountType type) {
72 mount_requests_.push_back(
73 MountRequest(source_path, source_format, mount_label, type));
75 const MountPointInfo mount_point(
79 chromeos::disks::MOUNT_CONDITION_NONE);
80 mount_points_.insert(make_pair(source_path, mount_point));
81 FOR_EACH_OBSERVER(DiskMountManager::Observer, observers_,
82 OnMountEvent(DiskMountManager::MOUNTING,
83 chromeos::MOUNT_ERROR_NONE,
87 void FakeDiskMountManager::UnmountPath(const std::string& mount_path,
88 chromeos::UnmountOptions options,
89 const UnmountPathCallback& callback) {
90 unmount_requests_.push_back(UnmountRequest(mount_path, options));
92 MountPointMap::iterator iter = mount_points_.find(mount_path);
93 if (iter == mount_points_.end())
95 const MountPointInfo mount_point = iter->second;
96 mount_points_.erase(iter);
97 FOR_EACH_OBSERVER(DiskMountManager::Observer, observers_,
98 OnMountEvent(DiskMountManager::UNMOUNTING,
99 chromeos::MOUNT_ERROR_NONE,
101 // Currently |callback| is just ignored.
104 void FakeDiskMountManager::FormatMountedDevice(const std::string& mount_path) {
107 void FakeDiskMountManager::UnmountDeviceRecursively(
108 const std::string& device_path,
109 const UnmountDeviceRecursivelyCallbackType& callback) {
112 bool FakeDiskMountManager::AddDiskForTest(Disk* disk) {
114 return disks_.insert(make_pair(disk->device_path(), disk)).second;
117 bool FakeDiskMountManager::AddMountPointForTest(
118 const MountPointInfo& mount_point) {
122 } // namespace file_manager