1 // Copyright (c) 2012 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 #ifndef CHROMEOS_DISKS_MOCK_DISK_MOUNT_MANAGER_H_
6 #define CHROMEOS_DISKS_MOCK_DISK_MOUNT_MANAGER_H_
10 #include "base/observer_list.h"
11 #include "chromeos/dbus/cros_disks_client.h"
12 #include "chromeos/disks/disk_mount_manager.h"
13 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h"
19 // TODO(tbarzic): Replace this mock with a fake implementation
20 // (http://crbug.com/355757)
21 class MockDiskMountManager
: public DiskMountManager
{
23 MockDiskMountManager();
24 virtual ~MockDiskMountManager();
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));
31 MOCK_CONST_METHOD1(FindDiskBySourcePath
,
32 const DiskMountManager::Disk
*(const std::string
&));
33 MOCK_CONST_METHOD0(mount_points
,
34 const DiskMountManager::MountPointMap
&(void));
35 MOCK_METHOD0(RequestMountInfoRefresh
, void(void));
36 MOCK_METHOD4(MountPath
, void(const std::string
&, const std::string
&,
37 const std::string
&, MountType
));
38 MOCK_METHOD3(UnmountPath
, void(const std::string
&,
40 const DiskMountManager::UnmountPathCallback
&));
41 MOCK_METHOD1(FormatMountedDevice
, void(const std::string
&));
43 UnmountDeviceRecursively
,
44 void(const std::string
&,
45 const DiskMountManager::UnmountDeviceRecursivelyCallbackType
&));
47 // Invokes fake device insert events.
48 void NotifyDeviceInsertEvents();
50 // Invokes fake device remove events.
51 void NotifyDeviceRemoveEvents();
53 // Sets up default results for mock methods.
54 void SetupDefaultReplies();
56 // Creates a fake disk entry for the mounted device. This function is
57 // primarily for StorageMonitorTest.
58 void CreateDiskEntryForMountDevice(
59 const DiskMountManager::MountPointInfo
& mount_info
,
60 const std::string
& device_id
,
61 const std::string
& device_label
,
62 const std::string
& vendor_name
,
63 const std::string
& product_name
,
64 DeviceType device_type
,
65 uint64 total_size_in_bytes
,
70 // Removes the fake disk entry associated with the mounted device. This
71 // function is primarily for StorageMonitorTest.
72 void RemoveDiskEntryForMountDevice(
73 const DiskMountManager::MountPointInfo
& mount_info
);
76 // Is used to implement AddObserver.
77 void AddObserverInternal(DiskMountManager::Observer
* observer
);
79 // Is used to implement RemoveObserver.
80 void RemoveObserverInternal(DiskMountManager::Observer
* observer
);
82 // Is used to implement disks.
83 const DiskMountManager::DiskMap
& disksInternal() const { return disks_
; }
85 const DiskMountManager::MountPointMap
& mountPointsInternal() const;
87 // Returns Disk object associated with the |source_path| or NULL on failure.
88 const DiskMountManager::Disk
* FindDiskBySourcePathInternal(
89 const std::string
& source_path
) const;
91 // Notifies observers about device status update.
92 void NotifyDeviceChanged(DeviceEvent event
,
93 const std::string
& path
);
95 // Notifies observers about disk status update.
96 void NotifyDiskChanged(DiskEvent event
,
97 const DiskMountManager::Disk
* disk
);
99 // The list of observers.
100 ObserverList
<DiskMountManager::Observer
> observers_
;
102 // The list of disks found.
103 DiskMountManager::DiskMap disks_
;
105 // The list of existing mount points.
106 DiskMountManager::MountPointMap mount_points_
;
108 DISALLOW_COPY_AND_ASSIGN(MockDiskMountManager
);
112 } // namespace chromeos
114 #endif // CHROMEOS_DISKS_MOCK_DISK_MOUNT_MANAGER_H_