| Index: chrome/browser/extensions/api/usb/usb_apitest.cc
|
| diff --git a/chrome/browser/extensions/api/usb/usb_apitest.cc b/chrome/browser/extensions/api/usb/usb_apitest.cc
|
| deleted file mode 100644
|
| index da67ff7eee4f36edcd8fec6ad21472f4a8f409da..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/api/usb/usb_apitest.cc
|
| +++ /dev/null
|
| @@ -1,251 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/extensions/api/usb/usb_api.h"
|
| -#include "chrome/browser/extensions/extension_apitest.h"
|
| -#include "chrome/browser/ui/browser.h"
|
| -#include "components/usb_service/usb_service.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "content/public/test/test_utils.h"
|
| -#include "net/base/io_buffer.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -
|
| -using testing::AnyNumber;
|
| -using testing::_;
|
| -using testing::Return;
|
| -using content::BrowserThread;
|
| -using usb_service::UsbConfigDescriptor;
|
| -using usb_service::UsbDevice;
|
| -using usb_service::UsbDeviceHandle;
|
| -using usb_service::UsbEndpointDirection;
|
| -using usb_service::UsbService;
|
| -using usb_service::UsbTransferCallback;
|
| -
|
| -namespace {
|
| -
|
| -ACTION_TEMPLATE(InvokeUsbTransferCallback,
|
| - HAS_1_TEMPLATE_PARAMS(int, k),
|
| - AND_1_VALUE_PARAMS(p1)) {
|
| - ::std::tr1::get<k>(args).Run(p1, new net::IOBuffer(1), 1);
|
| -}
|
| -
|
| -// MSVC erroneously thinks that at least one of the arguments for the transfer
|
| -// methods differ by const or volatility and emits a warning about the old
|
| -// standards-noncompliant behaviour of their compiler.
|
| -#if defined(OS_WIN)
|
| -#pragma warning(push)
|
| -#pragma warning(disable:4373)
|
| -#endif
|
| -
|
| -class MockUsbDeviceHandle : public UsbDeviceHandle {
|
| - public:
|
| - MockUsbDeviceHandle() : UsbDeviceHandle() {}
|
| -
|
| - MOCK_METHOD0(Close, void());
|
| -
|
| - MOCK_METHOD10(ControlTransfer, void(const UsbEndpointDirection direction,
|
| - const TransferRequestType request_type, const TransferRecipient recipient,
|
| - const uint8 request, const uint16 value, const uint16 index,
|
| - net::IOBuffer* buffer, const size_t length, const unsigned int timeout,
|
| - const UsbTransferCallback& callback));
|
| -
|
| - MOCK_METHOD6(BulkTransfer, void(const UsbEndpointDirection direction,
|
| - const uint8 endpoint, net::IOBuffer* buffer, const size_t length,
|
| - const unsigned int timeout, const UsbTransferCallback& callback));
|
| -
|
| - MOCK_METHOD6(InterruptTransfer, void(const UsbEndpointDirection direction,
|
| - const uint8 endpoint, net::IOBuffer* buffer, const size_t length,
|
| - const unsigned int timeout, const UsbTransferCallback& callback));
|
| -
|
| - MOCK_METHOD8(IsochronousTransfer, void(const UsbEndpointDirection direction,
|
| - const uint8 endpoint, net::IOBuffer* buffer, const size_t length,
|
| - const unsigned int packets, const unsigned int packet_length,
|
| - const unsigned int timeout, const UsbTransferCallback& callback));
|
| -
|
| - MOCK_METHOD0(ResetDevice, bool());
|
| -
|
| - void set_device(UsbDevice* device) { device_ = device; }
|
| -
|
| - protected:
|
| - virtual ~MockUsbDeviceHandle() {}
|
| -};
|
| -
|
| -class MockUsbConfigDescriptor : public UsbConfigDescriptor {
|
| - public:
|
| - MOCK_CONST_METHOD0(GetNumInterfaces, size_t());
|
| -
|
| - protected:
|
| - virtual ~MockUsbConfigDescriptor() {}
|
| -};
|
| -
|
| -class MockUsbDevice : public UsbDevice {
|
| - public:
|
| - explicit MockUsbDevice(MockUsbDeviceHandle* mock_handle)
|
| - : UsbDevice(),
|
| - mock_handle_(mock_handle) {
|
| - mock_handle->set_device(this);
|
| - }
|
| -
|
| - virtual scoped_refptr<UsbDeviceHandle> Open() OVERRIDE {
|
| - return mock_handle_;
|
| - }
|
| -
|
| - virtual bool Close(scoped_refptr<UsbDeviceHandle> handle) OVERRIDE {
|
| - EXPECT_TRUE(false) << "Should not be reached";
|
| - return false;
|
| - }
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| - virtual void RequestUsbAcess(
|
| - int interface_id,
|
| - const base::Callback<void(bool success)>& callback) OVERRIDE {
|
| - BrowserThread::PostTask(
|
| - BrowserThread::FILE, FROM_HERE, base::Bind(callback, true));
|
| - }
|
| -#endif // OS_CHROMEOS
|
| -
|
| - MOCK_METHOD0(ListInterfaces, scoped_refptr<UsbConfigDescriptor>());
|
| -
|
| - private:
|
| - MockUsbDeviceHandle* mock_handle_;
|
| - virtual ~MockUsbDevice() {}
|
| -};
|
| -
|
| -class MockUsbService : public UsbService {
|
| - public:
|
| - explicit MockUsbService(scoped_refptr<UsbDevice> device) : device_(device) {}
|
| -
|
| - protected:
|
| - virtual scoped_refptr<UsbDevice> GetDeviceById(uint32 unique_id) OVERRIDE {
|
| - EXPECT_EQ(unique_id, 0U);
|
| - return device_;
|
| - }
|
| -
|
| - virtual void GetDevices(
|
| - std::vector<scoped_refptr<UsbDevice> >* devices) OVERRIDE {
|
| - STLClearObject(devices);
|
| - devices->push_back(device_);
|
| - }
|
| -
|
| - scoped_refptr<UsbDevice> device_;
|
| -};
|
| -
|
| -#if defined(OS_WIN)
|
| -#pragma warning(pop)
|
| -#endif
|
| -
|
| -class UsbApiTest : public ExtensionApiTest {
|
| - public:
|
| - virtual void SetUpOnMainThread() OVERRIDE {
|
| - mock_device_handle_ = new MockUsbDeviceHandle();
|
| - mock_device_ = new MockUsbDevice(mock_device_handle_.get());
|
| - scoped_refptr<content::MessageLoopRunner> runner =
|
| - new content::MessageLoopRunner;
|
| - BrowserThread::PostTaskAndReply(BrowserThread::FILE,
|
| - FROM_HERE,
|
| - base::Bind(&UsbApiTest::SetUpService, this),
|
| - runner->QuitClosure());
|
| - runner->Run();
|
| - }
|
| -
|
| - void SetUpService() {
|
| - UsbService::SetInstanceForTest(new MockUsbService(mock_device_));
|
| - }
|
| -
|
| - virtual void CleanUpOnMainThread() OVERRIDE {
|
| - scoped_refptr<content::MessageLoopRunner> runner =
|
| - new content::MessageLoopRunner;
|
| - UsbService* service = NULL;
|
| - BrowserThread::PostTaskAndReply(
|
| - BrowserThread::FILE,
|
| - FROM_HERE,
|
| - base::Bind(&UsbService::SetInstanceForTest, service),
|
| - runner->QuitClosure());
|
| - runner->Run();
|
| - }
|
| -
|
| - protected:
|
| - scoped_refptr<MockUsbDeviceHandle> mock_device_handle_;
|
| - scoped_refptr<MockUsbDevice> mock_device_;
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -IN_PROC_BROWSER_TEST_F(UsbApiTest, DeviceHandling) {
|
| - EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(4);
|
| - ASSERT_TRUE(RunExtensionTest("usb/device_handling"));
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(UsbApiTest, ResetDevice) {
|
| - EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(2);
|
| - EXPECT_CALL(*mock_device_handle_.get(), ResetDevice())
|
| - .WillOnce(Return(true))
|
| - .WillOnce(Return(false));
|
| - EXPECT_CALL(
|
| - *mock_device_handle_.get(),
|
| - InterruptTransfer(usb_service::USB_DIRECTION_OUTBOUND, 2, _, 1, _, _))
|
| - .WillOnce(
|
| - InvokeUsbTransferCallback<5>(usb_service::USB_TRANSFER_COMPLETED));
|
| - ASSERT_TRUE(RunExtensionTest("usb/reset_device"));
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(UsbApiTest, ListInterfaces) {
|
| - scoped_refptr<MockUsbConfigDescriptor> mock_descriptor =
|
| - new MockUsbConfigDescriptor();
|
| - EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber());
|
| - EXPECT_CALL(*mock_descriptor.get(), GetNumInterfaces()).WillOnce(Return(0));
|
| - EXPECT_CALL(*mock_device_.get(), ListInterfaces())
|
| - .WillOnce(Return(mock_descriptor));
|
| - ASSERT_TRUE(RunExtensionTest("usb/list_interfaces"));
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(UsbApiTest, TransferEvent) {
|
| - EXPECT_CALL(*mock_device_handle_.get(),
|
| - ControlTransfer(usb_service::USB_DIRECTION_OUTBOUND,
|
| - UsbDeviceHandle::STANDARD,
|
| - UsbDeviceHandle::DEVICE,
|
| - 1, 2, 3, _, 1, _, _))
|
| - .WillOnce(
|
| - InvokeUsbTransferCallback<9>(usb_service::USB_TRANSFER_COMPLETED));
|
| - EXPECT_CALL(*mock_device_handle_.get(),
|
| - BulkTransfer(usb_service::USB_DIRECTION_OUTBOUND, 1, _, 1, _, _))
|
| - .WillOnce(
|
| - InvokeUsbTransferCallback<5>(usb_service::USB_TRANSFER_COMPLETED));
|
| - EXPECT_CALL(
|
| - *mock_device_handle_.get(),
|
| - InterruptTransfer(usb_service::USB_DIRECTION_OUTBOUND, 2, _, 1, _, _))
|
| - .WillOnce(
|
| - InvokeUsbTransferCallback<5>(usb_service::USB_TRANSFER_COMPLETED));
|
| - EXPECT_CALL(*mock_device_handle_.get(),
|
| - IsochronousTransfer(
|
| - usb_service::USB_DIRECTION_OUTBOUND, 3, _, 1, 1, 1, _, _))
|
| - .WillOnce(
|
| - InvokeUsbTransferCallback<7>(usb_service::USB_TRANSFER_COMPLETED));
|
| - EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber());
|
| - ASSERT_TRUE(RunExtensionTest("usb/transfer_event"));
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(UsbApiTest, ZeroLengthTransfer) {
|
| - EXPECT_CALL(*mock_device_handle_.get(), BulkTransfer(_, _, _, 0, _, _))
|
| - .WillOnce(
|
| - InvokeUsbTransferCallback<5>(usb_service::USB_TRANSFER_COMPLETED));
|
| - EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber());
|
| - ASSERT_TRUE(RunExtensionTest("usb/zero_length_transfer"));
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(UsbApiTest, TransferFailure) {
|
| - EXPECT_CALL(*mock_device_handle_.get(), BulkTransfer(_, _, _, _, _, _))
|
| - .WillOnce(
|
| - InvokeUsbTransferCallback<5>(usb_service::USB_TRANSFER_COMPLETED))
|
| - .WillOnce(InvokeUsbTransferCallback<5>(usb_service::USB_TRANSFER_ERROR))
|
| - .WillOnce(
|
| - InvokeUsbTransferCallback<5>(usb_service::USB_TRANSFER_TIMEOUT));
|
| - EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber());
|
| - ASSERT_TRUE(RunExtensionTest("usb/transfer_failure"));
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(UsbApiTest, InvalidLengthTransfer) {
|
| - EXPECT_CALL(*mock_device_handle_.get(), Close()).Times(AnyNumber());
|
| - ASSERT_TRUE(RunExtensionTest("usb/invalid_length_transfer"));
|
| -}
|
|
|