1 // Copyright 2014 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 // This file contains a subclass of VolumeMountWatcherWin to expose some
6 // functionality for testing.
8 #ifndef COMPONENTS_STORAGE_MONITOR_TEST_VOLUME_MOUNT_WATCHER_WIN_H_
9 #define COMPONENTS_STORAGE_MONITOR_TEST_VOLUME_MOUNT_WATCHER_WIN_H_
14 #include "base/strings/string16.h"
15 #include "base/synchronization/waitable_event.h"
16 #include "components/storage_monitor/volume_mount_watcher_win.h"
22 namespace storage_monitor
{
24 class TestVolumeMountWatcherWin
: public VolumeMountWatcherWin
{
26 TestVolumeMountWatcherWin();
27 virtual ~TestVolumeMountWatcherWin();
29 static bool GetDeviceRemovable(const base::FilePath
& device_path
,
32 void AddDeviceForTesting(const base::FilePath
& device_path
,
33 const std::string
& device_id
,
34 const base::string16
& device_name
,
35 uint64 total_size_in_bytes
);
37 void SetAttachedDevicesFake();
39 void FlushWorkerPoolForTesting();
41 virtual void DeviceCheckComplete(const base::FilePath
& device_path
);
43 const std::vector
<base::FilePath
>& devices_checked() const {
44 return devices_checked_
;
47 void BlockDeviceCheckForTesting();
49 void ReleaseDeviceCheck();
51 // VolumeMountWatcherWin:
52 virtual GetAttachedDevicesCallbackType
53 GetAttachedDevicesCallback() const OVERRIDE
;
54 virtual GetDeviceDetailsCallbackType
55 GetDeviceDetailsCallback() const OVERRIDE
;
57 // Should be used by unit tests to make sure the worker pool doesn't survive
58 // into other test runs.
59 void ShutdownWorkerPool();
62 std::vector
<base::FilePath
> devices_checked_
;
63 scoped_ptr
<base::WaitableEvent
> device_check_complete_event_
;
64 bool attached_devices_fake_
;
66 DISALLOW_COPY_AND_ASSIGN(TestVolumeMountWatcherWin
);
69 } // namespace storage_monitor
71 #endif // COMPONENTS_STORAGE_MONITOR_TEST_VOLUME_MOUNT_WATCHER_WIN_H_