| 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
|
| index e084430fb5aabfd55066be8f8e4432960c1cb683..b66d8fc8707ef04074899528fbb4ab11277538b7 100644
|
| --- a/device/devices_app/usb/device_manager_impl_unittest.cc
|
| +++ b/device/devices_app/usb/device_manager_impl_unittest.cc
|
| @@ -14,7 +14,6 @@
|
| #include "device/core/device_client.h"
|
| #include "device/devices_app/usb/device_impl.h"
|
| #include "device/devices_app/usb/device_manager_impl.h"
|
| -#include "device/devices_app/usb/public/cpp/device_manager_delegate.h"
|
| #include "device/usb/mock_usb_device.h"
|
| #include "device/usb/mock_usb_device_handle.h"
|
| #include "device/usb/mock_usb_service.h"
|
| @@ -29,14 +28,21 @@ namespace usb {
|
|
|
| namespace {
|
|
|
| -class TestDeviceManagerDelegate : public DeviceManagerDelegate {
|
| +class TestPermissionProvider : public PermissionProvider {
|
| public:
|
| - TestDeviceManagerDelegate() {}
|
| - ~TestDeviceManagerDelegate() override {}
|
| + TestPermissionProvider(mojo::InterfaceRequest<PermissionProvider> request)
|
| + : binding_(this, request.Pass()) {}
|
| + ~TestPermissionProvider() override {}
|
| +
|
| + void HasDevicePermission(
|
| + mojo::Array<mojo::String> requested_guids,
|
| + const HasDevicePermissionCallback& callback) override {
|
| + // Permission to access all devices granted.
|
| + callback.Run(requested_guids.Pass());
|
| + }
|
|
|
| private:
|
| - // DeviceManagerDelegate implementation:
|
| - bool IsDeviceAllowed(const DeviceInfo& device_info) override { return true; }
|
| + mojo::StrongBinding<PermissionProvider> binding_;
|
| };
|
|
|
| class TestDeviceClient : public DeviceClient {
|
| @@ -66,11 +72,12 @@ class USBDeviceManagerImplTest : public testing::Test {
|
| }
|
|
|
| DeviceManagerPtr ConnectToDeviceManager() {
|
| + PermissionProviderPtr permission_provider;
|
| + new TestPermissionProvider(mojo::GetProxy(&permission_provider));
|
| DeviceManagerPtr device_manager;
|
| - new DeviceManagerImpl(
|
| - mojo::GetProxy(&device_manager),
|
| - scoped_ptr<DeviceManagerDelegate>(new TestDeviceManagerDelegate),
|
| - base::ThreadTaskRunnerHandle::Get());
|
| + new DeviceManagerImpl(mojo::GetProxy(&device_manager),
|
| + permission_provider.Pass(),
|
| + base::ThreadTaskRunnerHandle::Get());
|
| return device_manager.Pass();
|
| }
|
|
|
| @@ -236,13 +243,14 @@ TEST_F(USBDeviceManagerImplTest, GetDeviceChanges) {
|
| DeviceManagerPtr device_manager = ConnectToDeviceManager();
|
|
|
| {
|
| - std::set<std::string> added_guids;
|
| - std::set<std::string> removed_guids;
|
| - added_guids.insert(device0->guid());
|
| + // 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->GetDeviceChanges(base::Bind(&ExpectDeviceChangesAndThen,
|
| - added_guids, removed_guids,
|
| - loop.QuitClosure()));
|
| + device_manager->GetDevices(
|
| + nullptr, base::Bind(&ExpectDevicesAndThen, guids, loop.QuitClosure()));
|
| loop.Run();
|
| }
|
|
|
|
|