blob: e00278acc4f0ae7a1ac371a97dc34dd75ce5bb96 [file] [log] [blame]
[email protected]b9f22d12012-04-25 21:46:481// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]4ae73292011-11-15 05:20:182// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]4cbead42012-08-26 12:02:395#ifndef CHROMEOS_DISKS_MOCK_DISK_MOUNT_MANAGER_H_
6#define CHROMEOS_DISKS_MOCK_DISK_MOUNT_MANAGER_H_
[email protected]4ae73292011-11-15 05:20:187
8#include <string>
9
10#include "base/observer_list.h"
[email protected]dee4c092012-11-15 02:53:2111#include "chromeos/dbus/cros_disks_client.h"
[email protected]4cbead42012-08-26 12:02:3912#include "chromeos/disks/disk_mount_manager.h"
[email protected]4ae73292011-11-15 05:20:1813#include "testing/gmock/include/gmock/gmock.h"
14#include "testing/gtest/include/gtest/gtest.h"
15
16namespace chromeos {
17namespace disks {
18
[email protected]6b091d972014-03-30 18:21:1219// TODO(tbarzic): Replace this mock with a fake implementation
20// (http://crbug.com/355757)
[email protected]4ae73292011-11-15 05:20:1821class MockDiskMountManager : public DiskMountManager {
22 public:
23 MockDiskMountManager();
24 virtual ~MockDiskMountManager();
25
26 // DiskMountManager override.
27 MOCK_METHOD0(Init, void(void));
28 MOCK_METHOD1(AddObserver, void(DiskMountManager::Observer*));
29 MOCK_METHOD1(RemoveObserver, void(DiskMountManager::Observer*));
30 MOCK_CONST_METHOD0(disks, const DiskMountManager::DiskMap&(void));
[email protected]bcfa0072012-08-07 01:08:5731 MOCK_CONST_METHOD1(FindDiskBySourcePath,
32 const DiskMountManager::Disk*(const std::string&));
[email protected]4ae73292011-11-15 05:20:1833 MOCK_CONST_METHOD0(mount_points,
34 const DiskMountManager::MountPointMap&(void));
[email protected]a2e4ee22014-07-11 05:16:3535 MOCK_METHOD1(EnsureMountInfoRefreshed,
36 void(const EnsureMountInfoRefreshedCallback&));
[email protected]dcad8fc2012-04-30 23:31:3337 MOCK_METHOD4(MountPath, void(const std::string&, const std::string&,
38 const std::string&, MountType));
[email protected]8f919ee2013-03-14 19:53:2939 MOCK_METHOD3(UnmountPath, void(const std::string&,
40 UnmountOptions,
41 const DiskMountManager::UnmountPathCallback&));
[email protected]4ae73292011-11-15 05:20:1842 MOCK_METHOD1(FormatMountedDevice, void(const std::string&));
[email protected]e008d4fa2013-02-21 06:38:0143 MOCK_METHOD2(
44 UnmountDeviceRecursively,
45 void(const std::string&,
46 const DiskMountManager::UnmountDeviceRecursivelyCallbackType&));
[email protected]4ae73292011-11-15 05:20:1847
48 // Invokes fake device insert events.
49 void NotifyDeviceInsertEvents();
50
51 // Invokes fake device remove events.
52 void NotifyDeviceRemoveEvents();
53
54 // Sets up default results for mock methods.
55 void SetupDefaultReplies();
56
[email protected]9c5620d32012-07-31 01:00:3857 // Creates a fake disk entry for the mounted device. This function is
[email protected]5cfc09422013-03-04 23:48:4258 // primarily for StorageMonitorTest.
[email protected]9c5620d32012-07-31 01:00:3859 void CreateDiskEntryForMountDevice(
60 const DiskMountManager::MountPointInfo& mount_info,
[email protected]48faf412012-09-17 07:41:4361 const std::string& device_id,
[email protected]dee4c092012-11-15 02:53:2162 const std::string& device_label,
63 const std::string& vendor_name,
64 const std::string& product_name,
65 DeviceType device_type,
[email protected]6b091d972014-03-30 18:21:1266 uint64 total_size_in_bytes,
67 bool is_parent,
68 bool has_media,
69 bool on_boot_device);
[email protected]9c5620d32012-07-31 01:00:3870
71 // Removes the fake disk entry associated with the mounted device. This
[email protected]5cfc09422013-03-04 23:48:4272 // function is primarily for StorageMonitorTest.
[email protected]9c5620d32012-07-31 01:00:3873 void RemoveDiskEntryForMountDevice(
74 const DiskMountManager::MountPointInfo& mount_info);
75
[email protected]4ae73292011-11-15 05:20:1876 private:
77 // Is used to implement AddObserver.
78 void AddObserverInternal(DiskMountManager::Observer* observer);
79
80 // Is used to implement RemoveObserver.
81 void RemoveObserverInternal(DiskMountManager::Observer* observer);
82
83 // Is used to implement disks.
84 const DiskMountManager::DiskMap& disksInternal() const { return disks_; }
85
[email protected]cd66eab2012-08-03 21:55:3786 const DiskMountManager::MountPointMap& mountPointsInternal() const;
87
[email protected]bcfa0072012-08-07 01:08:5788 // Returns Disk object associated with the |source_path| or NULL on failure.
89 const DiskMountManager::Disk* FindDiskBySourcePathInternal(
90 const std::string& source_path) const;
91
[email protected]a2e4ee22014-07-11 05:16:3592 // Is used to implement EnsureMountInfoRefreshed.
93 void EnsureMountInfoRefreshedInternal(
94 const EnsureMountInfoRefreshedCallback& callback);
95
[email protected]4ae73292011-11-15 05:20:1896 // Notifies observers about device status update.
[email protected]e3c1fc92012-11-15 00:56:4697 void NotifyDeviceChanged(DeviceEvent event,
[email protected]4ae73292011-11-15 05:20:1898 const std::string& path);
99
100 // Notifies observers about disk status update.
[email protected]e3c1fc92012-11-15 00:56:46101 void NotifyDiskChanged(DiskEvent event,
[email protected]4ae73292011-11-15 05:20:18102 const DiskMountManager::Disk* disk);
103
104 // The list of observers.
105 ObserverList<DiskMountManager::Observer> observers_;
106
107 // The list of disks found.
108 DiskMountManager::DiskMap disks_;
109
[email protected]cd66eab2012-08-03 21:55:37110 // The list of existing mount points.
111 DiskMountManager::MountPointMap mount_points_;
112
[email protected]4ae73292011-11-15 05:20:18113 DISALLOW_COPY_AND_ASSIGN(MockDiskMountManager);
114};
115
116} // namespace disks
117} // namespace chromeos
118
[email protected]4cbead42012-08-26 12:02:39119#endif // CHROMEOS_DISKS_MOCK_DISK_MOUNT_MANAGER_H_