Index: extensions/browser/api/usb/usb_apitest.cc |
diff --git a/extensions/browser/api/usb/usb_apitest.cc b/extensions/browser/api/usb/usb_apitest.cc |
index a1bdc83d8cb331ed55c63f3d4f59738fd7efdd9d..0219b9d510ede9f05157514402b52dcb6d806b93 100644 |
--- a/extensions/browser/api/usb/usb_apitest.cc |
+++ b/extensions/browser/api/usb/usb_apitest.cc |
@@ -5,20 +5,24 @@ |
#include "chrome/browser/extensions/extension_apitest.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/test/test_utils.h" |
-#include "device/usb/usb_service.h" |
+#include "device/usb/mock_usb_device.h" |
+#include "device/usb/mock_usb_device_handle.h" |
+#include "device/usb/mock_usb_service.h" |
#include "extensions/browser/api/device_permissions_prompt.h" |
#include "extensions/browser/api/usb/usb_api.h" |
#include "extensions/shell/browser/shell_extensions_api_client.h" |
#include "extensions/shell/test/shell_apitest.h" |
#include "extensions/test/extension_test_message_listener.h" |
#include "net/base/io_buffer.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
using testing::_; |
using testing::AnyNumber; |
using testing::Invoke; |
using testing::Return; |
using content::BrowserThread; |
+using device::MockUsbDevice; |
+using device::MockUsbDeviceHandle; |
+using device::MockUsbService; |
using device::UsbConfigDescriptor; |
using device::UsbDevice; |
using device::UsbDeviceHandle; |
@@ -74,130 +78,17 @@ class TestExtensionsAPIClient : public ShellExtensionsAPIClient { |
} |
}; |
-class MockUsbDeviceHandle : public UsbDeviceHandle { |
- public: |
- MockUsbDeviceHandle() : UsbDeviceHandle() {} |
- |
- MOCK_METHOD0(Close, void()); |
- |
- MOCK_METHOD10(ControlTransfer, |
- void(UsbEndpointDirection direction, |
- TransferRequestType request_type, |
- TransferRecipient recipient, |
- uint8 request, |
- uint16 value, |
- uint16 index, |
- scoped_refptr<net::IOBuffer> buffer, |
- size_t length, |
- unsigned int timeout, |
- const TransferCallback& callback)); |
- |
- MOCK_METHOD6(BulkTransfer, |
- void(UsbEndpointDirection direction, |
- uint8 endpoint, |
- scoped_refptr<net::IOBuffer> buffer, |
- size_t length, |
- unsigned int timeout, |
- const TransferCallback& callback)); |
- |
- MOCK_METHOD6(InterruptTransfer, |
- void(UsbEndpointDirection direction, |
- uint8 endpoint, |
- scoped_refptr<net::IOBuffer> buffer, |
- size_t length, |
- unsigned int timeout, |
- const TransferCallback& callback)); |
- |
- MOCK_METHOD8(IsochronousTransfer, |
- void(UsbEndpointDirection direction, |
- uint8 endpoint, |
- scoped_refptr<net::IOBuffer> buffer, |
- size_t length, |
- unsigned int packets, |
- unsigned int packet_length, |
- unsigned int timeout, |
- const TransferCallback& callback)); |
- |
- MOCK_METHOD1(ResetDevice, void(const ResultCallback& callback)); |
- MOCK_METHOD2(GetStringDescriptor, bool(uint8_t, base::string16*)); |
- MOCK_METHOD2(SetConfiguration, |
- void(int configuration_value, const ResultCallback& callback)); |
- MOCK_METHOD2(ClaimInterface, |
- void(int interface_number, const ResultCallback& callback)); |
- MOCK_METHOD1(ReleaseInterface, bool(int interface_number)); |
- MOCK_METHOD3(SetInterfaceAlternateSetting, |
- void(int interface_number, |
- int alternate_setting, |
- const ResultCallback& callback)); |
- |
- scoped_refptr<UsbDevice> GetDevice() const override { return device_; } |
- |
- void set_device(UsbDevice* device) { device_ = device; } |
- |
- protected: |
- UsbDevice* device_; |
- |
- virtual ~MockUsbDeviceHandle() {} |
-}; |
- |
-class MockUsbDevice : public UsbDevice { |
- public: |
- MockUsbDevice(uint16 vendor_id, uint16 product_id, uint32 unique_id) |
- : UsbDevice(vendor_id, |
- product_id, |
- unique_id, |
- base::string16(), |
- base::string16(), |
- base::string16()) {} |
- |
- MOCK_METHOD1(Open, void(const OpenCallback&)); |
- MOCK_METHOD1(Close, bool(scoped_refptr<UsbDeviceHandle>)); |
- MOCK_METHOD0(GetConfiguration, const device::UsbConfigDescriptor*()); |
- |
- private: |
- virtual ~MockUsbDevice() {} |
-}; |
- |
-class MockUsbService : public UsbService { |
- public: |
- explicit MockUsbService(scoped_refptr<UsbDevice> device) : device_(device) {} |
- |
- // Public wrapper around the protected base class method. |
- void NotifyDeviceAdded(scoped_refptr<UsbDevice> device) { |
- UsbService::NotifyDeviceAdded(device); |
- } |
- |
- // Public wrapper around the protected base class method. |
- void NotifyDeviceRemoved(scoped_refptr<UsbDevice> device) { |
- UsbService::NotifyDeviceRemoved(device); |
- } |
- |
- protected: |
- scoped_refptr<UsbDevice> GetDeviceById(uint32 unique_id) override { |
- EXPECT_EQ(unique_id, 0U); |
- return device_; |
- } |
- |
- void GetDevices(const GetDevicesCallback& callback) override { |
- std::vector<scoped_refptr<UsbDevice>> devices; |
- devices.push_back(device_); |
- callback.Run(devices); |
- } |
- |
- scoped_refptr<UsbDevice> device_; |
-}; |
- |
class UsbApiTest : public ShellApiTest { |
public: |
void SetUpOnMainThread() override { |
ShellApiTest::SetUpOnMainThread(); |
- mock_device_ = new MockUsbDevice(0, 0, 0); |
- mock_device_handle_ = new MockUsbDeviceHandle(); |
- mock_device_handle_->set_device(mock_device_.get()); |
+ mock_device_ = new MockUsbDevice(0, 0); |
+ mock_device_handle_ = new MockUsbDeviceHandle(mock_device_.get()); |
EXPECT_CALL(*mock_device_.get(), Open(_)) |
.WillRepeatedly(InvokeCallback<0>(mock_device_handle_)); |
- mock_service_.reset(new MockUsbService(mock_device_)); |
+ mock_service_.reset(new MockUsbService()); |
+ mock_service_->AddDevice(mock_device_); |
} |
protected: |
@@ -304,11 +195,11 @@ IN_PROC_BROWSER_TEST_F(UsbApiTest, OnDeviceAdded) { |
ASSERT_TRUE(LoadApp("api_test/usb/add_event")); |
ASSERT_TRUE(load_listener.WaitUntilSatisfied()); |
- scoped_refptr<MockUsbDevice> device(new MockUsbDevice(0x18D1, 0x58F0, 1)); |
- mock_service_->NotifyDeviceAdded(device); |
+ scoped_refptr<MockUsbDevice> device(new MockUsbDevice(0x18D1, 0x58F0)); |
+ mock_service_->AddDevice(device); |
- device = new MockUsbDevice(0x18D1, 0x58F1, 2); |
- mock_service_->NotifyDeviceAdded(device); |
+ device = new MockUsbDevice(0x18D1, 0x58F1); |
+ mock_service_->AddDevice(device); |
ASSERT_TRUE(result_listener.WaitUntilSatisfied()); |
} |
@@ -321,7 +212,7 @@ IN_PROC_BROWSER_TEST_F(UsbApiTest, OnDeviceRemoved) { |
ASSERT_TRUE(LoadApp("api_test/usb/remove_event")); |
ASSERT_TRUE(load_listener.WaitUntilSatisfied()); |
- mock_service_->NotifyDeviceRemoved(mock_device_); |
+ mock_service_->RemoveDevice(mock_device_); |
ASSERT_TRUE(result_listener.WaitUntilSatisfied()); |
} |
@@ -336,7 +227,7 @@ IN_PROC_BROWSER_TEST_F(UsbApiTest, GetUserSelectedDevices) { |
ASSERT_TRUE(LoadApp("api_test/usb/get_user_selected_devices")); |
ASSERT_TRUE(ready_listener.WaitUntilSatisfied()); |
- mock_service_->NotifyDeviceRemoved(mock_device_); |
+ mock_service_->RemoveDevice(mock_device_); |
ASSERT_TRUE(result_listener.WaitUntilSatisfied()); |
} |