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 #ifndef COMPONENTS_STORAGE_MONITOR_TEST_STORAGE_MONITOR_H_
6 #define COMPONENTS_STORAGE_MONITOR_TEST_STORAGE_MONITOR_H_
10 #include "components/storage_monitor/storage_monitor.h"
12 class TestStorageMonitor : public StorageMonitor {
15 virtual ~TestStorageMonitor();
17 virtual void Init() OVERRIDE;
19 void MarkInitialized();
21 // Create and initialize a new TestStorageMonitor and install it
22 // as the StorageMonitor singleton. If there is a StorageMonitor instance
23 // already in place, NULL is returned, otherwise the TestStorageMonitor
24 // instance is returned. Use |Destroy| to delete the singleton.
25 static TestStorageMonitor* CreateAndInstall();
27 // Create and initialize a new TestStorageMonitor and install it
28 // as the StorageMonitor singleton. TestStorageMonitor is returned for
29 // convenience. Use |Destroy| to delete the singleton.
30 static TestStorageMonitor* CreateForBrowserTests();
32 // Synchronously initialize the current storage monitor.
33 static void SyncInitialize();
35 virtual bool GetStorageInfoForPath(
36 const base::FilePath& path,
37 StorageInfo* device_info) const OVERRIDE;
40 virtual bool GetMTPStorageInfoFromDeviceId(
41 const std::string& storage_device_id,
42 base::string16* device_location,
43 base::string16* storage_object_id) const OVERRIDE;
47 virtual device::MediaTransferProtocolManager*
48 media_transfer_protocol_manager() OVERRIDE;
51 virtual Receiver* receiver() const OVERRIDE;
53 virtual void EjectDevice(
54 const std::string& device_id,
55 base::Callback<void(StorageMonitor::EjectStatus)> callback)
58 const std::string& ejected_device() const { return ejected_device_; }
60 bool init_called() const { return init_called_; }
63 // Whether TestStorageMonitor::Init() has been called for not.
66 // The last device to be ejected.
67 std::string ejected_device_;
70 scoped_ptr<device::MediaTransferProtocolManager>
71 media_transfer_protocol_manager_;
75 #endif // COMPONENTS_STORAGE_MONITOR_TEST_STORAGE_MONITOR_H_