| Index: chrome/browser/extensions/api/serial/serial_apitest.cc
|
| diff --git a/chrome/browser/extensions/api/serial/serial_apitest.cc b/chrome/browser/extensions/api/serial/serial_apitest.cc
|
| deleted file mode 100644
|
| index 5734097620e951b13c54c8fd7c55b7b74021c575..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/api/serial/serial_apitest.cc
|
| +++ /dev/null
|
| @@ -1,197 +0,0 @@
|
| -// Copyright 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 <deque>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "chrome/browser/extensions/api/serial/serial_api.h"
|
| -#include "chrome/browser/extensions/api/serial/serial_connection.h"
|
| -#include "chrome/browser/extensions/extension_apitest.h"
|
| -#include "chrome/browser/extensions/extension_function_test_utils.h"
|
| -#include "chrome/browser/extensions/extension_test_message_listener.h"
|
| -#include "chrome/browser/ui/browser.h"
|
| -#include "chrome/common/extensions/api/serial.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "extensions/browser/extension_function.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -
|
| -using testing::_;
|
| -using testing::Return;
|
| -
|
| -using content::BrowserThread;
|
| -
|
| -namespace {
|
| -
|
| -class SerialApiTest : public ExtensionApiTest {
|
| - public:
|
| - SerialApiTest() {}
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -namespace extensions {
|
| -
|
| -class FakeSerialGetDevicesFunction : public AsyncExtensionFunction {
|
| - public:
|
| - virtual bool RunAsync() OVERRIDE {
|
| - base::ListValue* devices = new base::ListValue();
|
| - base::DictionaryValue* device0 = new base::DictionaryValue();
|
| - device0->SetString("path", "/dev/fakeserial");
|
| - base::DictionaryValue* device1 = new base::DictionaryValue();
|
| - device1->SetString("path", "\\\\COM800\\");
|
| - devices->Append(device0);
|
| - devices->Append(device1);
|
| - SetResult(devices);
|
| - SendResponse(true);
|
| - return true;
|
| - }
|
| - protected:
|
| - virtual ~FakeSerialGetDevicesFunction() {}
|
| -};
|
| -
|
| -class FakeEchoSerialIoHandler : public device::SerialIoHandler {
|
| - public:
|
| - explicit FakeEchoSerialIoHandler() : opened_(false) {}
|
| -
|
| - virtual void Open(const std::string& port,
|
| - const OpenCompleteCallback& callback) OVERRIDE {
|
| - DCHECK(!opened_);
|
| - opened_ = true;
|
| - callback.Run(true);
|
| - }
|
| -
|
| - virtual bool ConfigurePort(
|
| - const device::serial::ConnectionOptions& options) OVERRIDE {
|
| - return true;
|
| - }
|
| -
|
| - virtual void ReadImpl() OVERRIDE {}
|
| -
|
| - virtual void CancelReadImpl() OVERRIDE {
|
| - QueueReadCompleted(0, read_cancel_reason());
|
| - }
|
| -
|
| - virtual void WriteImpl() OVERRIDE {
|
| - DCHECK(pending_read_buffer());
|
| - DCHECK_LE(pending_write_buffer_len(), pending_read_buffer_len());
|
| - memcpy(pending_read_buffer()->data(),
|
| - pending_write_buffer()->data(),
|
| - pending_write_buffer_len());
|
| - QueueReadCompleted(pending_write_buffer_len(),
|
| - device::serial::RECEIVE_ERROR_NONE);
|
| - QueueWriteCompleted(pending_write_buffer_len(),
|
| - device::serial::SEND_ERROR_NONE);
|
| - }
|
| -
|
| - virtual void CancelWriteImpl() OVERRIDE {
|
| - QueueWriteCompleted(0, write_cancel_reason());
|
| - }
|
| -
|
| - virtual device::serial::DeviceControlSignalsPtr GetControlSignals()
|
| - const OVERRIDE {
|
| - device::serial::DeviceControlSignalsPtr signals(
|
| - device::serial::DeviceControlSignals::New());
|
| - signals->dcd = true;
|
| - signals->cts = true;
|
| - signals->ri = true;
|
| - signals->dsr = true;
|
| - return signals.Pass();
|
| - }
|
| -
|
| - virtual device::serial::ConnectionInfoPtr GetPortInfo() const OVERRIDE {
|
| - device::serial::ConnectionInfoPtr info(
|
| - device::serial::ConnectionInfo::New());
|
| - info->bitrate = 9600;
|
| - info->data_bits = device::serial::DATA_BITS_EIGHT;
|
| - info->parity_bit = device::serial::PARITY_BIT_NO;
|
| - info->stop_bits = device::serial::STOP_BITS_ONE;
|
| - info->cts_flow_control = false;
|
| - return info.Pass();
|
| - }
|
| -
|
| - virtual bool Flush() const OVERRIDE { return true; }
|
| -
|
| - MOCK_METHOD1(SetControlSignals,
|
| - bool(const device::serial::HostControlSignals&));
|
| -
|
| - protected:
|
| - virtual ~FakeEchoSerialIoHandler() {}
|
| -
|
| - private:
|
| - bool opened_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(FakeEchoSerialIoHandler);
|
| -};
|
| -
|
| -class FakeSerialConnectFunction : public api::SerialConnectFunction {
|
| - protected:
|
| - virtual SerialConnection* CreateSerialConnection(
|
| - const std::string& port,
|
| - const std::string& owner_extension_id) const OVERRIDE {
|
| - scoped_refptr<FakeEchoSerialIoHandler> io_handler =
|
| - new FakeEchoSerialIoHandler;
|
| - EXPECT_CALL(*io_handler, SetControlSignals(_)).Times(1).WillOnce(
|
| - Return(true));
|
| - SerialConnection* serial_connection =
|
| - new SerialConnection(port, owner_extension_id);
|
| - serial_connection->SetIoHandlerForTest(io_handler);
|
| - return serial_connection;
|
| - }
|
| -
|
| - protected:
|
| - virtual ~FakeSerialConnectFunction() {}
|
| -};
|
| -
|
| -} // namespace extensions
|
| -
|
| -ExtensionFunction* FakeSerialGetDevicesFunctionFactory() {
|
| - return new extensions::FakeSerialGetDevicesFunction();
|
| -}
|
| -
|
| -ExtensionFunction* FakeSerialConnectFunctionFactory() {
|
| - return new extensions::FakeSerialConnectFunction();
|
| -}
|
| -
|
| -// Disable SIMULATE_SERIAL_PORTS only if all the following are true:
|
| -//
|
| -// 1. You have an Arduino or compatible board attached to your machine and
|
| -// properly appearing as the first virtual serial port ("first" is very loosely
|
| -// defined as whichever port shows up in serial.getPorts). We've tested only
|
| -// the Atmega32u4 Breakout Board and Arduino Leonardo; note that both these
|
| -// boards are based on the Atmel ATmega32u4, rather than the more common
|
| -// Arduino '328p with either FTDI or '8/16u2 USB interfaces. TODO: test more
|
| -// widely.
|
| -//
|
| -// 2. Your user has permission to read/write the port. For example, this might
|
| -// mean that your user is in the "tty" or "uucp" group on Ubuntu flavors of
|
| -// Linux, or else that the port's path (e.g., /dev/ttyACM0) has global
|
| -// read/write permissions.
|
| -//
|
| -// 3. You have uploaded a program to the board that does a byte-for-byte echo
|
| -// on the virtual serial port at 57600 bps. An example is at
|
| -// chrome/test/data/extensions/api_test/serial/api/serial_arduino_test.ino.
|
| -//
|
| -#define SIMULATE_SERIAL_PORTS (1)
|
| -IN_PROC_BROWSER_TEST_F(SerialApiTest, SerialFakeHardware) {
|
| - ResultCatcher catcher;
|
| - catcher.RestrictToProfile(browser()->profile());
|
| -
|
| -#if SIMULATE_SERIAL_PORTS
|
| - ASSERT_TRUE(extensions::ExtensionFunctionDispatcher::OverrideFunction(
|
| - "serial.getDevices", FakeSerialGetDevicesFunctionFactory));
|
| - ASSERT_TRUE(extensions::ExtensionFunctionDispatcher::OverrideFunction(
|
| - "serial.connect", FakeSerialConnectFunctionFactory));
|
| -#endif
|
| -
|
| - ASSERT_TRUE(RunExtensionTest("serial/api")) << message_;
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SerialApiTest, SerialRealHardware) {
|
| - ResultCatcher catcher;
|
| - catcher.RestrictToProfile(browser()->profile());
|
| -
|
| - ASSERT_TRUE(RunExtensionTest("serial/real_hardware")) << message_;
|
| -}
|
|
|