| Index: device/hid/hid_connection_unittest.cc
|
| diff --git a/device/hid/hid_connection_unittest.cc b/device/hid/hid_connection_unittest.cc
|
| index 903cf5a5deed9417ba4a59a6a5c1e3108161b8ea..5654fc0a802ddb98a9a4b1e0babbdf8a3695bf0b 100644
|
| --- a/device/hid/hid_connection_unittest.cc
|
| +++ b/device/hid/hid_connection_unittest.cc
|
| @@ -21,14 +21,39 @@ namespace {
|
|
|
| using net::IOBufferWithSize;
|
|
|
| -class TestCompletionCallback {
|
| +class TestConnectCallback {
|
| public:
|
| - TestCompletionCallback()
|
| - : read_callback_(base::Bind(&TestCompletionCallback::SetReadResult,
|
| - base::Unretained(this))),
|
| - write_callback_(base::Bind(&TestCompletionCallback::SetWriteResult,
|
| + TestConnectCallback()
|
| + : callback_(base::Bind(&TestConnectCallback::SetConnection,
|
| + base::Unretained(this))) {}
|
| + ~TestConnectCallback() {}
|
| +
|
| + void SetConnection(scoped_refptr<HidConnection> connection) {
|
| + connection_ = connection;
|
| + run_loop_.Quit();
|
| + }
|
| +
|
| + scoped_refptr<HidConnection> WaitForConnection() {
|
| + run_loop_.Run();
|
| + return connection_;
|
| + }
|
| +
|
| + const HidService::ConnectCallback& callback() { return callback_; }
|
| +
|
| + private:
|
| + HidService::ConnectCallback callback_;
|
| + base::RunLoop run_loop_;
|
| + scoped_refptr<HidConnection> connection_;
|
| +};
|
| +
|
| +class TestIoCallback {
|
| + public:
|
| + TestIoCallback()
|
| + : read_callback_(
|
| + base::Bind(&TestIoCallback::SetReadResult, base::Unretained(this))),
|
| + write_callback_(base::Bind(&TestIoCallback::SetWriteResult,
|
| base::Unretained(this))) {}
|
| - ~TestCompletionCallback() {}
|
| + ~TestIoCallback() {}
|
|
|
| void SetReadResult(bool success,
|
| scoped_refptr<net::IOBuffer> buffer,
|
| @@ -128,7 +153,9 @@ class HidConnectionTest : public testing::Test {
|
| TEST_F(HidConnectionTest, ReadWrite) {
|
| if (!UsbTestGadget::IsTestEnabled()) return;
|
|
|
| - scoped_refptr<HidConnection> conn = service_->Connect(device_id_);
|
| + TestConnectCallback connect_callback;
|
| + service_->Connect(device_id_, connect_callback.callback());
|
| + scoped_refptr<HidConnection> conn = connect_callback.WaitForConnection();
|
| ASSERT_TRUE(conn.get());
|
|
|
| for (int i = 0; i < 8; ++i) {
|
| @@ -138,11 +165,11 @@ TEST_F(HidConnectionTest, ReadWrite) {
|
| buffer->data()[j] = i + j - 1;
|
| }
|
|
|
| - TestCompletionCallback write_callback;
|
| + TestIoCallback write_callback;
|
| conn->Write(buffer, buffer->size(), write_callback.write_callback());
|
| ASSERT_TRUE(write_callback.WaitForResult());
|
|
|
| - TestCompletionCallback read_callback;
|
| + TestIoCallback read_callback;
|
| conn->Read(read_callback.read_callback());
|
| ASSERT_TRUE(read_callback.WaitForResult());
|
| ASSERT_EQ(9UL, read_callback.size());
|
|
|