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

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

Issue 1034333002: Check USB device path access when prompting users to select a device. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move MockPermissionBrokerClient into its own header. Created 5 years, 8 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
« no previous file with comments | « extensions/browser/api/usb/usb_api.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/extensions/extension_apitest.h" 5 #include "chrome/browser/extensions/extension_apitest.h"
6 #include "content/public/browser/browser_thread.h" 6 #include "content/public/browser/browser_thread.h"
7 #include "content/public/test/test_utils.h" 7 #include "content/public/test/test_utils.h"
8 #include "device/usb/usb_service.h" 8 #include "device/usb/usb_service.h"
9 #include "extensions/browser/api/device_permissions_prompt.h" 9 #include "extensions/browser/api/device_permissions_prompt.h"
10 #include "extensions/browser/api/usb/usb_api.h" 10 #include "extensions/browser/api/usb/usb_api.h"
(...skipping 21 matching lines...) Expand all
32 namespace { 32 namespace {
33 33
34 ACTION_TEMPLATE(InvokeUsbTransferCallback, 34 ACTION_TEMPLATE(InvokeUsbTransferCallback,
35 HAS_1_TEMPLATE_PARAMS(int, k), 35 HAS_1_TEMPLATE_PARAMS(int, k),
36 AND_1_VALUE_PARAMS(p1)) { 36 AND_1_VALUE_PARAMS(p1)) {
37 net::IOBuffer* io_buffer = new net::IOBuffer(1); 37 net::IOBuffer* io_buffer = new net::IOBuffer(1);
38 memset(io_buffer->data(), 0, 1); // Avoid uninitialized reads. 38 memset(io_buffer->data(), 0, 1); // Avoid uninitialized reads.
39 ::std::tr1::get<k>(args).Run(p1, io_buffer, 1); 39 ::std::tr1::get<k>(args).Run(p1, io_buffer, 1);
40 } 40 }
41 41
42 void RequestUsbAccess(int interface_id,
43 const base::Callback<void(bool success)>& callback) {
44 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(callback, true));
45 }
46
47 class TestDevicePermissionsPrompt 42 class TestDevicePermissionsPrompt
48 : public DevicePermissionsPrompt, 43 : public DevicePermissionsPrompt,
49 public DevicePermissionsPrompt::Prompt::Observer { 44 public DevicePermissionsPrompt::Prompt::Observer {
50 public: 45 public:
51 TestDevicePermissionsPrompt(content::WebContents* web_contents) 46 TestDevicePermissionsPrompt(content::WebContents* web_contents)
52 : DevicePermissionsPrompt(web_contents) {} 47 : DevicePermissionsPrompt(web_contents) {}
53 48
54 void ShowDialog() override { prompt()->SetObserver(this); } 49 void ShowDialog() override { prompt()->SetObserver(this); }
55 50
56 void OnDevicesChanged() override { 51 void OnDevicesChanged() override {
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 UsbDevice* device_; 133 UsbDevice* device_;
139 134
140 virtual ~MockUsbDeviceHandle() {} 135 virtual ~MockUsbDeviceHandle() {}
141 }; 136 };
142 137
143 class MockUsbDevice : public UsbDevice { 138 class MockUsbDevice : public UsbDevice {
144 public: 139 public:
145 MockUsbDevice(uint16 vendor_id, uint16 product_id, uint32 unique_id) 140 MockUsbDevice(uint16 vendor_id, uint16 product_id, uint32 unique_id)
146 : UsbDevice(vendor_id, product_id, unique_id) {} 141 : UsbDevice(vendor_id, product_id, unique_id) {}
147 142
148 MOCK_METHOD2(RequestUsbAccess, void(int, const base::Callback<void(bool)>&));
149 MOCK_METHOD0(Open, scoped_refptr<UsbDeviceHandle>()); 143 MOCK_METHOD0(Open, scoped_refptr<UsbDeviceHandle>());
150 MOCK_METHOD1(Close, bool(scoped_refptr<UsbDeviceHandle>)); 144 MOCK_METHOD1(Close, bool(scoped_refptr<UsbDeviceHandle>));
151 MOCK_METHOD0(GetConfiguration, const device::UsbConfigDescriptor*()); 145 MOCK_METHOD0(GetConfiguration, const device::UsbConfigDescriptor*());
152 MOCK_METHOD1(GetManufacturer, bool(base::string16*)); 146 MOCK_METHOD1(GetManufacturer, bool(base::string16*));
153 MOCK_METHOD1(GetProduct, bool(base::string16*)); 147 MOCK_METHOD1(GetProduct, bool(base::string16*));
154 MOCK_METHOD1(GetSerialNumber, bool(base::string16*)); 148 MOCK_METHOD1(GetSerialNumber, bool(base::string16*));
155 149
156 private: 150 private:
157 virtual ~MockUsbDevice() {} 151 virtual ~MockUsbDevice() {}
158 }; 152 };
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 mock_device_ = new MockUsbDevice(0, 0, 0); 187 mock_device_ = new MockUsbDevice(0, 0, 0);
194 EXPECT_CALL(*mock_device_.get(), GetManufacturer(_)) 188 EXPECT_CALL(*mock_device_.get(), GetManufacturer(_))
195 .WillRepeatedly(Return(false)); 189 .WillRepeatedly(Return(false));
196 EXPECT_CALL(*mock_device_.get(), GetProduct(_)) 190 EXPECT_CALL(*mock_device_.get(), GetProduct(_))
197 .WillRepeatedly(Return(false)); 191 .WillRepeatedly(Return(false));
198 EXPECT_CALL(*mock_device_.get(), GetSerialNumber(_)) 192 EXPECT_CALL(*mock_device_.get(), GetSerialNumber(_))
199 .WillRepeatedly(Return(false)); 193 .WillRepeatedly(Return(false));
200 194
201 mock_device_handle_ = new MockUsbDeviceHandle(); 195 mock_device_handle_ = new MockUsbDeviceHandle();
202 mock_device_handle_->set_device(mock_device_.get()); 196 mock_device_handle_->set_device(mock_device_.get());
203 EXPECT_CALL(*mock_device_.get(), RequestUsbAccess(_, _))
204 .WillRepeatedly(Invoke(RequestUsbAccess));
205 EXPECT_CALL(*mock_device_.get(), Open()) 197 EXPECT_CALL(*mock_device_.get(), Open())
206 .WillRepeatedly(Return(mock_device_handle_)); 198 .WillRepeatedly(Return(mock_device_handle_));
207 199
208 base::RunLoop run_loop; 200 base::RunLoop run_loop;
209 BrowserThread::PostTaskAndReply(BrowserThread::FILE, FROM_HERE, 201 BrowserThread::PostTaskAndReply(BrowserThread::FILE, FROM_HERE,
210 base::Bind(&UsbApiTest::SetUpService, this), 202 base::Bind(&UsbApiTest::SetUpService, this),
211 run_loop.QuitClosure()); 203 run_loop.QuitClosure());
212 run_loop.Run(); 204 run_loop.Run();
213 } 205 }
214 206
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 BrowserThread::FILE, FROM_HERE, 370 BrowserThread::FILE, FROM_HERE,
379 base::Bind(&MockUsbService::NotifyDeviceRemoved, 371 base::Bind(&MockUsbService::NotifyDeviceRemoved,
380 base::Unretained(mock_service_), mock_device_), 372 base::Unretained(mock_service_), mock_device_),
381 run_loop.QuitClosure()); 373 run_loop.QuitClosure());
382 run_loop.Run(); 374 run_loop.Run();
383 375
384 ASSERT_TRUE(result_listener.WaitUntilSatisfied()); 376 ASSERT_TRUE(result_listener.WaitUntilSatisfied());
385 } 377 }
386 378
387 } // namespace extensions 379 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/api/usb/usb_api.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698