diff options
author | sammc@chromium.org <sammc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-30 11:28:43 +0000 |
---|---|---|
committer | sammc@chromium.org <sammc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-30 11:28:43 +0000 |
commit | e8a5608bbec4c3ddfa491b01c122b3900a21980f (patch) | |
tree | 655237d35d31c9e6ed889479b6a98ecb40a85ff1 /extensions/renderer/api | |
parent | 0a5fdad7e4f2104722baecabbe16990da1911b8f (diff) | |
download | chromium_src-e8a5608bbec4c3ddfa491b01c122b3900a21980f.zip chromium_src-e8a5608bbec4c3ddfa491b01c122b3900a21980f.tar.gz chromium_src-e8a5608bbec4c3ddfa491b01c122b3900a21980f.tar.bz2 |
Implement chrome.serial.getDevices() on top of the Mojo serial service.
This does not change Chrome to use the new implementation.
BUG=389016
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=286122
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=286199
Review URL: https://codereview.chromium.org/391413005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286480 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'extensions/renderer/api')
-rw-r--r-- | extensions/renderer/api/serial/DEPS | 3 | ||||
-rw-r--r-- | extensions/renderer/api/serial/serial_api_unittest.cc | 65 |
2 files changed, 68 insertions, 0 deletions
diff --git a/extensions/renderer/api/serial/DEPS b/extensions/renderer/api/serial/DEPS new file mode 100644 index 0000000..e273c39 --- /dev/null +++ b/extensions/renderer/api/serial/DEPS @@ -0,0 +1,3 @@ +include_rules = [ + "+device/serial", +] diff --git a/extensions/renderer/api/serial/serial_api_unittest.cc b/extensions/renderer/api/serial/serial_api_unittest.cc new file mode 100644 index 0000000..3f551ca --- /dev/null +++ b/extensions/renderer/api/serial/serial_api_unittest.cc @@ -0,0 +1,65 @@ +// Copyright 2014 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 "device/serial/serial_device_enumerator.h" +#include "device/serial/serial_service_impl.h" +#include "extensions/renderer/api_test_base.h" +#include "grit/extensions_renderer_resources.h" + +namespace extensions { + +namespace { + +class FakeSerialDeviceEnumerator : public device::SerialDeviceEnumerator { + virtual mojo::Array<device::serial::DeviceInfoPtr> GetDevices() OVERRIDE { + mojo::Array<device::serial::DeviceInfoPtr> result(3); + result[0] = device::serial::DeviceInfo::New(); + result[0]->path = "device"; + result[0]->vendor_id = 1234; + result[0]->has_vendor_id = true; + result[0]->product_id = 5678; + result[0]->has_product_id = true; + result[0]->display_name = "foo"; + result[1] = device::serial::DeviceInfo::New(); + result[1]->path = "another_device"; + // These IDs should be ignored. + result[1]->vendor_id = 1234; + result[1]->product_id = 5678; + result[2] = device::serial::DeviceInfo::New(); + result[2]->display_name = ""; + return result.Pass(); + } +}; + +} // namespace + +void CreateSerialService( + mojo::InterfaceRequest<device::serial::SerialService> request) { + mojo::BindToRequest( + new device::SerialServiceImpl( + new device::SerialConnectionFactory( + device::SerialConnectionFactory::IoHandlerFactory(), + base::MessageLoopProxy::current()), + scoped_ptr<device::SerialDeviceEnumerator>( + new FakeSerialDeviceEnumerator)), + &request); +} + +class SerialApiTest : public ApiTestBase { + public: + virtual void SetUp() OVERRIDE { + ApiTestBase::SetUp(); + env()->RegisterModule("serial", IDR_SERIAL_CUSTOM_BINDINGS_JS); + env()->RegisterModule("serial_service", IDR_SERIAL_SERVICE_JS); + env()->RegisterModule("device/serial/serial.mojom", IDR_SERIAL_MOJOM_JS); + service_provider()->AddService<device::serial::SerialService>( + base::Bind(CreateSerialService)); + } +}; + +TEST_F(SerialApiTest, GetDevices) { + RunTest("serial_unittest.js", "testGetDevices"); +} + +} // namespace extensions |