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/usb/usb_descriptors.h" | 5 #include "device/usb/usb_descriptors.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
11 #include "base/bind.h" | 11 #include "base/bind.h" |
12 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
13 #include "device/usb/mock_usb_device_handle.h" | 13 #include "device/usb/mock_usb_device_handle.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
15 | 15 |
16 using testing::_; | 16 using testing::_; |
17 | 17 |
18 namespace device { | 18 namespace device { |
19 | 19 |
20 namespace { | 20 namespace { |
21 | 21 |
22 ACTION_P2(InvokeCallback, data, length) { | 22 ACTION_P2(InvokeCallback, data, length) { |
23 size_t transferred_length = std::min(length, arg7); | 23 size_t transferred_length = std::min(length, arg7); |
24 memcpy(arg6->data(), data, transferred_length); | 24 memcpy(arg6->data(), data, transferred_length); |
25 arg9.Run(USB_TRANSFER_COMPLETED, arg6, transferred_length); | 25 arg9.Run(UsbTransferStatus::COMPLETED, arg6, transferred_length); |
26 } | 26 } |
27 | 27 |
28 void ExpectStringDescriptors( | 28 void ExpectStringDescriptors( |
29 std::unique_ptr<std::map<uint8_t, base::string16>> string_map) { | 29 std::unique_ptr<std::map<uint8_t, base::string16>> string_map) { |
30 EXPECT_EQ(3u, string_map->size()); | 30 EXPECT_EQ(3u, string_map->size()); |
31 EXPECT_EQ(base::ASCIIToUTF16("String 1"), (*string_map)[1]); | 31 EXPECT_EQ(base::ASCIIToUTF16("String 1"), (*string_map)[1]); |
32 EXPECT_EQ(base::ASCIIToUTF16("String 2"), (*string_map)[2]); | 32 EXPECT_EQ(base::ASCIIToUTF16("String 2"), (*string_map)[2]); |
33 EXPECT_EQ(base::ASCIIToUTF16("String 3"), (*string_map)[3]); | 33 EXPECT_EQ(base::ASCIIToUTF16("String 3"), (*string_map)[3]); |
34 } | 34 } |
35 | 35 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 EXPECT_EQ(0, config.interfaces[0].interface_number); | 79 EXPECT_EQ(0, config.interfaces[0].interface_number); |
80 EXPECT_EQ(0, config.interfaces[0].alternate_setting); | 80 EXPECT_EQ(0, config.interfaces[0].alternate_setting); |
81 EXPECT_EQ(0x12, config.interfaces[0].interface_class); | 81 EXPECT_EQ(0x12, config.interfaces[0].interface_class); |
82 EXPECT_EQ(0x34, config.interfaces[0].interface_subclass); | 82 EXPECT_EQ(0x34, config.interfaces[0].interface_subclass); |
83 EXPECT_EQ(0x56, config.interfaces[0].interface_protocol); | 83 EXPECT_EQ(0x56, config.interfaces[0].interface_protocol); |
84 ASSERT_EQ(3u, config.interfaces[0].endpoints.size()); | 84 ASSERT_EQ(3u, config.interfaces[0].endpoints.size()); |
85 EXPECT_EQ(0u, config.interfaces[0].extra_data.size()); | 85 EXPECT_EQ(0u, config.interfaces[0].extra_data.size()); |
86 EXPECT_EQ(0, config.interfaces[0].first_interface); | 86 EXPECT_EQ(0, config.interfaces[0].first_interface); |
87 // Endpoint 1 IN | 87 // Endpoint 1 IN |
88 EXPECT_EQ(0x81, config.interfaces[0].endpoints[0].address); | 88 EXPECT_EQ(0x81, config.interfaces[0].endpoints[0].address); |
89 EXPECT_EQ(USB_DIRECTION_INBOUND, config.interfaces[0].endpoints[0].direction); | 89 EXPECT_EQ(UsbTransferDirection::INBOUND, |
| 90 config.interfaces[0].endpoints[0].direction); |
90 EXPECT_EQ(512, config.interfaces[0].endpoints[0].maximum_packet_size); | 91 EXPECT_EQ(512, config.interfaces[0].endpoints[0].maximum_packet_size); |
91 EXPECT_EQ(USB_SYNCHRONIZATION_NONE, | 92 EXPECT_EQ(USB_SYNCHRONIZATION_NONE, |
92 config.interfaces[0].endpoints[0].synchronization_type); | 93 config.interfaces[0].endpoints[0].synchronization_type); |
93 EXPECT_EQ(USB_TRANSFER_BULK, config.interfaces[0].endpoints[0].transfer_type); | 94 EXPECT_EQ(UsbTransferType::BULK, |
| 95 config.interfaces[0].endpoints[0].transfer_type); |
94 EXPECT_EQ(USB_USAGE_RESERVED, config.interfaces[0].endpoints[0].usage_type); | 96 EXPECT_EQ(USB_USAGE_RESERVED, config.interfaces[0].endpoints[0].usage_type); |
95 EXPECT_EQ(0, config.interfaces[0].endpoints[0].polling_interval); | 97 EXPECT_EQ(0, config.interfaces[0].endpoints[0].polling_interval); |
96 EXPECT_EQ(0u, config.interfaces[0].endpoints[0].extra_data.size()); | 98 EXPECT_EQ(0u, config.interfaces[0].endpoints[0].extra_data.size()); |
97 // Endpoint 2 IN | 99 // Endpoint 2 IN |
98 EXPECT_EQ(0x82, config.interfaces[0].endpoints[1].address); | 100 EXPECT_EQ(0x82, config.interfaces[0].endpoints[1].address); |
99 EXPECT_EQ(USB_DIRECTION_INBOUND, config.interfaces[0].endpoints[1].direction); | 101 EXPECT_EQ(UsbTransferDirection::INBOUND, |
| 102 config.interfaces[0].endpoints[1].direction); |
100 EXPECT_EQ(512, config.interfaces[0].endpoints[1].maximum_packet_size); | 103 EXPECT_EQ(512, config.interfaces[0].endpoints[1].maximum_packet_size); |
101 EXPECT_EQ(USB_SYNCHRONIZATION_NONE, | 104 EXPECT_EQ(USB_SYNCHRONIZATION_NONE, |
102 config.interfaces[0].endpoints[1].synchronization_type); | 105 config.interfaces[0].endpoints[1].synchronization_type); |
103 EXPECT_EQ(USB_TRANSFER_INTERRUPT, | 106 EXPECT_EQ(UsbTransferType::INTERRUPT, |
104 config.interfaces[0].endpoints[1].transfer_type); | 107 config.interfaces[0].endpoints[1].transfer_type); |
105 EXPECT_EQ(USB_USAGE_PERIODIC, config.interfaces[0].endpoints[1].usage_type); | 108 EXPECT_EQ(USB_USAGE_PERIODIC, config.interfaces[0].endpoints[1].usage_type); |
106 EXPECT_EQ(4, config.interfaces[0].endpoints[1].polling_interval); | 109 EXPECT_EQ(4, config.interfaces[0].endpoints[1].polling_interval); |
107 EXPECT_EQ(0u, config.interfaces[0].endpoints[1].extra_data.size()); | 110 EXPECT_EQ(0u, config.interfaces[0].endpoints[1].extra_data.size()); |
108 // Endpoint 3 OUT | 111 // Endpoint 3 OUT |
109 EXPECT_EQ(0x03, config.interfaces[0].endpoints[2].address); | 112 EXPECT_EQ(0x03, config.interfaces[0].endpoints[2].address); |
110 EXPECT_EQ(USB_DIRECTION_OUTBOUND, | 113 EXPECT_EQ(UsbTransferDirection::OUTBOUND, |
111 config.interfaces[0].endpoints[2].direction); | 114 config.interfaces[0].endpoints[2].direction); |
112 EXPECT_EQ(512, config.interfaces[0].endpoints[2].maximum_packet_size); | 115 EXPECT_EQ(512, config.interfaces[0].endpoints[2].maximum_packet_size); |
113 EXPECT_EQ(USB_SYNCHRONIZATION_NONE, | 116 EXPECT_EQ(USB_SYNCHRONIZATION_NONE, |
114 config.interfaces[0].endpoints[2].synchronization_type); | 117 config.interfaces[0].endpoints[2].synchronization_type); |
115 EXPECT_EQ(USB_TRANSFER_INTERRUPT, | 118 EXPECT_EQ(UsbTransferType::INTERRUPT, |
116 config.interfaces[0].endpoints[2].transfer_type); | 119 config.interfaces[0].endpoints[2].transfer_type); |
117 EXPECT_EQ(USB_USAGE_NOTIFICATION, | 120 EXPECT_EQ(USB_USAGE_NOTIFICATION, |
118 config.interfaces[0].endpoints[2].usage_type); | 121 config.interfaces[0].endpoints[2].usage_type); |
119 EXPECT_EQ(4, config.interfaces[0].endpoints[2].polling_interval); | 122 EXPECT_EQ(4, config.interfaces[0].endpoints[2].polling_interval); |
120 EXPECT_EQ(0u, config.interfaces[0].endpoints[2].extra_data.size()); | 123 EXPECT_EQ(0u, config.interfaces[0].endpoints[2].extra_data.size()); |
121 // Interface 1 | 124 // Interface 1 |
122 EXPECT_EQ(1, config.interfaces[1].interface_number); | 125 EXPECT_EQ(1, config.interfaces[1].interface_number); |
123 EXPECT_EQ(0, config.interfaces[1].alternate_setting); | 126 EXPECT_EQ(0, config.interfaces[1].alternate_setting); |
124 EXPECT_EQ(0x78, config.interfaces[1].interface_class); | 127 EXPECT_EQ(0x78, config.interfaces[1].interface_class); |
125 EXPECT_EQ(0x9A, config.interfaces[1].interface_subclass); | 128 EXPECT_EQ(0x9A, config.interfaces[1].interface_subclass); |
(...skipping 24 matching lines...) Expand all Loading... |
150 EXPECT_EQ(0, config.interfaces[1].interface_number); | 153 EXPECT_EQ(0, config.interfaces[1].interface_number); |
151 EXPECT_EQ(1, config.interfaces[1].alternate_setting); | 154 EXPECT_EQ(1, config.interfaces[1].alternate_setting); |
152 EXPECT_EQ(0xCD, config.interfaces[1].interface_class); | 155 EXPECT_EQ(0xCD, config.interfaces[1].interface_class); |
153 EXPECT_EQ(0xEF, config.interfaces[1].interface_subclass); | 156 EXPECT_EQ(0xEF, config.interfaces[1].interface_subclass); |
154 EXPECT_EQ(0x01, config.interfaces[1].interface_protocol); | 157 EXPECT_EQ(0x01, config.interfaces[1].interface_protocol); |
155 ASSERT_EQ(2u, config.interfaces[1].endpoints.size()); | 158 ASSERT_EQ(2u, config.interfaces[1].endpoints.size()); |
156 EXPECT_EQ(0u, config.interfaces[1].extra_data.size()); | 159 EXPECT_EQ(0u, config.interfaces[1].extra_data.size()); |
157 EXPECT_EQ(0, config.interfaces[1].first_interface); | 160 EXPECT_EQ(0, config.interfaces[1].first_interface); |
158 // Endpoint 1 IN | 161 // Endpoint 1 IN |
159 EXPECT_EQ(0x81, config.interfaces[1].endpoints[0].address); | 162 EXPECT_EQ(0x81, config.interfaces[1].endpoints[0].address); |
160 EXPECT_EQ(USB_DIRECTION_INBOUND, config.interfaces[1].endpoints[0].direction); | 163 EXPECT_EQ(UsbTransferDirection::INBOUND, |
| 164 config.interfaces[1].endpoints[0].direction); |
161 EXPECT_EQ(1024, config.interfaces[1].endpoints[0].maximum_packet_size); | 165 EXPECT_EQ(1024, config.interfaces[1].endpoints[0].maximum_packet_size); |
162 EXPECT_EQ(USB_SYNCHRONIZATION_NONE, | 166 EXPECT_EQ(USB_SYNCHRONIZATION_NONE, |
163 config.interfaces[1].endpoints[0].synchronization_type); | 167 config.interfaces[1].endpoints[0].synchronization_type); |
164 EXPECT_EQ(USB_TRANSFER_ISOCHRONOUS, | 168 EXPECT_EQ(UsbTransferType::ISOCHRONOUS, |
165 config.interfaces[1].endpoints[0].transfer_type); | 169 config.interfaces[1].endpoints[0].transfer_type); |
166 EXPECT_EQ(USB_USAGE_DATA, config.interfaces[1].endpoints[0].usage_type); | 170 EXPECT_EQ(USB_USAGE_DATA, config.interfaces[1].endpoints[0].usage_type); |
167 EXPECT_EQ(8, config.interfaces[1].endpoints[0].polling_interval); | 171 EXPECT_EQ(8, config.interfaces[1].endpoints[0].polling_interval); |
168 EXPECT_EQ(0u, config.interfaces[1].endpoints[0].extra_data.size()); | 172 EXPECT_EQ(0u, config.interfaces[1].endpoints[0].extra_data.size()); |
169 // Endpoint 2 OUT | 173 // Endpoint 2 OUT |
170 EXPECT_EQ(0x02, config.interfaces[1].endpoints[1].address); | 174 EXPECT_EQ(0x02, config.interfaces[1].endpoints[1].address); |
171 EXPECT_EQ(USB_DIRECTION_OUTBOUND, | 175 EXPECT_EQ(UsbTransferDirection::OUTBOUND, |
172 config.interfaces[1].endpoints[1].direction); | 176 config.interfaces[1].endpoints[1].direction); |
173 EXPECT_EQ(1024, config.interfaces[1].endpoints[1].maximum_packet_size); | 177 EXPECT_EQ(1024, config.interfaces[1].endpoints[1].maximum_packet_size); |
174 EXPECT_EQ(USB_SYNCHRONIZATION_NONE, | 178 EXPECT_EQ(USB_SYNCHRONIZATION_NONE, |
175 config.interfaces[1].endpoints[1].synchronization_type); | 179 config.interfaces[1].endpoints[1].synchronization_type); |
176 EXPECT_EQ(USB_TRANSFER_ISOCHRONOUS, | 180 EXPECT_EQ(UsbTransferType::ISOCHRONOUS, |
177 config.interfaces[1].endpoints[1].transfer_type); | 181 config.interfaces[1].endpoints[1].transfer_type); |
178 EXPECT_EQ(USB_USAGE_FEEDBACK, config.interfaces[1].endpoints[1].usage_type); | 182 EXPECT_EQ(USB_USAGE_FEEDBACK, config.interfaces[1].endpoints[1].usage_type); |
179 EXPECT_EQ(8, config.interfaces[1].endpoints[1].polling_interval); | 183 EXPECT_EQ(8, config.interfaces[1].endpoints[1].polling_interval); |
180 EXPECT_EQ(0u, config.interfaces[1].endpoints[1].extra_data.size()); | 184 EXPECT_EQ(0u, config.interfaces[1].endpoints[1].extra_data.size()); |
181 } | 185 } |
182 | 186 |
183 void ExpectDeviceDescriptor(const UsbDeviceDescriptor& descriptor) { | 187 void ExpectDeviceDescriptor(const UsbDeviceDescriptor& descriptor) { |
184 // Device | 188 // Device |
185 EXPECT_EQ(0x0310, descriptor.usb_version); | 189 EXPECT_EQ(0x0310, descriptor.usb_version); |
186 EXPECT_EQ(0xFF, descriptor.device_class); | 190 EXPECT_EQ(0xFF, descriptor.device_class); |
(...skipping 25 matching lines...) Expand all Loading... |
212 | 216 |
213 UsbDeviceDescriptor descriptor; | 217 UsbDeviceDescriptor descriptor; |
214 ASSERT_TRUE(descriptor.Parse(buffer)); | 218 ASSERT_TRUE(descriptor.Parse(buffer)); |
215 ExpectDeviceDescriptor(descriptor); | 219 ExpectDeviceDescriptor(descriptor); |
216 } | 220 } |
217 | 221 |
218 TEST_F(UsbDescriptorsTest, ReadDescriptors) { | 222 TEST_F(UsbDescriptorsTest, ReadDescriptors) { |
219 scoped_refptr<MockUsbDeviceHandle> device_handle( | 223 scoped_refptr<MockUsbDeviceHandle> device_handle( |
220 new MockUsbDeviceHandle(nullptr)); | 224 new MockUsbDeviceHandle(nullptr)); |
221 EXPECT_CALL(*device_handle, | 225 EXPECT_CALL(*device_handle, |
222 ControlTransfer(USB_DIRECTION_INBOUND, UsbDeviceHandle::STANDARD, | 226 ControlTransfer(UsbTransferDirection::INBOUND, |
223 UsbDeviceHandle::DEVICE, 0x06, 0x0100, 0x0000, _, | 227 UsbControlTransferType::STANDARD, |
224 _, _, _)) | 228 UsbControlTransferRecipient::DEVICE, 0x06, 0x0100, |
| 229 0x0000, _, _, _, _)) |
225 .WillOnce(InvokeCallback(kDeviceDescriptor, sizeof(kDeviceDescriptor))); | 230 .WillOnce(InvokeCallback(kDeviceDescriptor, sizeof(kDeviceDescriptor))); |
226 EXPECT_CALL(*device_handle, | 231 EXPECT_CALL(*device_handle, |
227 ControlTransfer(USB_DIRECTION_INBOUND, UsbDeviceHandle::STANDARD, | 232 ControlTransfer(UsbTransferDirection::INBOUND, |
228 UsbDeviceHandle::DEVICE, 0x06, 0x0200, 0x0000, _, | 233 UsbControlTransferType::STANDARD, |
229 _, _, _)) | 234 UsbControlTransferRecipient::DEVICE, 0x06, 0x0200, |
| 235 0x0000, _, _, _, _)) |
230 .Times(2) | 236 .Times(2) |
231 .WillRepeatedly( | 237 .WillRepeatedly( |
232 InvokeCallback(kConfig1Descriptor, sizeof(kConfig1Descriptor))); | 238 InvokeCallback(kConfig1Descriptor, sizeof(kConfig1Descriptor))); |
233 EXPECT_CALL(*device_handle, | 239 EXPECT_CALL(*device_handle, |
234 ControlTransfer(USB_DIRECTION_INBOUND, UsbDeviceHandle::STANDARD, | 240 ControlTransfer(UsbTransferDirection::INBOUND, |
235 UsbDeviceHandle::DEVICE, 0x06, 0x0201, 0x0000, _, | 241 UsbControlTransferType::STANDARD, |
236 _, _, _)) | 242 UsbControlTransferRecipient::DEVICE, 0x06, 0x0201, |
| 243 0x0000, _, _, _, _)) |
237 .Times(2) | 244 .Times(2) |
238 .WillRepeatedly( | 245 .WillRepeatedly( |
239 InvokeCallback(kConfig2Descriptor, sizeof(kConfig2Descriptor))); | 246 InvokeCallback(kConfig2Descriptor, sizeof(kConfig2Descriptor))); |
240 | 247 |
241 ReadUsbDescriptors(device_handle, base::Bind(&OnReadDescriptors)); | 248 ReadUsbDescriptors(device_handle, base::Bind(&OnReadDescriptors)); |
242 } | 249 } |
243 | 250 |
244 TEST_F(UsbDescriptorsTest, NoInterfaceAssociations) { | 251 TEST_F(UsbDescriptorsTest, NoInterfaceAssociations) { |
245 UsbConfigDescriptor config(1, false, false, 0); | 252 UsbConfigDescriptor config(1, false, false, 0); |
246 config.interfaces.emplace_back(0, 0, 255, 255, 255); | 253 config.interfaces.emplace_back(0, 0, 255, 255, 255); |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 std::unique_ptr<std::map<uint8_t, base::string16>> string_map( | 400 std::unique_ptr<std::map<uint8_t, base::string16>> string_map( |
394 new std::map<uint8_t, base::string16>()); | 401 new std::map<uint8_t, base::string16>()); |
395 (*string_map)[1] = base::string16(); | 402 (*string_map)[1] = base::string16(); |
396 (*string_map)[2] = base::string16(); | 403 (*string_map)[2] = base::string16(); |
397 (*string_map)[3] = base::string16(); | 404 (*string_map)[3] = base::string16(); |
398 | 405 |
399 scoped_refptr<MockUsbDeviceHandle> device_handle( | 406 scoped_refptr<MockUsbDeviceHandle> device_handle( |
400 new MockUsbDeviceHandle(nullptr)); | 407 new MockUsbDeviceHandle(nullptr)); |
401 static const uint8_t kStringDescriptor0[] = {0x04, 0x03, 0x21, 0x43}; | 408 static const uint8_t kStringDescriptor0[] = {0x04, 0x03, 0x21, 0x43}; |
402 EXPECT_CALL(*device_handle, | 409 EXPECT_CALL(*device_handle, |
403 ControlTransfer(USB_DIRECTION_INBOUND, UsbDeviceHandle::STANDARD, | 410 ControlTransfer(UsbTransferDirection::INBOUND, |
404 UsbDeviceHandle::DEVICE, 0x06, 0x0300, 0x0000, _, | 411 UsbControlTransferType::STANDARD, |
405 _, _, _)) | 412 UsbControlTransferRecipient::DEVICE, 0x06, 0x0300, |
| 413 0x0000, _, _, _, _)) |
406 .WillOnce(InvokeCallback(kStringDescriptor0, sizeof(kStringDescriptor0))); | 414 .WillOnce(InvokeCallback(kStringDescriptor0, sizeof(kStringDescriptor0))); |
407 static const uint8_t kStringDescriptor1[] = {0x12, 0x03, 'S', 0, 't', 0, | 415 static const uint8_t kStringDescriptor1[] = {0x12, 0x03, 'S', 0, 't', 0, |
408 'r', 0, 'i', 0, 'n', 0, | 416 'r', 0, 'i', 0, 'n', 0, |
409 'g', 0, ' ', 0, '1', 0}; | 417 'g', 0, ' ', 0, '1', 0}; |
410 EXPECT_CALL(*device_handle, | 418 EXPECT_CALL(*device_handle, |
411 ControlTransfer(USB_DIRECTION_INBOUND, UsbDeviceHandle::STANDARD, | 419 ControlTransfer(UsbTransferDirection::INBOUND, |
412 UsbDeviceHandle::DEVICE, 0x06, 0x0301, 0x4321, _, | 420 UsbControlTransferType::STANDARD, |
413 _, _, _)) | 421 UsbControlTransferRecipient::DEVICE, 0x06, 0x0301, |
| 422 0x4321, _, _, _, _)) |
414 .WillOnce(InvokeCallback(kStringDescriptor1, sizeof(kStringDescriptor1))); | 423 .WillOnce(InvokeCallback(kStringDescriptor1, sizeof(kStringDescriptor1))); |
415 static const uint8_t kStringDescriptor2[] = {0x12, 0x03, 'S', 0, 't', 0, | 424 static const uint8_t kStringDescriptor2[] = {0x12, 0x03, 'S', 0, 't', 0, |
416 'r', 0, 'i', 0, 'n', 0, | 425 'r', 0, 'i', 0, 'n', 0, |
417 'g', 0, ' ', 0, '2', 0}; | 426 'g', 0, ' ', 0, '2', 0}; |
418 EXPECT_CALL(*device_handle, | 427 EXPECT_CALL(*device_handle, |
419 ControlTransfer(USB_DIRECTION_INBOUND, UsbDeviceHandle::STANDARD, | 428 ControlTransfer(UsbTransferDirection::INBOUND, |
420 UsbDeviceHandle::DEVICE, 0x06, 0x0302, 0x4321, _, | 429 UsbControlTransferType::STANDARD, |
421 _, _, _)) | 430 UsbControlTransferRecipient::DEVICE, 0x06, 0x0302, |
| 431 0x4321, _, _, _, _)) |
422 .WillOnce(InvokeCallback(kStringDescriptor2, sizeof(kStringDescriptor2))); | 432 .WillOnce(InvokeCallback(kStringDescriptor2, sizeof(kStringDescriptor2))); |
423 static const uint8_t kStringDescriptor3[] = {0x12, 0x03, 'S', 0, 't', 0, | 433 static const uint8_t kStringDescriptor3[] = {0x12, 0x03, 'S', 0, 't', 0, |
424 'r', 0, 'i', 0, 'n', 0, | 434 'r', 0, 'i', 0, 'n', 0, |
425 'g', 0, ' ', 0, '3', 0}; | 435 'g', 0, ' ', 0, '3', 0}; |
426 EXPECT_CALL(*device_handle, | 436 EXPECT_CALL(*device_handle, |
427 ControlTransfer(USB_DIRECTION_INBOUND, UsbDeviceHandle::STANDARD, | 437 ControlTransfer(UsbTransferDirection::INBOUND, |
428 UsbDeviceHandle::DEVICE, 0x06, 0x0303, 0x4321, _, | 438 UsbControlTransferType::STANDARD, |
429 _, _, _)) | 439 UsbControlTransferRecipient::DEVICE, 0x06, 0x0303, |
| 440 0x4321, _, _, _, _)) |
430 .WillOnce(InvokeCallback(kStringDescriptor3, sizeof(kStringDescriptor3))); | 441 .WillOnce(InvokeCallback(kStringDescriptor3, sizeof(kStringDescriptor3))); |
431 | 442 |
432 ReadUsbStringDescriptors(device_handle, std::move(string_map), | 443 ReadUsbStringDescriptors(device_handle, std::move(string_map), |
433 base::Bind(&ExpectStringDescriptors)); | 444 base::Bind(&ExpectStringDescriptors)); |
434 } | 445 } |
435 | 446 |
436 } // namespace | 447 } // namespace |
437 | 448 |
438 } // namespace device | 449 } // namespace device |
OLD | NEW |