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 PortableDeviceWatcherWin to expose some 6 // functionality for testing. 7 8 #ifndef COMPONENTS_STORAGE_MONITOR_TEST_PORTABLE_DEVICE_WATCHER_WIN_H_ 9 #define COMPONENTS_STORAGE_MONITOR_TEST_PORTABLE_DEVICE_WATCHER_WIN_H_ 10 11 #include <string> 12 13 #include "base/strings/string16.h" 14 #include "components/storage_monitor/portable_device_watcher_win.h" 15 16 namespace storage_monitor { 17 18 class TestPortableDeviceWatcherWin : public PortableDeviceWatcherWin { 19 public: 20 // MTP device PnP identifiers. 21 static const base::char16 kMTPDeviceWithMultipleStorages[]; 22 static const base::char16 kMTPDeviceWithInvalidInfo[]; 23 static const base::char16 kMTPDeviceWithValidInfo[]; 24 25 // MTP device storage unique identifier. 26 static const char kStorageUniqueIdA[]; 27 28 TestPortableDeviceWatcherWin(); 29 virtual ~TestPortableDeviceWatcherWin(); 30 31 // Returns the persistent storage unique id of the device specified by the 32 // |pnp_device_id|. |storage_object_id| specifies the string ID that uniquely 33 // identifies the object on the device. 34 static std::string GetMTPStorageUniqueId( 35 const base::string16& pnp_device_id, 36 const base::string16& storage_object_id); 37 38 // Returns a list of storage object identifiers of the media transfer protocol 39 // (MTP) device given a |pnp_device_id|. 40 static PortableDeviceWatcherWin::StorageObjectIDs GetMTPStorageObjectIds( 41 const base::string16& pnp_device_id); 42 43 // Gets the media transfer protocol (MTP) device storage details given a 44 // |pnp_device_id| and |storage_object_id|. 45 static void GetMTPStorageDetails(const base::string16& pnp_device_id, 46 const base::string16& storage_object_id, 47 base::string16* device_location, 48 std::string* unique_id, 49 base::string16* name); 50 51 // Returns a list of device storage details for the given device specified by 52 // |pnp_device_id|. 53 static PortableDeviceWatcherWin::StorageObjects GetDeviceStorageObjects( 54 const base::string16& pnp_device_id); 55 56 // Used by MediaFileSystemRegistry unit test. 57 void set_use_dummy_mtp_storage_info(bool use_dummy_info) { 58 use_dummy_mtp_storage_info_ = use_dummy_info; 59 } 60 61 private: 62 // PortableDeviceWatcherWin: 63 virtual void EnumerateAttachedDevices() OVERRIDE; 64 virtual void HandleDeviceAttachEvent( 65 const base::string16& pnp_device_id) OVERRIDE; 66 virtual bool GetMTPStorageInfoFromDeviceId( 67 const std::string& storage_device_id, 68 base::string16* device_location, 69 base::string16* storage_object_id) const OVERRIDE; 70 71 // Set to true to get dummy storage details from 72 // GetMTPStorageInfoFromDeviceId(). 73 bool use_dummy_mtp_storage_info_; 74 75 DISALLOW_COPY_AND_ASSIGN(TestPortableDeviceWatcherWin); 76 }; 77 78 } // namespace storage_monitor 79 80 #endif // COMPONENTS_STORAGE_MONITOR_TEST_PORTABLE_DEVICE_WATCHER_WIN_H_ 81