OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
| 5 #include "device/devices_app/usb/device_manager_impl.h" |
| 6 |
5 #include <stddef.h> | 7 #include <stddef.h> |
6 | |
7 #include <set> | 8 #include <set> |
8 #include <string> | 9 #include <string> |
| 10 #include <utility> |
9 | 11 |
10 #include "base/bind.h" | 12 #include "base/bind.h" |
11 #include "base/macros.h" | 13 #include "base/macros.h" |
12 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
13 #include "base/message_loop/message_loop.h" | 15 #include "base/message_loop/message_loop.h" |
14 #include "base/run_loop.h" | 16 #include "base/run_loop.h" |
15 #include "base/thread_task_runner_handle.h" | 17 #include "base/thread_task_runner_handle.h" |
16 #include "device/core/mock_device_client.h" | 18 #include "device/core/mock_device_client.h" |
17 #include "device/devices_app/usb/device_impl.h" | 19 #include "device/devices_app/usb/device_impl.h" |
18 #include "device/devices_app/usb/device_manager_impl.h" | |
19 #include "device/devices_app/usb/fake_permission_provider.h" | 20 #include "device/devices_app/usb/fake_permission_provider.h" |
20 #include "device/usb/mock_usb_device.h" | 21 #include "device/usb/mock_usb_device.h" |
21 #include "device/usb/mock_usb_device_handle.h" | 22 #include "device/usb/mock_usb_device_handle.h" |
22 #include "device/usb/mock_usb_service.h" | 23 #include "device/usb/mock_usb_service.h" |
23 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
24 | 25 |
25 using ::testing::Invoke; | 26 using ::testing::Invoke; |
26 using ::testing::_; | 27 using ::testing::_; |
27 | 28 |
28 namespace device { | 29 namespace device { |
29 namespace usb { | 30 namespace usb { |
30 | 31 |
31 namespace { | 32 namespace { |
32 | 33 |
33 class USBDeviceManagerImplTest : public testing::Test { | 34 class USBDeviceManagerImplTest : public testing::Test { |
34 public: | 35 public: |
35 USBDeviceManagerImplTest() : message_loop_(new base::MessageLoop) {} | 36 USBDeviceManagerImplTest() : message_loop_(new base::MessageLoop) {} |
36 ~USBDeviceManagerImplTest() override {} | 37 ~USBDeviceManagerImplTest() override {} |
37 | 38 |
38 protected: | 39 protected: |
39 DeviceManagerPtr ConnectToDeviceManager() { | 40 DeviceManagerPtr ConnectToDeviceManager() { |
40 PermissionProviderPtr permission_provider; | 41 PermissionProviderPtr permission_provider; |
41 permission_provider_.Bind(mojo::GetProxy(&permission_provider)); | 42 permission_provider_.Bind(mojo::GetProxy(&permission_provider)); |
42 DeviceManagerPtr device_manager; | 43 DeviceManagerPtr device_manager; |
43 DeviceManagerImpl::Create(permission_provider.Pass(), | 44 DeviceManagerImpl::Create(std::move(permission_provider), |
44 mojo::GetProxy(&device_manager)); | 45 mojo::GetProxy(&device_manager)); |
45 return device_manager.Pass(); | 46 return device_manager; |
46 } | 47 } |
47 | 48 |
48 MockDeviceClient device_client_; | 49 MockDeviceClient device_client_; |
49 | 50 |
50 private: | 51 private: |
51 FakePermissionProvider permission_provider_; | 52 FakePermissionProvider permission_provider_; |
52 scoped_ptr<base::MessageLoop> message_loop_; | 53 scoped_ptr<base::MessageLoop> message_loop_; |
53 }; | 54 }; |
54 | 55 |
55 void ExpectDevicesAndThen(const std::set<std::string>& expected_guids, | 56 void ExpectDevicesAndThen(const std::set<std::string>& expected_guids, |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 options->filters[0]->has_vendor_id = true; | 114 options->filters[0]->has_vendor_id = true; |
114 options->filters[0]->vendor_id = 0x1234; | 115 options->filters[0]->vendor_id = 0x1234; |
115 | 116 |
116 std::set<std::string> guids; | 117 std::set<std::string> guids; |
117 guids.insert(device0->guid()); | 118 guids.insert(device0->guid()); |
118 guids.insert(device1->guid()); | 119 guids.insert(device1->guid()); |
119 guids.insert(device2->guid()); | 120 guids.insert(device2->guid()); |
120 | 121 |
121 base::RunLoop loop; | 122 base::RunLoop loop; |
122 device_manager->GetDevices( | 123 device_manager->GetDevices( |
123 options.Pass(), | 124 std::move(options), |
124 base::Bind(&ExpectDevicesAndThen, guids, loop.QuitClosure())); | 125 base::Bind(&ExpectDevicesAndThen, guids, loop.QuitClosure())); |
125 loop.Run(); | 126 loop.Run(); |
126 } | 127 } |
127 | 128 |
128 // Test requesting a single Device by GUID. | 129 // Test requesting a single Device by GUID. |
129 TEST_F(USBDeviceManagerImplTest, GetDevice) { | 130 TEST_F(USBDeviceManagerImplTest, GetDevice) { |
130 scoped_refptr<MockUsbDevice> mock_device = | 131 scoped_refptr<MockUsbDevice> mock_device = |
131 new MockUsbDevice(0x1234, 0x5678, "ACME", "Frobinator", "ABCDEF"); | 132 new MockUsbDevice(0x1234, 0x5678, "ACME", "Frobinator", "ABCDEF"); |
132 | 133 |
133 device_client_.usb_service()->AddDevice(mock_device); | 134 device_client_.usb_service()->AddDevice(mock_device); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 base::RunLoop loop; | 209 base::RunLoop loop; |
209 device_manager->GetDeviceChanges(base::Bind(&ExpectDeviceChangesAndThen, | 210 device_manager->GetDeviceChanges(base::Bind(&ExpectDeviceChangesAndThen, |
210 added_guids, removed_guids, | 211 added_guids, removed_guids, |
211 loop.QuitClosure())); | 212 loop.QuitClosure())); |
212 loop.Run(); | 213 loop.Run(); |
213 } | 214 } |
214 } | 215 } |
215 | 216 |
216 } // namespace usb | 217 } // namespace usb |
217 } // namespace device | 218 } // namespace device |
OLD | NEW |