| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "device/serial/serial_connection.h" | 5 #include "device/serial/serial_connection.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 |
| 9 #include <memory> |
| 8 #include <string> | 10 #include <string> |
| 9 #include <utility> | 11 #include <utility> |
| 10 | 12 |
| 11 #include "base/bind.h" | 13 #include "base/bind.h" |
| 12 #include "base/macros.h" | 14 #include "base/macros.h" |
| 13 #include "base/message_loop/message_loop.h" | 15 #include "base/message_loop/message_loop.h" |
| 14 #include "base/run_loop.h" | 16 #include "base/run_loop.h" |
| 15 #include "base/strings/string_piece.h" | 17 #include "base/strings/string_piece.h" |
| 16 #include "device/serial/data_receiver.h" | 18 #include "device/serial/data_receiver.h" |
| 17 #include "device/serial/data_sender.h" | 19 #include "device/serial/data_sender.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 expected_event_(EVENT_NONE) {} | 68 expected_event_(EVENT_NONE) {} |
| 67 | 69 |
| 68 void SetUp() override { | 70 void SetUp() override { |
| 69 message_loop_.reset(new base::MessageLoop); | 71 message_loop_.reset(new base::MessageLoop); |
| 70 mojo::InterfacePtr<serial::SerialService> service; | 72 mojo::InterfacePtr<serial::SerialService> service; |
| 71 new SerialServiceImpl( | 73 new SerialServiceImpl( |
| 72 new SerialConnectionFactory( | 74 new SerialConnectionFactory( |
| 73 base::Bind(&SerialConnectionTest::CreateIoHandler, | 75 base::Bind(&SerialConnectionTest::CreateIoHandler, |
| 74 base::Unretained(this)), | 76 base::Unretained(this)), |
| 75 base::ThreadTaskRunnerHandle::Get()), | 77 base::ThreadTaskRunnerHandle::Get()), |
| 76 scoped_ptr<SerialDeviceEnumerator>(new FakeSerialDeviceEnumerator), | 78 std::unique_ptr<SerialDeviceEnumerator>(new FakeSerialDeviceEnumerator), |
| 77 mojo::GetProxy(&service)); | 79 mojo::GetProxy(&service)); |
| 78 service.set_connection_error_handler(base::Bind( | 80 service.set_connection_error_handler(base::Bind( |
| 79 &SerialConnectionTest::OnConnectionError, base::Unretained(this))); | 81 &SerialConnectionTest::OnConnectionError, base::Unretained(this))); |
| 80 mojo::InterfacePtr<serial::DataSink> sink; | 82 mojo::InterfacePtr<serial::DataSink> sink; |
| 81 mojo::InterfacePtr<serial::DataSource> source; | 83 mojo::InterfacePtr<serial::DataSource> source; |
| 82 mojo::InterfacePtr<serial::DataSourceClient> source_client; | 84 mojo::InterfacePtr<serial::DataSourceClient> source_client; |
| 83 mojo::InterfaceRequest<serial::DataSourceClient> source_client_request = | 85 mojo::InterfaceRequest<serial::DataSourceClient> source_client_request = |
| 84 mojo::GetProxy(&source_client); | 86 mojo::GetProxy(&source_client); |
| 85 service->Connect("device", serial::ConnectionOptions::New(), | 87 service->Connect("device", serial::ConnectionOptions::New(), |
| 86 mojo::GetProxy(&connection_), mojo::GetProxy(&sink), | 88 mojo::GetProxy(&connection_), mojo::GetProxy(&sink), |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 send_error_ = serial::SendError::NONE; | 158 send_error_ = serial::SendError::NONE; |
| 157 EventReceived(EVENT_DATA_SENT); | 159 EventReceived(EVENT_DATA_SENT); |
| 158 } | 160 } |
| 159 | 161 |
| 160 void OnSendError(uint32_t bytes_sent, int32_t error) { | 162 void OnSendError(uint32_t bytes_sent, int32_t error) { |
| 161 bytes_sent_ += bytes_sent; | 163 bytes_sent_ += bytes_sent; |
| 162 send_error_ = static_cast<serial::SendError>(error); | 164 send_error_ = static_cast<serial::SendError>(error); |
| 163 EventReceived(EVENT_SEND_ERROR); | 165 EventReceived(EVENT_SEND_ERROR); |
| 164 } | 166 } |
| 165 | 167 |
| 166 void OnDataReceived(scoped_ptr<ReadOnlyBuffer> buffer) { | 168 void OnDataReceived(std::unique_ptr<ReadOnlyBuffer> buffer) { |
| 167 data_received_ += std::string(buffer->GetData(), buffer->GetSize()); | 169 data_received_ += std::string(buffer->GetData(), buffer->GetSize()); |
| 168 buffer->Done(buffer->GetSize()); | 170 buffer->Done(buffer->GetSize()); |
| 169 receive_error_ = serial::ReceiveError::NONE; | 171 receive_error_ = serial::ReceiveError::NONE; |
| 170 EventReceived(EVENT_DATA_RECEIVED); | 172 EventReceived(EVENT_DATA_RECEIVED); |
| 171 } | 173 } |
| 172 | 174 |
| 173 void OnReceiveError(int32_t error) { | 175 void OnReceiveError(int32_t error) { |
| 174 receive_error_ = static_cast<serial::ReceiveError>(error); | 176 receive_error_ = static_cast<serial::ReceiveError>(error); |
| 175 EventReceived(EVENT_RECEIVE_ERROR); | 177 EventReceived(EVENT_RECEIVE_ERROR); |
| 176 } | 178 } |
| 177 | 179 |
| 178 void OnConnectionError() { | 180 void OnConnectionError() { |
| 179 EventReceived(EVENT_ERROR); | 181 EventReceived(EVENT_ERROR); |
| 180 FAIL() << "Connection error"; | 182 FAIL() << "Connection error"; |
| 181 } | 183 } |
| 182 | 184 |
| 183 mojo::Array<serial::DeviceInfoPtr> devices_; | 185 mojo::Array<serial::DeviceInfoPtr> devices_; |
| 184 serial::ConnectionInfoPtr info_; | 186 serial::ConnectionInfoPtr info_; |
| 185 serial::DeviceControlSignalsPtr signals_; | 187 serial::DeviceControlSignalsPtr signals_; |
| 186 bool connected_; | 188 bool connected_; |
| 187 bool success_; | 189 bool success_; |
| 188 int bytes_sent_; | 190 int bytes_sent_; |
| 189 serial::SendError send_error_; | 191 serial::SendError send_error_; |
| 190 serial::ReceiveError receive_error_; | 192 serial::ReceiveError receive_error_; |
| 191 std::string data_received_; | 193 std::string data_received_; |
| 192 Event expected_event_; | 194 Event expected_event_; |
| 193 | 195 |
| 194 scoped_ptr<base::MessageLoop> message_loop_; | 196 std::unique_ptr<base::MessageLoop> message_loop_; |
| 195 base::Closure stop_run_loop_; | 197 base::Closure stop_run_loop_; |
| 196 mojo::InterfacePtr<serial::Connection> connection_; | 198 mojo::InterfacePtr<serial::Connection> connection_; |
| 197 scoped_ptr<DataSender> sender_; | 199 std::unique_ptr<DataSender> sender_; |
| 198 scoped_refptr<DataReceiver> receiver_; | 200 scoped_refptr<DataReceiver> receiver_; |
| 199 scoped_refptr<TestSerialIoHandler> io_handler_; | 201 scoped_refptr<TestSerialIoHandler> io_handler_; |
| 200 | 202 |
| 201 private: | 203 private: |
| 202 DISALLOW_COPY_AND_ASSIGN(SerialConnectionTest); | 204 DISALLOW_COPY_AND_ASSIGN(SerialConnectionTest); |
| 203 }; | 205 }; |
| 204 | 206 |
| 205 const uint32_t SerialConnectionTest::kBufferSize = 10; | 207 const uint32_t SerialConnectionTest::kBufferSize = 10; |
| 206 | 208 |
| 207 TEST_F(SerialConnectionTest, GetInfo) { | 209 TEST_F(SerialConnectionTest, GetInfo) { |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 WaitForEvent(EVENT_DATA_SENT); | 332 WaitForEvent(EVENT_DATA_SENT); |
| 331 EXPECT_EQ(serial::SendError::NONE, send_error_); | 333 EXPECT_EQ(serial::SendError::NONE, send_error_); |
| 332 EXPECT_EQ(4, bytes_sent_); | 334 EXPECT_EQ(4, bytes_sent_); |
| 333 ASSERT_NO_FATAL_FAILURE(Receive()); | 335 ASSERT_NO_FATAL_FAILURE(Receive()); |
| 334 WaitForEvent(EVENT_DATA_RECEIVED); | 336 WaitForEvent(EVENT_DATA_RECEIVED); |
| 335 EXPECT_EQ("data", data_received_); | 337 EXPECT_EQ("data", data_received_); |
| 336 EXPECT_EQ(serial::ReceiveError::NONE, receive_error_); | 338 EXPECT_EQ(serial::ReceiveError::NONE, receive_error_); |
| 337 } | 339 } |
| 338 | 340 |
| 339 } // namespace device | 341 } // namespace device |
| OLD | NEW |