Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(291)

Side by Side Diff: extensions/browser/api/usb/usb_apitest.cc

Issue 1658953003: Revert of Update device/usb and its Mojo interface for variable size ISO packets. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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>
8
9 #include "chrome/browser/extensions/extension_apitest.h" 7 #include "chrome/browser/extensions/extension_apitest.h"
10 #include "content/public/browser/browser_thread.h" 8 #include "content/public/browser/browser_thread.h"
11 #include "content/public/test/test_utils.h" 9 #include "content/public/test/test_utils.h"
12 #include "device/core/mock_device_client.h" 10 #include "device/core/mock_device_client.h"
13 #include "device/usb/mock_usb_device.h" 11 #include "device/usb/mock_usb_device.h"
14 #include "device/usb/mock_usb_device_handle.h" 12 #include "device/usb/mock_usb_device_handle.h"
15 #include "device/usb/mock_usb_service.h" 13 #include "device/usb/mock_usb_service.h"
16 #include "extensions/browser/api/device_permissions_prompt.h" 14 #include "extensions/browser/api/device_permissions_prompt.h"
17 #include "extensions/browser/api/usb/usb_api.h" 15 #include "extensions/browser/api/usb/usb_api.h"
18 #include "extensions/shell/browser/shell_extensions_api_client.h" 16 #include "extensions/shell/browser/shell_extensions_api_client.h"
(...skipping 24 matching lines...) Expand all
43 } 41 }
44 42
45 ACTION_TEMPLATE(InvokeUsbTransferCallback, 43 ACTION_TEMPLATE(InvokeUsbTransferCallback,
46 HAS_1_TEMPLATE_PARAMS(int, k), 44 HAS_1_TEMPLATE_PARAMS(int, k),
47 AND_1_VALUE_PARAMS(p1)) { 45 AND_1_VALUE_PARAMS(p1)) {
48 net::IOBuffer* io_buffer = new net::IOBuffer(1); 46 net::IOBuffer* io_buffer = new net::IOBuffer(1);
49 memset(io_buffer->data(), 0, 1); // Avoid uninitialized reads. 47 memset(io_buffer->data(), 0, 1); // Avoid uninitialized reads.
50 ::std::tr1::get<k>(args).Run(p1, io_buffer, 1); 48 ::std::tr1::get<k>(args).Run(p1, io_buffer, 1);
51 } 49 }
52 50
53 ACTION_P2(InvokeUsbIsochronousTransferOutCallback,
54 transferred_length,
55 success_packets) {
56 std::vector<UsbDeviceHandle::IsochronousPacket> packets(arg2.size());
57 for (size_t i = 0; i < packets.size(); ++i) {
58 packets[i].length = arg2[i];
59 if (i < success_packets) {
60 packets[i].transferred_length = transferred_length;
61 packets[i].status = device::USB_TRANSFER_COMPLETED;
62 } else {
63 packets[i].transferred_length = 0;
64 packets[i].status = device::USB_TRANSFER_ERROR;
65 }
66 }
67 arg4.Run(arg1, packets);
68 }
69
70 ACTION_P2(InvokeUsbIsochronousTransferInCallback,
71 transferred_length,
72 success_packets) {
73 size_t total_length = std::accumulate(arg1.begin(), arg1.end(), 0u);
74 net::IOBuffer* io_buffer = new net::IOBuffer(total_length);
75 std::vector<UsbDeviceHandle::IsochronousPacket> packets(arg1.size());
76 for (size_t i = 0; i < packets.size(); ++i) {
77 packets[i].length = arg1[i];
78 packets[i].transferred_length = transferred_length;
79 if (i < success_packets) {
80 packets[i].transferred_length = transferred_length;
81 packets[i].status = device::USB_TRANSFER_COMPLETED;
82 } else {
83 packets[i].transferred_length = 0;
84 packets[i].status = device::USB_TRANSFER_ERROR;
85 }
86 }
87 arg3.Run(io_buffer, packets);
88 }
89
90 class TestDevicePermissionsPrompt 51 class TestDevicePermissionsPrompt
91 : public DevicePermissionsPrompt, 52 : public DevicePermissionsPrompt,
92 public DevicePermissionsPrompt::Prompt::Observer { 53 public DevicePermissionsPrompt::Prompt::Observer {
93 public: 54 public:
94 explicit TestDevicePermissionsPrompt(content::WebContents* web_contents) 55 explicit TestDevicePermissionsPrompt(content::WebContents* web_contents)
95 : DevicePermissionsPrompt(web_contents) {} 56 : DevicePermissionsPrompt(web_contents) {}
96 57
97 void ShowDialog() override { prompt()->SetObserver(this); } 58 void ShowDialog() override { prompt()->SetObserver(this); }
98 59
99 void OnDevicesChanged() override { 60 void OnDevicesChanged() override {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 1, 158 1,
198 _, 159 _,
199 _)) 160 _))
200 .WillOnce(InvokeUsbTransferCallback<9>(device::USB_TRANSFER_COMPLETED)); 161 .WillOnce(InvokeUsbTransferCallback<9>(device::USB_TRANSFER_COMPLETED));
201 EXPECT_CALL(*mock_device_handle_.get(), 162 EXPECT_CALL(*mock_device_handle_.get(),
202 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 1, _, 1, _, _)) 163 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 1, _, 1, _, _))
203 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); 164 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED));
204 EXPECT_CALL(*mock_device_handle_.get(), 165 EXPECT_CALL(*mock_device_handle_.get(),
205 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 2, _, 1, _, _)) 166 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 2, _, 1, _, _))
206 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); 167 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED));
207 EXPECT_CALL(*mock_device_handle_.get(), IsochronousTransferOut(3, _, _, _, _)) 168 EXPECT_CALL(
208 .WillOnce(InvokeUsbIsochronousTransferOutCallback(1, 1u)); 169 *mock_device_handle_.get(),
170 IsochronousTransfer(device::USB_DIRECTION_OUTBOUND, 3, _, 1, 1, 1, _, _))
171 .WillOnce(InvokeUsbTransferCallback<7>(device::USB_TRANSFER_COMPLETED));
209 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); 172 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber());
210 ASSERT_TRUE(RunAppTest("api_test/usb/transfer_event")); 173 ASSERT_TRUE(RunAppTest("api_test/usb/transfer_event"));
211 } 174 }
212 175
213 IN_PROC_BROWSER_TEST_F(UsbApiTest, ZeroLengthTransfer) { 176 IN_PROC_BROWSER_TEST_F(UsbApiTest, ZeroLengthTransfer) {
214 EXPECT_CALL(*mock_device_handle_.get(), GenericTransfer(_, _, _, 0, _, _)) 177 EXPECT_CALL(*mock_device_handle_.get(), GenericTransfer(_, _, _, 0, _, _))
215 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)); 178 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED));
216 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); 179 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber());
217 ASSERT_TRUE(RunAppTest("api_test/usb/zero_length_transfer")); 180 ASSERT_TRUE(RunAppTest("api_test/usb/zero_length_transfer"));
218 } 181 }
219 182
220 IN_PROC_BROWSER_TEST_F(UsbApiTest, TransferFailure) { 183 IN_PROC_BROWSER_TEST_F(UsbApiTest, TransferFailure) {
221 EXPECT_CALL(*mock_device_handle_.get(), 184 EXPECT_CALL(*mock_device_handle_.get(), GenericTransfer(_, _, _, _, _, _))
222 GenericTransfer(device::USB_DIRECTION_OUTBOUND, 1, _, _, _, _))
223 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED)) 185 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_COMPLETED))
224 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_ERROR)) 186 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_ERROR))
225 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_TIMEOUT)); 187 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_TIMEOUT));
226 EXPECT_CALL(*mock_device_handle_.get(), IsochronousTransferIn(2, _, _, _))
227 .WillOnce(InvokeUsbIsochronousTransferInCallback(8, 10u))
228 .WillOnce(InvokeUsbIsochronousTransferInCallback(8, 5u));
229 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); 188 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber());
230 ASSERT_TRUE(RunAppTest("api_test/usb/transfer_failure")); 189 ASSERT_TRUE(RunAppTest("api_test/usb/transfer_failure"));
231 } 190 }
232 191
233 IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidLengthTransfer) { 192 IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidLengthTransfer) {
234 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); 193 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber());
235 ASSERT_TRUE(RunAppTest("api_test/usb/invalid_length_transfer")); 194 ASSERT_TRUE(RunAppTest("api_test/usb/invalid_length_transfer"));
236 } 195 }
237 196
238 IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidTimeout) { 197 IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidTimeout) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 237
279 TestExtensionsAPIClient test_api_client; 238 TestExtensionsAPIClient test_api_client;
280 ASSERT_TRUE(LoadApp("api_test/usb/get_user_selected_devices")); 239 ASSERT_TRUE(LoadApp("api_test/usb/get_user_selected_devices"));
281 ASSERT_TRUE(ready_listener.WaitUntilSatisfied()); 240 ASSERT_TRUE(ready_listener.WaitUntilSatisfied());
282 241
283 device_client_->usb_service()->RemoveDevice(mock_device_); 242 device_client_->usb_service()->RemoveDevice(mock_device_);
284 ASSERT_TRUE(result_listener.WaitUntilSatisfied()); 243 ASSERT_TRUE(result_listener.WaitUntilSatisfied());
285 } 244 }
286 245
287 } // namespace extensions 246 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/api/usb/usb_api.cc ('k') | extensions/test/data/api_test/usb/transfer_event/test.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698