| Index: device/devices_app/usb/device_manager_impl_unittest.cc
|
| diff --git a/device/devices_app/usb/device_manager_impl_unittest.cc b/device/devices_app/usb/device_manager_impl_unittest.cc
|
| deleted file mode 100644
|
| index 720c811b78f1c177c350b335f160ed0d037cc1d4..0000000000000000000000000000000000000000
|
| --- a/device/devices_app/usb/device_manager_impl_unittest.cc
|
| +++ /dev/null
|
| @@ -1,218 +0,0 @@
|
| -// Copyright 2015 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 "device/devices_app/usb/device_manager_impl.h"
|
| -
|
| -#include <stddef.h>
|
| -#include <set>
|
| -#include <string>
|
| -#include <utility>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/run_loop.h"
|
| -#include "base/thread_task_runner_handle.h"
|
| -#include "device/core/mock_device_client.h"
|
| -#include "device/devices_app/usb/device_impl.h"
|
| -#include "device/devices_app/usb/fake_permission_provider.h"
|
| -#include "device/usb/mock_usb_device.h"
|
| -#include "device/usb/mock_usb_device_handle.h"
|
| -#include "device/usb/mock_usb_service.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using ::testing::Invoke;
|
| -using ::testing::_;
|
| -
|
| -namespace device {
|
| -namespace usb {
|
| -
|
| -namespace {
|
| -
|
| -class USBDeviceManagerImplTest : public testing::Test {
|
| - public:
|
| - USBDeviceManagerImplTest() : message_loop_(new base::MessageLoop) {}
|
| - ~USBDeviceManagerImplTest() override {}
|
| -
|
| - protected:
|
| - DeviceManagerPtr ConnectToDeviceManager() {
|
| - PermissionProviderPtr permission_provider;
|
| - permission_provider_.Bind(mojo::GetProxy(&permission_provider));
|
| - DeviceManagerPtr device_manager;
|
| - DeviceManagerImpl::Create(std::move(permission_provider),
|
| - mojo::GetProxy(&device_manager));
|
| - return device_manager;
|
| - }
|
| -
|
| - MockDeviceClient device_client_;
|
| -
|
| - private:
|
| - FakePermissionProvider permission_provider_;
|
| - scoped_ptr<base::MessageLoop> message_loop_;
|
| -};
|
| -
|
| -void ExpectDevicesAndThen(const std::set<std::string>& expected_guids,
|
| - const base::Closure& continuation,
|
| - mojo::Array<DeviceInfoPtr> results) {
|
| - EXPECT_EQ(expected_guids.size(), results.size());
|
| - std::set<std::string> actual_guids;
|
| - for (size_t i = 0; i < results.size(); ++i)
|
| - actual_guids.insert(results[i]->guid);
|
| - EXPECT_EQ(expected_guids, actual_guids);
|
| - continuation.Run();
|
| -}
|
| -
|
| -void ExpectDeviceChangesAndThen(
|
| - const std::set<std::string>& expected_added_guids,
|
| - const std::set<std::string>& expected_removed_guids,
|
| - const base::Closure& continuation,
|
| - DeviceChangeNotificationPtr results) {
|
| - EXPECT_EQ(expected_added_guids.size(), results->devices_added.size());
|
| - std::set<std::string> actual_added_guids;
|
| - for (size_t i = 0; i < results->devices_added.size(); ++i)
|
| - actual_added_guids.insert(results->devices_added[i]->guid);
|
| - EXPECT_EQ(expected_added_guids, actual_added_guids);
|
| - EXPECT_EQ(expected_removed_guids.size(), results->devices_removed.size());
|
| - std::set<std::string> actual_removed_guids;
|
| - for (size_t i = 0; i < results->devices_removed.size(); ++i)
|
| - actual_removed_guids.insert(results->devices_removed[i]->guid);
|
| - EXPECT_EQ(expected_removed_guids, actual_removed_guids);
|
| - continuation.Run();
|
| -}
|
| -
|
| -void ExpectDeviceInfoAndThen(const std::string& expected_guid,
|
| - const base::Closure& continuation,
|
| - DeviceInfoPtr device_info) {
|
| - ASSERT_TRUE(device_info);
|
| - EXPECT_EQ(expected_guid, device_info->guid);
|
| - continuation.Run();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -// Test basic GetDevices functionality to ensure that all mock devices are
|
| -// returned by the service.
|
| -TEST_F(USBDeviceManagerImplTest, GetDevices) {
|
| - scoped_refptr<MockUsbDevice> device0 =
|
| - new MockUsbDevice(0x1234, 0x5678, "ACME", "Frobinator", "ABCDEF");
|
| - scoped_refptr<MockUsbDevice> device1 =
|
| - new MockUsbDevice(0x1234, 0x5679, "ACME", "Frobinator+", "GHIJKL");
|
| - scoped_refptr<MockUsbDevice> device2 =
|
| - new MockUsbDevice(0x1234, 0x567a, "ACME", "Frobinator Mk II", "MNOPQR");
|
| -
|
| - device_client_.usb_service()->AddDevice(device0);
|
| - device_client_.usb_service()->AddDevice(device1);
|
| - device_client_.usb_service()->AddDevice(device2);
|
| -
|
| - DeviceManagerPtr device_manager = ConnectToDeviceManager();
|
| -
|
| - EnumerationOptionsPtr options = EnumerationOptions::New();
|
| - options->filters = mojo::Array<DeviceFilterPtr>::New(1);
|
| - options->filters[0] = DeviceFilter::New();
|
| - options->filters[0]->has_vendor_id = true;
|
| - options->filters[0]->vendor_id = 0x1234;
|
| -
|
| - std::set<std::string> guids;
|
| - guids.insert(device0->guid());
|
| - guids.insert(device1->guid());
|
| - guids.insert(device2->guid());
|
| -
|
| - base::RunLoop loop;
|
| - device_manager->GetDevices(
|
| - std::move(options),
|
| - base::Bind(&ExpectDevicesAndThen, guids, loop.QuitClosure()));
|
| - loop.Run();
|
| -}
|
| -
|
| -// Test requesting a single Device by GUID.
|
| -TEST_F(USBDeviceManagerImplTest, GetDevice) {
|
| - scoped_refptr<MockUsbDevice> mock_device =
|
| - new MockUsbDevice(0x1234, 0x5678, "ACME", "Frobinator", "ABCDEF");
|
| -
|
| - device_client_.usb_service()->AddDevice(mock_device);
|
| -
|
| - DeviceManagerPtr device_manager = ConnectToDeviceManager();
|
| -
|
| - {
|
| - base::RunLoop loop;
|
| - DevicePtr device;
|
| - device_manager->GetDevice(mock_device->guid(), mojo::GetProxy(&device));
|
| - device->GetDeviceInfo(base::Bind(&ExpectDeviceInfoAndThen,
|
| - mock_device->guid(), loop.QuitClosure()));
|
| - loop.Run();
|
| - }
|
| -
|
| - DevicePtr bad_device;
|
| - device_manager->GetDevice("not a real guid", mojo::GetProxy(&bad_device));
|
| -
|
| - {
|
| - base::RunLoop loop;
|
| - bad_device.set_connection_error_handler(loop.QuitClosure());
|
| - loop.Run();
|
| - }
|
| -}
|
| -
|
| -// Test requesting device enumeration updates with GetDeviceChanges.
|
| -TEST_F(USBDeviceManagerImplTest, GetDeviceChanges) {
|
| - scoped_refptr<MockUsbDevice> device0 =
|
| - new MockUsbDevice(0x1234, 0x5678, "ACME", "Frobinator", "ABCDEF");
|
| - scoped_refptr<MockUsbDevice> device1 =
|
| - new MockUsbDevice(0x1234, 0x5679, "ACME", "Frobinator+", "GHIJKL");
|
| - scoped_refptr<MockUsbDevice> device2 =
|
| - new MockUsbDevice(0x1234, 0x567a, "ACME", "Frobinator Mk II", "MNOPQR");
|
| - scoped_refptr<MockUsbDevice> device3 =
|
| - new MockUsbDevice(0x1234, 0x567b, "ACME", "Frobinator Xtreme", "STUVWX");
|
| -
|
| - device_client_.usb_service()->AddDevice(device0);
|
| -
|
| - DeviceManagerPtr device_manager = ConnectToDeviceManager();
|
| -
|
| - {
|
| - // Call GetDevices once to make sure the device manager is up and running
|
| - // or else we could end up waiting forever for device changes as the next
|
| - // block races with the ServiceThreadHelper startup.
|
| - std::set<std::string> guids;
|
| - guids.insert(device0->guid());
|
| - base::RunLoop loop;
|
| - device_manager->GetDevices(
|
| - nullptr, base::Bind(&ExpectDevicesAndThen, guids, loop.QuitClosure()));
|
| - loop.Run();
|
| - }
|
| -
|
| - device_client_.usb_service()->AddDevice(device1);
|
| - device_client_.usb_service()->AddDevice(device2);
|
| - device_client_.usb_service()->RemoveDevice(device1);
|
| -
|
| - {
|
| - std::set<std::string> added_guids;
|
| - std::set<std::string> removed_guids;
|
| - added_guids.insert(device2->guid());
|
| - base::RunLoop loop;
|
| - device_manager->GetDeviceChanges(base::Bind(&ExpectDeviceChangesAndThen,
|
| - added_guids, removed_guids,
|
| - loop.QuitClosure()));
|
| - loop.Run();
|
| - }
|
| -
|
| - device_client_.usb_service()->RemoveDevice(device0);
|
| - device_client_.usb_service()->RemoveDevice(device2);
|
| - device_client_.usb_service()->AddDevice(device3);
|
| -
|
| - {
|
| - std::set<std::string> added_guids;
|
| - std::set<std::string> removed_guids;
|
| - added_guids.insert(device3->guid());
|
| - removed_guids.insert(device0->guid());
|
| - removed_guids.insert(device2->guid());
|
| - base::RunLoop loop;
|
| - device_manager->GetDeviceChanges(base::Bind(&ExpectDeviceChangesAndThen,
|
| - added_guids, removed_guids,
|
| - loop.QuitClosure()));
|
| - loop.Run();
|
| - }
|
| -}
|
| -
|
| -} // namespace usb
|
| -} // namespace device
|
|
|