| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| // This file contains a subclass of VolumeMountWatcherWin to expose some |
| // functionality for testing. |
| |
| #ifndef COMPONENTS_STORAGE_MONITOR_TEST_VOLUME_MOUNT_WATCHER_WIN_H_ |
| #define COMPONENTS_STORAGE_MONITOR_TEST_VOLUME_MOUNT_WATCHER_WIN_H_ |
| |
| #include <stdint.h> |
| |
| #include <memory> |
| #include <string> |
| #include <vector> |
| |
| #include "base/synchronization/waitable_event.h" |
| #include "components/storage_monitor/volume_mount_watcher_win.h" |
| |
| namespace base { |
| class FilePath; |
| } |
| |
| namespace storage_monitor { |
| |
| class TestVolumeMountWatcherWin : public VolumeMountWatcherWin { |
| public: |
| TestVolumeMountWatcherWin(); |
| |
| TestVolumeMountWatcherWin(const TestVolumeMountWatcherWin&) = delete; |
| TestVolumeMountWatcherWin& operator=(const TestVolumeMountWatcherWin&) = |
| delete; |
| |
| ~TestVolumeMountWatcherWin() override; |
| |
| static bool GetDeviceRemovable(const base::FilePath& device_path, |
| bool* removable); |
| |
| void AddDeviceForTesting(const base::FilePath& device_path, |
| const std::string& device_id, |
| const std::u16string& device_name, |
| uint64_t total_size_in_bytes); |
| |
| void SetAttachedDevicesFake(); |
| |
| const std::vector<base::FilePath>& devices_checked() const { |
| return devices_checked_; |
| } |
| |
| void BlockDeviceCheckForTesting(); |
| |
| void ReleaseDeviceCheck(); |
| |
| // VolumeMountWatcherWin: |
| void DeviceCheckComplete(const base::FilePath& device_path) override; |
| GetAttachedDevicesCallbackType GetAttachedDevicesCallback() const override; |
| GetDeviceDetailsCallbackType GetDeviceDetailsCallback() const override; |
| |
| private: |
| std::vector<base::FilePath> devices_checked_; |
| std::unique_ptr<base::WaitableEvent> device_check_complete_event_; |
| bool attached_devices_fake_; |
| }; |
| |
| } // namespace storage_monitor |
| |
| #endif // COMPONENTS_STORAGE_MONITOR_TEST_VOLUME_MOUNT_WATCHER_WIN_H_ |