| 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 "chrome/browser/extensions/extension_apitest.h" | 7 #include "chrome/browser/extensions/extension_apitest.h" |
| 8 #include "content/public/browser/browser_thread.h" | 8 #include "content/public/browser/browser_thread.h" |
| 9 #include "content/public/test/test_utils.h" | 9 #include "content/public/test/test_utils.h" |
| 10 #include "device/core/mock_device_client.h" | 10 #include "device/core/mock_device_client.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 } | 41 } |
| 42 | 42 |
| 43 ACTION_TEMPLATE(InvokeUsbTransferCallback, | 43 ACTION_TEMPLATE(InvokeUsbTransferCallback, |
| 44 HAS_1_TEMPLATE_PARAMS(int, k), | 44 HAS_1_TEMPLATE_PARAMS(int, k), |
| 45 AND_1_VALUE_PARAMS(p1)) { | 45 AND_1_VALUE_PARAMS(p1)) { |
| 46 net::IOBuffer* io_buffer = new net::IOBuffer(1); | 46 net::IOBuffer* io_buffer = new net::IOBuffer(1); |
| 47 memset(io_buffer->data(), 0, 1); // Avoid uninitialized reads. | 47 memset(io_buffer->data(), 0, 1); // Avoid uninitialized reads. |
| 48 ::std::tr1::get<k>(args).Run(p1, io_buffer, 1); | 48 ::std::tr1::get<k>(args).Run(p1, io_buffer, 1); |
| 49 } | 49 } |
| 50 | 50 |
| 51 ACTION_TEMPLATE(InvokeUsbIsochronousTransferCallback, |
| 52 HAS_1_TEMPLATE_PARAMS(int, k), |
| 53 AND_1_VALUE_PARAMS(p1)) { |
| 54 net::IOBuffer* io_buffer = new net::IOBuffer(1); |
| 55 memset(io_buffer->data(), 0, 1); // Avoid uninitialized reads. |
| 56 std::vector<UsbDeviceHandle::IsochronousPacket> packets(1); |
| 57 packets[0].length = 1; |
| 58 packets[0].transferred_length = 1; |
| 59 packets[0].status = p1; |
| 60 ::std::tr1::get<k>(args).Run(io_buffer, packets); |
| 61 } |
| 62 |
| 51 class TestDevicePermissionsPrompt | 63 class TestDevicePermissionsPrompt |
| 52 : public DevicePermissionsPrompt, | 64 : public DevicePermissionsPrompt, |
| 53 public DevicePermissionsPrompt::Prompt::Observer { | 65 public DevicePermissionsPrompt::Prompt::Observer { |
| 54 public: | 66 public: |
| 55 explicit TestDevicePermissionsPrompt(content::WebContents* web_contents) | 67 explicit TestDevicePermissionsPrompt(content::WebContents* web_contents) |
| 56 : DevicePermissionsPrompt(web_contents) {} | 68 : DevicePermissionsPrompt(web_contents) {} |
| 57 | 69 |
| 58 void ShowDialog() override { prompt()->SetObserver(this); } | 70 void ShowDialog() override { prompt()->SetObserver(this); } |
| 59 | 71 |
| 60 void OnDevicesChanged() override { | 72 void OnDevicesChanged() override { |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 1, | 170 1, |
| 159 _, | 171 _, |
| 160 _)) | 172 _)) |
| 161 .WillOnce(InvokeUsbTransferCallback<9>(device::USB_TRANSFER_COMPLETED)); | 173 .WillOnce(InvokeUsbTransferCallback<9>(device::USB_TRANSFER_COMPLETED)); |
| 162 EXPECT_CALL(*mock_device_handle_.get(), | 174 EXPECT_CALL(*mock_device_handle_.get(), |
| 163 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 1, _, 1, _, _)) | 175 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 1, _, 1, _, _)) |
| 164 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); | 176 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); |
| 165 EXPECT_CALL(*mock_device_handle_.get(), | 177 EXPECT_CALL(*mock_device_handle_.get(), |
| 166 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 2, _, 1, _, _)) | 178 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 2, _, 1, _, _)) |
| 167 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); | 179 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); |
| 168 EXPECT_CALL( | 180 EXPECT_CALL(*mock_device_handle_.get(), IsochronousTransferOut(3, _, _, _, _)) |
| 169 *mock_device_handle_.get(), | 181 .WillOnce(InvokeUsbIsochronousTransferCallback<4>( |
| 170 IsochronousTransfer(device::USB_DIRECTION_OUTBOUND, 3, _, 1, 1, 1, _, _)) | 182 device::USB_TRANSFER_COMPLETED)); |
| 171 .WillOnce(InvokeUsbTransferCallback<7>(device::USB_TRANSFER_COMPLETED)); | |
| 172 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); | 183 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); |
| 173 ASSERT_TRUE(RunAppTest("api_test/usb/transfer_event")); | 184 ASSERT_TRUE(RunAppTest("api_test/usb/transfer_event")); |
| 174 } | 185 } |
| 175 | 186 |
| 176 IN_PROC_BROWSER_TEST_F(UsbApiTest, ZeroLengthTransfer) { | 187 IN_PROC_BROWSER_TEST_F(UsbApiTest, ZeroLengthTransfer) { |
| 177 EXPECT_CALL(*mock_device_handle_.get(), GenericTransfer(_, _, _, 0, _, _)) | 188 EXPECT_CALL(*mock_device_handle_.get(), GenericTransfer(_, _, _, 0, _, _)) |
| 178 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); | 189 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); |
| 179 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); | 190 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); |
| 180 ASSERT_TRUE(RunAppTest("api_test/usb/zero_length_transfer")); | 191 ASSERT_TRUE(RunAppTest("api_test/usb/zero_length_transfer")); |
| 181 } | 192 } |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 | 248 |
| 238 TestExtensionsAPIClient test_api_client; | 249 TestExtensionsAPIClient test_api_client; |
| 239 ASSERT_TRUE(LoadApp("api_test/usb/get_user_selected_devices")); | 250 ASSERT_TRUE(LoadApp("api_test/usb/get_user_selected_devices")); |
| 240 ASSERT_TRUE(ready_listener.WaitUntilSatisfied()); | 251 ASSERT_TRUE(ready_listener.WaitUntilSatisfied()); |
| 241 | 252 |
| 242 device_client_->usb_service()->RemoveDevice(mock_device_); | 253 device_client_->usb_service()->RemoveDevice(mock_device_); |
| 243 ASSERT_TRUE(result_listener.WaitUntilSatisfied()); | 254 ASSERT_TRUE(result_listener.WaitUntilSatisfied()); |
| 244 } | 255 } |
| 245 | 256 |
| 246 } // namespace extensions | 257 } // namespace extensions |
| OLD | NEW |