Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / components / storage_monitor / test_volume_mount_watcher_win.h
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.
4 //
5 // This file contains a subclass of VolumeMountWatcherWin to expose some
6 // functionality for testing.
7
8 #ifndef COMPONENTS_STORAGE_MONITOR_TEST_VOLUME_MOUNT_WATCHER_WIN_H_
9 #define COMPONENTS_STORAGE_MONITOR_TEST_VOLUME_MOUNT_WATCHER_WIN_H_
10
11 #include <string>
12 #include <vector>
13
14 #include "base/strings/string16.h"
15 #include "base/synchronization/waitable_event.h"
16 #include "components/storage_monitor/volume_mount_watcher_win.h"
17
18 namespace base {
19 class FilePath;
20 }
21
22 namespace storage_monitor {
23
24 class TestVolumeMountWatcherWin : public VolumeMountWatcherWin {
25  public:
26   TestVolumeMountWatcherWin();
27   virtual ~TestVolumeMountWatcherWin();
28
29   static bool GetDeviceRemovable(const base::FilePath& device_path,
30                                  bool* removable);
31
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);
36
37   void SetAttachedDevicesFake();
38
39   void FlushWorkerPoolForTesting();
40
41   const std::vector<base::FilePath>& devices_checked() const {
42       return devices_checked_;
43   }
44
45   void BlockDeviceCheckForTesting();
46
47   void ReleaseDeviceCheck();
48
49   // VolumeMountWatcherWin:
50   virtual void DeviceCheckComplete(const base::FilePath& device_path) override;
51   virtual GetAttachedDevicesCallbackType
52       GetAttachedDevicesCallback() const override;
53   virtual GetDeviceDetailsCallbackType
54       GetDeviceDetailsCallback() const override;
55
56   // Should be used by unit tests to make sure the worker pool doesn't survive
57   // into other test runs.
58   void ShutdownWorkerPool();
59
60  private:
61   std::vector<base::FilePath> devices_checked_;
62   scoped_ptr<base::WaitableEvent> device_check_complete_event_;
63   bool attached_devices_fake_;
64
65   DISALLOW_COPY_AND_ASSIGN(TestVolumeMountWatcherWin);
66 };
67
68 }  // namespace storage_monitor
69
70 #endif  // COMPONENTS_STORAGE_MONITOR_TEST_VOLUME_MOUNT_WATCHER_WIN_H_