| Index: chrome/browser/chromeos/imageburner/burn_device_handler_unittest.cc
|
| diff --git a/chrome/browser/chromeos/imageburner/burn_device_handler_unittest.cc b/chrome/browser/chromeos/imageburner/burn_device_handler_unittest.cc
|
| deleted file mode 100644
|
| index 1cf620d720bd3d76bddecd4628389f6d0cda8922..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/imageburner/burn_device_handler_unittest.cc
|
| +++ /dev/null
|
| @@ -1,286 +0,0 @@
|
| -// Copyright (c) 2013 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.
|
| -
|
| -#include "chrome/browser/chromeos/imageburner/burn_device_handler.h"
|
| -
|
| -#include <string>
|
| -#include <utility>
|
| -#include <vector>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/logging.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/observer_list.h"
|
| -#include "base/stl_util.h"
|
| -#include "chromeos/dbus/cros_disks_client.h"
|
| -#include "chromeos/disks/disk_mount_manager.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace chromeos {
|
| -namespace imageburner {
|
| -
|
| -namespace {
|
| -
|
| -const bool kIsParent = true;
|
| -const bool kIsBootDevice = true;
|
| -const bool kHasMedia = true;
|
| -
|
| -class FakeDiskMountManager : public disks::DiskMountManager {
|
| - public:
|
| - FakeDiskMountManager() {}
|
| -
|
| - virtual ~FakeDiskMountManager() {
|
| - STLDeleteValues(&disks_);
|
| - }
|
| -
|
| - // Emulates to add new disk physically (e.g., connecting a
|
| - // new USB flash to a Chrome OS).
|
| - void EmulateAddDisk(scoped_ptr<Disk> in_disk) {
|
| - DCHECK(in_disk.get());
|
| - // Keep the reference for the callback, before passing the ownership to
|
| - // InsertDisk. It should be safe, because it won't be deleted in
|
| - // InsertDisk.
|
| - Disk* disk = in_disk.get();
|
| - bool new_disk = InsertDisk(disk->device_path(), in_disk.Pass());
|
| - FOR_EACH_OBSERVER(
|
| - Observer, observers_,
|
| - OnDiskEvent(new_disk ? DISK_ADDED : DISK_CHANGED, disk));
|
| - }
|
| -
|
| - // Emulates to remove a disk phyically (e.g., removing a USB flash from
|
| - // a Chrome OS).
|
| - void EmulateRemoveDisk(const std::string& source_path) {
|
| - scoped_ptr<Disk> disk(RemoveDisk(source_path));
|
| - if (disk.get()) {
|
| - FOR_EACH_OBSERVER(
|
| - Observer, observers_, OnDiskEvent(DISK_REMOVED, disk.get()));
|
| - }
|
| - }
|
| -
|
| - // DiskMountManager overrides.
|
| - virtual void AddObserver(Observer* observer) override {
|
| - observers_.AddObserver(observer);
|
| - }
|
| -
|
| - virtual void RemoveObserver(Observer* observer) override {
|
| - observers_.RemoveObserver(observer);
|
| - }
|
| -
|
| - virtual const DiskMap& disks() const override {
|
| - return disks_;
|
| - }
|
| -
|
| - // Following methods are not implemented.
|
| - virtual const Disk* FindDiskBySourcePath(
|
| - const std::string& source_path) const override {
|
| - return NULL;
|
| - }
|
| - virtual const MountPointMap& mount_points() const override {
|
| - // Note: mount_points_ will always be empty, now.
|
| - return mount_points_;
|
| - }
|
| - virtual void EnsureMountInfoRefreshed(
|
| - const EnsureMountInfoRefreshedCallback& callback) override {}
|
| - virtual void MountPath(const std::string& source_path,
|
| - const std::string& source_format,
|
| - const std::string& mount_label,
|
| - MountType type) override {}
|
| - virtual void UnmountPath(const std::string& mount_path,
|
| - UnmountOptions options,
|
| - const UnmountPathCallback& callback) override {}
|
| - virtual void FormatMountedDevice(const std::string& mount_path) override {}
|
| - virtual void UnmountDeviceRecursively(
|
| - const std::string& device_path,
|
| - const UnmountDeviceRecursivelyCallbackType& callback) override {}
|
| - virtual bool AddDiskForTest(Disk* disk) override { return false; }
|
| - virtual bool AddMountPointForTest(
|
| - const MountPointInfo& mount_point) override {
|
| - return false;
|
| - }
|
| -
|
| - private:
|
| - bool InsertDisk(const std::string& path, scoped_ptr<Disk> disk) {
|
| - std::pair<DiskMap::iterator, bool> insert_result =
|
| - disks_.insert(std::pair<std::string, Disk*>(path, NULL));
|
| - if (!insert_result.second) {
|
| - // There is already an entry. Delete it before replacing.
|
| - delete insert_result.first->second;
|
| - }
|
| - insert_result.first->second = disk.release(); // Moves ownership.
|
| - return insert_result.second;
|
| - }
|
| -
|
| - scoped_ptr<Disk> RemoveDisk(const std::string& path) {
|
| - DiskMap::iterator iter = disks_.find(path);
|
| - if (iter == disks_.end()) {
|
| - // Not found.
|
| - return scoped_ptr<Disk>();
|
| - }
|
| - scoped_ptr<Disk> result(iter->second);
|
| - disks_.erase(iter);
|
| - return result.Pass();
|
| - }
|
| -
|
| - ObserverList<Observer> observers_;
|
| - DiskMap disks_;
|
| - MountPointMap mount_points_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(FakeDiskMountManager);
|
| -};
|
| -
|
| -void CopyDevicePathCallback(
|
| - std::string* out_path, const disks::DiskMountManager::Disk& disk) {
|
| - *out_path = disk.device_path();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -class BurnDeviceHandlerTest : public testing::Test {
|
| - protected:
|
| - virtual void SetUp() override {
|
| - disk_mount_manager_.reset(new FakeDiskMountManager);
|
| - }
|
| -
|
| - virtual void TearDown() override {
|
| - disk_mount_manager_.reset();
|
| - }
|
| -
|
| - static scoped_ptr<disks::DiskMountManager::Disk> CreateMockDisk(
|
| - const std::string& device_path,
|
| - bool is_parent,
|
| - bool on_boot_device,
|
| - bool has_media,
|
| - DeviceType device_type) {
|
| - return scoped_ptr<disks::DiskMountManager::Disk>(
|
| - new disks::DiskMountManager::Disk(
|
| - device_path,
|
| - "", // mount path
|
| - "", // system_path
|
| - "", // file_path
|
| - "", // device label
|
| - "", // drive label
|
| - "", // vendor id
|
| - "", // vendor name
|
| - "", // product id
|
| - "", // product name
|
| - "", // fs uuid
|
| - "", // system path prefix
|
| - device_type,
|
| - 0, // total size in bytes
|
| - is_parent,
|
| - false, // is read only
|
| - has_media,
|
| - on_boot_device,
|
| - true, // on_removable_device
|
| - false)); // is hidden
|
| - }
|
| -
|
| - scoped_ptr<FakeDiskMountManager> disk_mount_manager_;
|
| -};
|
| -
|
| -TEST_F(BurnDeviceHandlerTest, GetBurnableDevices) {
|
| - // The devices which should be retrieved as burnable.
|
| - disk_mount_manager_->EmulateAddDisk(
|
| - CreateMockDisk("/dev/burnable_usb",
|
| - kIsParent, !kIsBootDevice, kHasMedia, DEVICE_TYPE_USB));
|
| - disk_mount_manager_->EmulateAddDisk(
|
| - CreateMockDisk("/dev/burnable_sd",
|
| - kIsParent, !kIsBootDevice, kHasMedia, DEVICE_TYPE_SD));
|
| -
|
| - // If the device type is neither USB nor SD, it shouldn't be burnable.
|
| - disk_mount_manager_->EmulateAddDisk(
|
| - CreateMockDisk(
|
| - "/dev/non_burnable_unknown",
|
| - kIsParent, !kIsBootDevice, kHasMedia, DEVICE_TYPE_UNKNOWN));
|
| - disk_mount_manager_->EmulateAddDisk(
|
| - CreateMockDisk("/dev/non_burnable_dvd",
|
| - kIsParent, !kIsBootDevice, kHasMedia, DEVICE_TYPE_DVD));
|
| -
|
| - // If not parent, it shouldn't be burnable.
|
| - disk_mount_manager_->EmulateAddDisk(
|
| - CreateMockDisk("/dev/non_burnable_not_parent",
|
| - !kIsParent, !kIsBootDevice, kHasMedia, DEVICE_TYPE_USB));
|
| -
|
| - // If on_boot_device, it shouldn't be burnable.
|
| - disk_mount_manager_->EmulateAddDisk(
|
| - CreateMockDisk("/dev/non_burnable_boot_device",
|
| - kIsParent, kIsBootDevice, kHasMedia, DEVICE_TYPE_USB));
|
| -
|
| - // If no media, it shouldn't be burnable.
|
| - disk_mount_manager_->EmulateAddDisk(
|
| - CreateMockDisk("/dev/non_burnable_no_media",
|
| - kIsParent, !kIsBootDevice, !kHasMedia, DEVICE_TYPE_USB));
|
| -
|
| - BurnDeviceHandler handler(disk_mount_manager_.get());
|
| -
|
| - const std::vector<disks::DiskMountManager::Disk>& burnable_devices =
|
| - handler.GetBurnableDevices();
|
| - ASSERT_EQ(2u, burnable_devices.size());
|
| - bool burnable_usb_found = false;
|
| - bool burnable_sd_found = false;
|
| - for (size_t i = 0; i < burnable_devices.size(); ++i) {
|
| - const std::string& device_path = burnable_devices[i].device_path();
|
| - burnable_usb_found |= (device_path == "/dev/burnable_usb");
|
| - burnable_sd_found |= (device_path == "/dev/burnable_sd");
|
| - }
|
| -
|
| - EXPECT_TRUE(burnable_usb_found);
|
| - EXPECT_TRUE(burnable_sd_found);
|
| -}
|
| -
|
| -TEST_F(BurnDeviceHandlerTest, Callback) {
|
| - std::string added_device;
|
| - std::string removed_device;
|
| -
|
| - BurnDeviceHandler handler(disk_mount_manager_.get());
|
| - handler.SetCallbacks(
|
| - base::Bind(CopyDevicePathCallback, &added_device),
|
| - base::Bind(CopyDevicePathCallback, &removed_device));
|
| -
|
| - // Emulate to connect a burnable device.
|
| - // |add_callback| should be invoked.
|
| - disk_mount_manager_->EmulateAddDisk(
|
| - CreateMockDisk("/dev/burnable",
|
| - kIsParent, !kIsBootDevice, kHasMedia, DEVICE_TYPE_USB));
|
| - EXPECT_EQ("/dev/burnable", added_device);
|
| - EXPECT_TRUE(removed_device.empty());
|
| -
|
| - // Emulate to change the currently connected burnable device.
|
| - // Neither |add_callback| nor |remove_callback| should be called.
|
| - added_device.clear();
|
| - removed_device.clear();
|
| - disk_mount_manager_->EmulateAddDisk(
|
| - CreateMockDisk("/dev/burnable",
|
| - kIsParent, !kIsBootDevice, kHasMedia, DEVICE_TYPE_USB));
|
| - EXPECT_TRUE(added_device.empty());
|
| - EXPECT_TRUE(removed_device.empty());
|
| -
|
| - // Emulate to disconnect the burnable device.
|
| - // |remove_callback| should be called.
|
| - added_device.clear();
|
| - removed_device.clear();
|
| - disk_mount_manager_->EmulateRemoveDisk("/dev/burnable");
|
| - EXPECT_TRUE(added_device.empty());
|
| - EXPECT_EQ("/dev/burnable", removed_device);
|
| -
|
| - // Emulate to connect and unconnect an unburnable device.
|
| - // For each case, neither |add_callback| nor |remove_callback| should be
|
| - // called.
|
| - added_device.clear();
|
| - removed_device.clear();
|
| - disk_mount_manager_->EmulateAddDisk(
|
| - CreateMockDisk("/dev/unburnable",
|
| - !kIsParent, !kIsBootDevice, kHasMedia, DEVICE_TYPE_USB));
|
| - EXPECT_TRUE(added_device.empty());
|
| - EXPECT_TRUE(removed_device.empty());
|
| -
|
| - added_device.clear();
|
| - removed_device.clear();
|
| - disk_mount_manager_->EmulateRemoveDisk("/dev/unburnable");
|
| - EXPECT_TRUE(added_device.empty());
|
| - EXPECT_TRUE(removed_device.empty());
|
| -}
|
| -
|
| -} // namespace imageburner
|
| -} // namespace chromeos
|
|
|