Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / file_manager / fake_disk_mount_manager.cc
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 #include "chrome/browser/chromeos/file_manager/fake_disk_mount_manager.h"
6
7 #include "base/callback.h"
8 #include "base/stl_util.h"
9
10 namespace file_manager {
11
12 FakeDiskMountManager::MountRequest::MountRequest(
13     const std::string& source_path,
14     const std::string& source_format,
15     const std::string& mount_label,
16     chromeos::MountType type)
17     : source_path(source_path),
18       source_format(source_format),
19       mount_label(mount_label),
20       type(type) {
21 }
22
23 FakeDiskMountManager::UnmountRequest::UnmountRequest(
24     const std::string& mount_path,
25     chromeos::UnmountOptions options)
26     : mount_path(mount_path),
27       options(options) {
28 }
29
30 FakeDiskMountManager::FakeDiskMountManager() {
31 }
32
33 FakeDiskMountManager::~FakeDiskMountManager() {
34   STLDeleteValues(&disks_);
35 }
36
37 void FakeDiskMountManager::AddObserver(Observer* observer) {
38   DCHECK(observer);
39   observers_.AddObserver(observer);
40 }
41
42 void FakeDiskMountManager::RemoveObserver(Observer* observer) {
43   DCHECK(observer);
44   observers_.RemoveObserver(observer);
45 }
46
47 const chromeos::disks::DiskMountManager::DiskMap&
48 FakeDiskMountManager::disks() const {
49   return disks_;
50 }
51
52 const chromeos::disks::DiskMountManager::Disk*
53 FakeDiskMountManager::FindDiskBySourcePath(
54     const std::string& source_path) const {
55   DiskMap::const_iterator iter = disks_.find(source_path);
56   if (iter == disks_.end())
57     return NULL;
58   return iter->second;
59 }
60
61 const chromeos::disks::DiskMountManager::MountPointMap&
62 FakeDiskMountManager::mount_points() const {
63   return mount_points_;
64 }
65
66 void FakeDiskMountManager::EnsureMountInfoRefreshed(
67     const EnsureMountInfoRefreshedCallback& callback) {
68   callback.Run(true);
69 }
70
71 void FakeDiskMountManager::MountPath(const std::string& source_path,
72                                      const std::string& source_format,
73                                      const std::string& mount_label,
74                                      chromeos::MountType type) {
75   mount_requests_.push_back(
76       MountRequest(source_path, source_format, mount_label, type));
77
78   const MountPointInfo mount_point(
79       source_path,
80       source_path,
81       type,
82       chromeos::disks::MOUNT_CONDITION_NONE);
83   mount_points_.insert(make_pair(source_path, mount_point));
84   FOR_EACH_OBSERVER(DiskMountManager::Observer, observers_,
85                     OnMountEvent(DiskMountManager::MOUNTING,
86                                  chromeos::MOUNT_ERROR_NONE,
87                                  mount_point));
88 }
89
90 void FakeDiskMountManager::UnmountPath(const std::string& mount_path,
91                                        chromeos::UnmountOptions options,
92                                        const UnmountPathCallback& callback) {
93   unmount_requests_.push_back(UnmountRequest(mount_path, options));
94
95   MountPointMap::iterator iter = mount_points_.find(mount_path);
96   if (iter == mount_points_.end())
97     return;
98   const MountPointInfo mount_point = iter->second;
99   mount_points_.erase(iter);
100   FOR_EACH_OBSERVER(DiskMountManager::Observer, observers_,
101                     OnMountEvent(DiskMountManager::UNMOUNTING,
102                                  chromeos::MOUNT_ERROR_NONE,
103                                  mount_point));
104   // Currently |callback| is just ignored.
105 }
106
107 void FakeDiskMountManager::FormatMountedDevice(const std::string& mount_path) {
108 }
109
110 void FakeDiskMountManager::UnmountDeviceRecursively(
111     const std::string& device_path,
112     const UnmountDeviceRecursivelyCallbackType& callback) {
113 }
114
115 bool FakeDiskMountManager::AddDiskForTest(Disk* disk) {
116   DCHECK(disk);
117   return disks_.insert(make_pair(disk->device_path(), disk)).second;
118 }
119
120 bool FakeDiskMountManager::AddMountPointForTest(
121     const MountPointInfo& mount_point) {
122   return false;
123 }
124
125 void FakeDiskMountManager::InvokeDiskEventForTest(
126     chromeos::disks::DiskMountManager::DiskEvent event,
127     const chromeos::disks::DiskMountManager::Disk* disk) {
128   FOR_EACH_OBSERVER(chromeos::disks::DiskMountManager::Observer,
129                     observers_,
130                     OnDiskEvent(event, disk));
131 }
132
133 }  // namespace file_manager