blob: bc108b1afcec69b4b5505cb9b4d412d5cabd0b8e [file] [log] [blame]
// 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 PortableDeviceWatcherWin to expose some
// functionality for testing.
#include <string>
#include "base/strings/string16.h"
#include "components/storage_monitor/portable_device_watcher_win.h"
namespace storage_monitor {
class TestPortableDeviceWatcherWin : public PortableDeviceWatcherWin {
// MTP device PnP identifiers.
static const base::char16 kMTPDeviceWithMultipleStorages[];
static const base::char16 kMTPDeviceWithInvalidInfo[];
static const base::char16 kMTPDeviceWithValidInfo[];
// MTP device storage unique identifier.
static const char kStorageUniqueIdA[];
virtual ~TestPortableDeviceWatcherWin();
// Returns the persistent storage unique id of the device specified by the
// |pnp_device_id|. |storage_object_id| specifies the string ID that uniquely
// identifies the object on the device.
static std::string GetMTPStorageUniqueId(
const base::string16& pnp_device_id,
const base::string16& storage_object_id);
// Returns a list of storage object identifiers of the media transfer protocol
// (MTP) device given a |pnp_device_id|.
static PortableDeviceWatcherWin::StorageObjectIDs GetMTPStorageObjectIds(
const base::string16& pnp_device_id);
// Gets the media transfer protocol (MTP) device storage details given a
// |pnp_device_id| and |storage_object_id|.
static void GetMTPStorageDetails(const base::string16& pnp_device_id,
const base::string16& storage_object_id,
base::string16* device_location,
std::string* unique_id,
base::string16* name);
// Returns a list of device storage details for the given device specified by
// |pnp_device_id|.
static PortableDeviceWatcherWin::StorageObjects GetDeviceStorageObjects(
const base::string16& pnp_device_id);
// Used by MediaFileSystemRegistry unit test.
void set_use_dummy_mtp_storage_info(bool use_dummy_info) {
use_dummy_mtp_storage_info_ = use_dummy_info;
// PortableDeviceWatcherWin:
virtual void EnumerateAttachedDevices() override;
virtual void HandleDeviceAttachEvent(
const base::string16& pnp_device_id) override;
virtual bool GetMTPStorageInfoFromDeviceId(
const std::string& storage_device_id,
base::string16* device_location,
base::string16* storage_object_id) const override;
// Set to true to get dummy storage details from
// GetMTPStorageInfoFromDeviceId().
bool use_dummy_mtp_storage_info_;
} // namespace storage_monitor