namespace {
class FakeSerialDeviceEnumerator : public SerialDeviceEnumerator {
- virtual mojo::Array<serial::DeviceInfoPtr> GetDevices() OVERRIDE {
+ mojo::Array<serial::DeviceInfoPtr> GetDevices() override {
mojo::Array<serial::DeviceInfoPtr> devices(1);
devices[0] = serial::DeviceInfo::New();
devices[0]->path = "device";
receive_error_(serial::RECEIVE_ERROR_NONE),
expected_event_(EVENT_NONE) {}
- virtual void SetUp() OVERRIDE {
+ void SetUp() override {
message_loop_.reset(new base::MessageLoop);
mojo::InterfacePtr<serial::SerialService> service;
mojo::BindToProxy(
mojo::InterfacePtr<serial::DataSource> producer;
service->Connect("device",
serial::ConnectionOptions::New(),
- mojo::Get(&connection_),
- mojo::Get(&consumer),
- mojo::Get(&producer));
+ mojo::GetProxy(&connection_),
+ mojo::GetProxy(&consumer),
+ mojo::GetProxy(&producer));
sender_.reset(new DataSender(
consumer.Pass(), kBufferSize, serial::SEND_ERROR_DISCONNECTED));
receiver_ = new DataReceiver(
EventReceived(EVENT_RECEIVE_ERROR);
}
- virtual void OnConnectionError() OVERRIDE {
+ void OnConnectionError() override {
EventReceived(EVENT_ERROR);
FAIL() << "Connection error";
}
EXPECT_EQ(1, io_handler_->flushes());
}
-TEST_F(SerialConnectionTest, Disconnect) {
+TEST_F(SerialConnectionTest, DisconnectWithSend) {
connection_.reset();
io_handler_->set_send_callback(base::Bind(base::DoNothing));
ASSERT_NO_FATAL_FAILURE(Send("data"));
WaitForEvent(EVENT_SEND_ERROR);
EXPECT_EQ(serial::SEND_ERROR_DISCONNECTED, send_error_);
EXPECT_EQ(0, bytes_sent_);
+ EXPECT_TRUE(io_handler_->HasOneRef());
+}
+
+TEST_F(SerialConnectionTest, DisconnectWithReceive) {
+ connection_.reset();
ASSERT_NO_FATAL_FAILURE(Receive());
WaitForEvent(EVENT_RECEIVE_ERROR);
EXPECT_EQ(serial::RECEIVE_ERROR_DISCONNECTED, receive_error_);