fake_disk_mount_manager.cc revision 0529e5d033099cbfc42635f6f6183833b09dff6e
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/stl_util.h" 8 9namespace file_manager { 10 11FakeDiskMountManager::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), 19 type(type) { 20} 21 22FakeDiskMountManager::UnmountRequest::UnmountRequest( 23 const std::string& mount_path, 24 chromeos::UnmountOptions options) 25 : mount_path(mount_path), 26 options(options) { 27} 28 29FakeDiskMountManager::FakeDiskMountManager() { 30} 31 32FakeDiskMountManager::~FakeDiskMountManager() { 33 STLDeleteValues(&disks_); 34} 35 36void FakeDiskMountManager::AddObserver(Observer* observer) { 37 DCHECK(observer); 38 observers_.AddObserver(observer); 39} 40 41void FakeDiskMountManager::RemoveObserver(Observer* observer) { 42 DCHECK(observer); 43 observers_.RemoveObserver(observer); 44} 45 46const chromeos::disks::DiskMountManager::DiskMap& 47FakeDiskMountManager::disks() const { 48 return disks_; 49} 50 51const chromeos::disks::DiskMountManager::Disk* 52FakeDiskMountManager::FindDiskBySourcePath( 53 const std::string& source_path) const { 54 DiskMap::const_iterator iter = disks_.find(source_path); 55 if (iter == disks_.end()) 56 return NULL; 57 return iter->second; 58} 59 60const chromeos::disks::DiskMountManager::MountPointMap& 61FakeDiskMountManager::mount_points() const { 62 return mount_points_; 63} 64 65void FakeDiskMountManager::RequestMountInfoRefresh() { 66} 67 68void 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)); 74 75 const MountPointInfo mount_point( 76 source_path, 77 source_path, 78 type, 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, 84 mount_point)); 85} 86 87void FakeDiskMountManager::UnmountPath(const std::string& mount_path, 88 chromeos::UnmountOptions options, 89 const UnmountPathCallback& callback) { 90 unmount_requests_.push_back(UnmountRequest(mount_path, options)); 91 92 MountPointMap::iterator iter = mount_points_.find(mount_path); 93 if (iter == mount_points_.end()) 94 return; 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, 100 mount_point)); 101 // Currently |callback| is just ignored. 102} 103 104void FakeDiskMountManager::FormatMountedDevice(const std::string& mount_path) { 105} 106 107void FakeDiskMountManager::UnmountDeviceRecursively( 108 const std::string& device_path, 109 const UnmountDeviceRecursivelyCallbackType& callback) { 110} 111 112bool FakeDiskMountManager::AddDiskForTest(Disk* disk) { 113 DCHECK(disk); 114 return disks_.insert(make_pair(disk->device_path(), disk)).second; 115} 116 117bool FakeDiskMountManager::AddMountPointForTest( 118 const MountPointInfo& mount_point) { 119 return false; 120} 121 122void FakeDiskMountManager::InvokeDiskEventForTest( 123 chromeos::disks::DiskMountManager::DiskEvent event, 124 const chromeos::disks::DiskMountManager::Disk* disk) { 125 FOR_EACH_OBSERVER(chromeos::disks::DiskMountManager::Observer, 126 observers_, 127 OnDiskEvent(event, disk)); 128} 129 130} // namespace file_manager 131