| 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 "chrome/browser/extensions/extension_apitest.h" | 5 #include "chrome/browser/extensions/extension_apitest.h" |
| 6 #include "chrome/browser/ui/browser.h" | 6 #include "chrome/browser/ui/browser.h" |
| 7 #include "content/public/browser/browser_thread.h" | 7 #include "content/public/browser/browser_thread.h" |
| 8 #include "content/public/test/test_utils.h" | 8 #include "content/public/test/test_utils.h" |
| 9 #include "device/usb/usb_service.h" | 9 #include "device/usb/usb_service.h" |
| 10 #include "extensions/browser/api/usb/usb_api.h" | 10 #include "extensions/browser/api/usb/usb_api.h" |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 private: | 138 private: |
| 139 MockUsbDeviceHandle* mock_handle_; | 139 MockUsbDeviceHandle* mock_handle_; |
| 140 virtual ~MockUsbDevice() {} | 140 virtual ~MockUsbDevice() {} |
| 141 }; | 141 }; |
| 142 | 142 |
| 143 class MockUsbService : public UsbService { | 143 class MockUsbService : public UsbService { |
| 144 public: | 144 public: |
| 145 explicit MockUsbService(scoped_refptr<UsbDevice> device) : device_(device) {} | 145 explicit MockUsbService(scoped_refptr<UsbDevice> device) : device_(device) {} |
| 146 | 146 |
| 147 protected: | 147 protected: |
| 148 virtual scoped_refptr<UsbDevice> GetDeviceById(uint32 unique_id) override { | 148 scoped_refptr<UsbDevice> GetDeviceById(uint32 unique_id) override { |
| 149 EXPECT_EQ(unique_id, 0U); | 149 EXPECT_EQ(unique_id, 0U); |
| 150 return device_; | 150 return device_; |
| 151 } | 151 } |
| 152 | 152 |
| 153 virtual void GetDevices( | 153 void GetDevices(std::vector<scoped_refptr<UsbDevice>>* devices) override { |
| 154 std::vector<scoped_refptr<UsbDevice> >* devices) override { | |
| 155 STLClearObject(devices); | 154 STLClearObject(devices); |
| 156 devices->push_back(device_); | 155 devices->push_back(device_); |
| 157 } | 156 } |
| 158 | 157 |
| 159 scoped_refptr<UsbDevice> device_; | 158 scoped_refptr<UsbDevice> device_; |
| 160 }; | 159 }; |
| 161 | 160 |
| 162 #if defined(OS_WIN) | 161 #if defined(OS_WIN) |
| 163 #pragma warning(pop) | 162 #pragma warning(pop) |
| 164 #endif | 163 #endif |
| 165 | 164 |
| 166 class UsbApiTest : public ExtensionApiTest { | 165 class UsbApiTest : public ExtensionApiTest { |
| 167 public: | 166 public: |
| 168 virtual void SetUpOnMainThread() override { | 167 void SetUpOnMainThread() override { |
| 169 mock_device_handle_ = new MockUsbDeviceHandle(); | 168 mock_device_handle_ = new MockUsbDeviceHandle(); |
| 170 mock_device_ = new MockUsbDevice(mock_device_handle_.get()); | 169 mock_device_ = new MockUsbDevice(mock_device_handle_.get()); |
| 171 scoped_refptr<content::MessageLoopRunner> runner = | 170 scoped_refptr<content::MessageLoopRunner> runner = |
| 172 new content::MessageLoopRunner; | 171 new content::MessageLoopRunner; |
| 173 BrowserThread::PostTaskAndReply(BrowserThread::FILE, | 172 BrowserThread::PostTaskAndReply(BrowserThread::FILE, |
| 174 FROM_HERE, | 173 FROM_HERE, |
| 175 base::Bind(&UsbApiTest::SetUpService, this), | 174 base::Bind(&UsbApiTest::SetUpService, this), |
| 176 runner->QuitClosure()); | 175 runner->QuitClosure()); |
| 177 runner->Run(); | 176 runner->Run(); |
| 178 } | 177 } |
| 179 | 178 |
| 180 void SetUpService() { | 179 void SetUpService() { |
| 181 UsbService::SetInstanceForTest(new MockUsbService(mock_device_)); | 180 UsbService::SetInstanceForTest(new MockUsbService(mock_device_)); |
| 182 } | 181 } |
| 183 | 182 |
| 184 virtual void TearDownOnMainThread() override { | 183 void TearDownOnMainThread() override { |
| 185 scoped_refptr<content::MessageLoopRunner> runner = | 184 scoped_refptr<content::MessageLoopRunner> runner = |
| 186 new content::MessageLoopRunner; | 185 new content::MessageLoopRunner; |
| 187 UsbService* service = NULL; | 186 UsbService* service = NULL; |
| 188 BrowserThread::PostTaskAndReply( | 187 BrowserThread::PostTaskAndReply( |
| 189 BrowserThread::FILE, | 188 BrowserThread::FILE, |
| 190 FROM_HERE, | 189 FROM_HERE, |
| 191 base::Bind(&UsbService::SetInstanceForTest, service), | 190 base::Bind(&UsbService::SetInstanceForTest, service), |
| 192 runner->QuitClosure()); | 191 runner->QuitClosure()); |
| 193 runner->Run(); | 192 runner->Run(); |
| 194 } | 193 } |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_ERROR)) | 263 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_ERROR)) |
| 265 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_TIMEOUT)); | 264 .WillOnce(InvokeUsbTransferCallback<5>(device::USB_TRANSFER_TIMEOUT)); |
| 266 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); | 265 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); |
| 267 ASSERT_TRUE(RunExtensionTest("usb/transfer_failure")); | 266 ASSERT_TRUE(RunExtensionTest("usb/transfer_failure")); |
| 268 } | 267 } |
| 269 | 268 |
| 270 IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidLengthTransfer) { | 269 IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidLengthTransfer) { |
| 271 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); | 270 EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber()); |
| 272 ASSERT_TRUE(RunExtensionTest("usb/invalid_length_transfer")); | 271 ASSERT_TRUE(RunExtensionTest("usb/invalid_length_transfer")); |
| 273 } | 272 } |
| OLD | NEW |