OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <numeric> | 7 #include <numeric> |
8 | 8 |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "chrome/browser/extensions/extension_apitest.h" | 10 #include "chrome/browser/extensions/extension_apitest.h" |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 // MockDeviceClient replaces ShellDeviceClient. | 137 // MockDeviceClient replaces ShellDeviceClient. |
138 device_client_.reset(new MockDeviceClient()); | 138 device_client_.reset(new MockDeviceClient()); |
139 | 139 |
140 std::vector<UsbConfigDescriptor> configs; | 140 std::vector<UsbConfigDescriptor> configs; |
141 configs.emplace_back(1, false, false, 0); | 141 configs.emplace_back(1, false, false, 0); |
142 configs.emplace_back(2, false, false, 0); | 142 configs.emplace_back(2, false, false, 0); |
143 | 143 |
144 mock_device_ = new MockUsbDevice(0, 0, "Test Manufacturer", "Test Device", | 144 mock_device_ = new MockUsbDevice(0, 0, "Test Manufacturer", "Test Device", |
145 "ABC123", configs); | 145 "ABC123", configs); |
146 mock_device_handle_ = new MockUsbDeviceHandle(mock_device_.get()); | 146 mock_device_handle_ = new MockUsbDeviceHandle(mock_device_.get()); |
147 EXPECT_CALL(*mock_device_.get(), Open(_)) | 147 EXPECT_CALL(*mock_device_, Open(_)) |
148 .WillRepeatedly(InvokeCallback<0>(mock_device_handle_)); | 148 .WillRepeatedly(InvokeCallback<0>(mock_device_handle_)); |
149 device_client_->usb_service()->AddDevice(mock_device_); | 149 device_client_->usb_service()->AddDevice(mock_device_); |
150 } | 150 } |
151 | 151 |
152 protected: | 152 protected: |
153 scoped_refptr<MockUsbDeviceHandle> mock_device_handle_; | 153 scoped_refptr<MockUsbDeviceHandle> mock_device_handle_; |
154 scoped_refptr<MockUsbDevice> mock_device_; | 154 scoped_refptr<MockUsbDevice> mock_device_; |
155 std::unique_ptr<MockDeviceClient> device_client_; | 155 std::unique_ptr<MockDeviceClient> device_client_; |
156 }; | 156 }; |
157 | 157 |
158 } // namespace | 158 } // namespace |
159 | 159 |
160 IN_PROC_BROWSER_TEST_F(UsbApiTest, DeviceHandling) { | 160 IN_PROC_BROWSER_TEST_F(UsbApiTest, DeviceHandling) { |
161 mock_device_->ActiveConfigurationChanged(1); | 161 mock_device_->ActiveConfigurationChanged(1); |
162 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(2); | 162 EXPECT_CALL(*mock_device_handle_, Close()).Times(2); |
163 ASSERT_TRUE(RunAppTest("api_test/usb/device_handling")); | 163 ASSERT_TRUE(RunAppTest("api_test/usb/device_handling")); |
164 } | 164 } |
165 | 165 |
166 IN_PROC_BROWSER_TEST_F(UsbApiTest, ResetDevice) { | 166 IN_PROC_BROWSER_TEST_F(UsbApiTest, ResetDevice) { |
167 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(2); | 167 EXPECT_CALL(*mock_device_handle_, Close()).Times(2); |
168 EXPECT_CALL(*mock_device_handle_.get(), ResetDevice(_)) | 168 EXPECT_CALL(*mock_device_handle_, ResetDevice(_)) |
169 .WillOnce(InvokeCallback<0>(true)) | 169 .WillOnce(InvokeCallback<0>(true)) |
170 .WillOnce(InvokeCallback<0>(false)); | 170 .WillOnce(InvokeCallback<0>(false)); |
171 EXPECT_CALL(*mock_device_handle_.get(), | 171 EXPECT_CALL(*mock_device_handle_, |
172 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 2, _, 1, _, _)) | 172 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 2, _, 1, _, _)) |
173 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); | 173 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); |
174 ASSERT_TRUE(RunAppTest("api_test/usb/reset_device")); | 174 ASSERT_TRUE(RunAppTest("api_test/usb/reset_device")); |
175 } | 175 } |
176 | 176 |
177 IN_PROC_BROWSER_TEST_F(UsbApiTest, SetConfiguration) { | 177 IN_PROC_BROWSER_TEST_F(UsbApiTest, SetConfiguration) { |
178 EXPECT_CALL(*mock_device_handle_.get(), SetConfiguration(1, _)) | 178 EXPECT_CALL(*mock_device_handle_, SetConfiguration(1, _)) |
179 .WillOnce(SetConfiguration(mock_device_.get())); | 179 .WillOnce(SetConfiguration(mock_device_.get())); |
180 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(1); | 180 EXPECT_CALL(*mock_device_handle_, Close()).Times(1); |
181 ASSERT_TRUE(RunAppTest("api_test/usb/set_configuration")); | 181 ASSERT_TRUE(RunAppTest("api_test/usb/set_configuration")); |
182 } | 182 } |
183 | 183 |
184 IN_PROC_BROWSER_TEST_F(UsbApiTest, ListInterfaces) { | 184 IN_PROC_BROWSER_TEST_F(UsbApiTest, ListInterfaces) { |
185 mock_device_->ActiveConfigurationChanged(1); | 185 mock_device_->ActiveConfigurationChanged(1); |
186 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(1); | 186 EXPECT_CALL(*mock_device_handle_, Close()).Times(1); |
187 ASSERT_TRUE(RunAppTest("api_test/usb/list_interfaces")); | 187 ASSERT_TRUE(RunAppTest("api_test/usb/list_interfaces")); |
188 } | 188 } |
189 | 189 |
190 IN_PROC_BROWSER_TEST_F(UsbApiTest, TransferEvent) { | 190 IN_PROC_BROWSER_TEST_F(UsbApiTest, TransferEvent) { |
191 EXPECT_CALL(*mock_device_handle_.get(), | 191 EXPECT_CALL( |
192 ControlTransfer(device::USB_DIRECTION_OUTBOUND, | 192 *mock_device_handle_, |
193 UsbDeviceHandle::STANDARD, | 193 ControlTransfer(device::USB_DIRECTION_OUTBOUND, UsbDeviceHandle::STANDARD, |
194 UsbDeviceHandle::DEVICE, | 194 UsbDeviceHandle::DEVICE, 1, 2, 3, _, 1, _, _)) |
195 1, | |
196 2, | |
197 3, | |
198 _, | |
199 1, | |
200 _, | |
201 _)) | |
202 .WillOnce(InvokeUsbTransferCallback<9>(device::USB_TRANSFER_COMPLETED)); | 195 .WillOnce(InvokeUsbTransferCallback<9>(device::USB_TRANSFER_COMPLETED)); |
203 EXPECT_CALL(*mock_device_handle_.get(), | 196 EXPECT_CALL(*mock_device_handle_, |
204 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 1, _, 1, _, _)) | 197 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 1, _, 1, _, _)) |
205 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); | 198 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); |
206 EXPECT_CALL(*mock_device_handle_.get(), | 199 EXPECT_CALL(*mock_device_handle_, |
207 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 2, _, 1, _, _)) | 200 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 2, _, 1, _, _)) |
208 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); | 201 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); |
209 EXPECT_CALL(*mock_device_handle_.get(), IsochronousTransferOut(3, _, _, _, _)) | 202 EXPECT_CALL(*mock_device_handle_, IsochronousTransferOut(3, _, _, _, _)) |
210 .WillOnce(InvokeUsbIsochronousTransferOutCallback(1, 1u)); | 203 .WillOnce(InvokeUsbIsochronousTransferOutCallback(1, 1u)); |
211 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); | 204 EXPECT_CALL(*mock_device_handle_, Close()).Times(AnyNumber()); |
212 ASSERT_TRUE(RunAppTest("api_test/usb/transfer_event")); | 205 ASSERT_TRUE(RunAppTest("api_test/usb/transfer_event")); |
213 } | 206 } |
214 | 207 |
215 IN_PROC_BROWSER_TEST_F(UsbApiTest, ZeroLengthTransfer) { | 208 IN_PROC_BROWSER_TEST_F(UsbApiTest, ZeroLengthTransfer) { |
216 EXPECT_CALL(*mock_device_handle_.get(), GenericTransfer(_, _, _, 0, _, _)) | 209 EXPECT_CALL(*mock_device_handle_, GenericTransfer(_, _, _, 0, _, _)) |
217 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); | 210 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); |
218 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); | 211 EXPECT_CALL(*mock_device_handle_, Close()).Times(AnyNumber()); |
219 ASSERT_TRUE(RunAppTest("api_test/usb/zero_length_transfer")); | 212 ASSERT_TRUE(RunAppTest("api_test/usb/zero_length_transfer")); |
220 } | 213 } |
221 | 214 |
222 IN_PROC_BROWSER_TEST_F(UsbApiTest, TransferFailure) { | 215 IN_PROC_BROWSER_TEST_F(UsbApiTest, TransferFailure) { |
223 EXPECT_CALL(*mock_device_handle_.get(), | 216 EXPECT_CALL(*mock_device_handle_, |
224 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 1, _, _, _, _)) | 217 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 1, _, _, _, _)) |
225 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)) | 218 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)) |
226 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_ERROR)) | 219 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_ERROR)) |
227 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_TIMEOUT)); | 220 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_TIMEOUT)); |
228 EXPECT_CALL(*mock_device_handle_.get(), IsochronousTransferIn(2, _, _, _)) | 221 EXPECT_CALL(*mock_device_handle_, IsochronousTransferIn(2, _, _, _)) |
229 .WillOnce(InvokeUsbIsochronousTransferInCallback(8, 10u)) | 222 .WillOnce(InvokeUsbIsochronousTransferInCallback(8, 10u)) |
230 .WillOnce(InvokeUsbIsochronousTransferInCallback(8, 5u)); | 223 .WillOnce(InvokeUsbIsochronousTransferInCallback(8, 5u)); |
231 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); | 224 EXPECT_CALL(*mock_device_handle_, Close()).Times(AnyNumber()); |
232 ASSERT_TRUE(RunAppTest("api_test/usb/transfer_failure")); | 225 ASSERT_TRUE(RunAppTest("api_test/usb/transfer_failure")); |
233 } | 226 } |
234 | 227 |
235 IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidLengthTransfer) { | 228 IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidLengthTransfer) { |
236 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); | 229 EXPECT_CALL(*mock_device_handle_, Close()).Times(AnyNumber()); |
237 ASSERT_TRUE(RunAppTest("api_test/usb/invalid_length_transfer")); | 230 ASSERT_TRUE(RunAppTest("api_test/usb/invalid_length_transfer")); |
238 } | 231 } |
239 | 232 |
240 IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidTimeout) { | 233 IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidTimeout) { |
241 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); | 234 EXPECT_CALL(*mock_device_handle_, Close()).Times(AnyNumber()); |
242 ASSERT_TRUE(RunAppTest("api_test/usb/invalid_timeout")); | 235 ASSERT_TRUE(RunAppTest("api_test/usb/invalid_timeout")); |
243 } | 236 } |
244 | 237 |
245 IN_PROC_BROWSER_TEST_F(UsbApiTest, OnDeviceAdded) { | 238 IN_PROC_BROWSER_TEST_F(UsbApiTest, OnDeviceAdded) { |
246 ExtensionTestMessageListener load_listener("loaded", false); | 239 ExtensionTestMessageListener load_listener("loaded", false); |
247 ExtensionTestMessageListener result_listener("success", false); | 240 ExtensionTestMessageListener result_listener("success", false); |
248 result_listener.set_failure_message("failure"); | 241 result_listener.set_failure_message("failure"); |
249 | 242 |
250 ASSERT_TRUE(LoadApp("api_test/usb/add_event")); | 243 ASSERT_TRUE(LoadApp("api_test/usb/add_event")); |
251 ASSERT_TRUE(load_listener.WaitUntilSatisfied()); | 244 ASSERT_TRUE(load_listener.WaitUntilSatisfied()); |
(...skipping 17 matching lines...) Expand all Loading... |
269 | 262 |
270 device_client_->usb_service()->RemoveDevice(mock_device_); | 263 device_client_->usb_service()->RemoveDevice(mock_device_); |
271 ASSERT_TRUE(result_listener.WaitUntilSatisfied()); | 264 ASSERT_TRUE(result_listener.WaitUntilSatisfied()); |
272 } | 265 } |
273 | 266 |
274 IN_PROC_BROWSER_TEST_F(UsbApiTest, GetUserSelectedDevices) { | 267 IN_PROC_BROWSER_TEST_F(UsbApiTest, GetUserSelectedDevices) { |
275 ExtensionTestMessageListener ready_listener("opened_device", false); | 268 ExtensionTestMessageListener ready_listener("opened_device", false); |
276 ExtensionTestMessageListener result_listener("success", false); | 269 ExtensionTestMessageListener result_listener("success", false); |
277 result_listener.set_failure_message("failure"); | 270 result_listener.set_failure_message("failure"); |
278 | 271 |
279 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(1); | 272 EXPECT_CALL(*mock_device_handle_, Close()).Times(1); |
280 | 273 |
281 TestExtensionsAPIClient test_api_client; | 274 TestExtensionsAPIClient test_api_client; |
282 ASSERT_TRUE(LoadApp("api_test/usb/get_user_selected_devices")); | 275 ASSERT_TRUE(LoadApp("api_test/usb/get_user_selected_devices")); |
283 ASSERT_TRUE(ready_listener.WaitUntilSatisfied()); | 276 ASSERT_TRUE(ready_listener.WaitUntilSatisfied()); |
284 | 277 |
285 device_client_->usb_service()->RemoveDevice(mock_device_); | 278 device_client_->usb_service()->RemoveDevice(mock_device_); |
286 ASSERT_TRUE(result_listener.WaitUntilSatisfied()); | 279 ASSERT_TRUE(result_listener.WaitUntilSatisfied()); |
287 } | 280 } |
288 | 281 |
289 } // namespace extensions | 282 } // namespace extensions |
OLD | NEW |