| Index: net/socket/sequenced_socket_data_unittest.cc
|
| diff --git a/net/socket/sequenced_socket_data_unittest.cc b/net/socket/sequenced_socket_data_unittest.cc
|
| index e0ed3201d104df2bec7769051d931fa04a056580..920666e74809623fa31e4c820b22b7eddd6cd21c 100644
|
| --- a/net/socket/sequenced_socket_data_unittest.cc
|
| +++ b/net/socket/sequenced_socket_data_unittest.cc
|
| @@ -194,6 +194,7 @@ class SequencedSocketDataTest : public testing::Test {
|
| void AssertSyncWriteEquals(const char* data, int len);
|
| void AssertAsyncWriteEquals(const char* data, int len);
|
| void AssertWriteReturns(const char* data, int len, int rv);
|
| + void CompleteRead();
|
|
|
| // When a given test completes, data_.at_eof() is expected to
|
| // match the value specified here. Most test should consume all
|
| @@ -313,6 +314,10 @@ void SequencedSocketDataTest::AssertAsyncWriteEquals(const char* data,
|
| ASSERT_EQ(len, write_callback_.WaitForResult());
|
| }
|
|
|
| +void SequencedSocketDataTest::CompleteRead() {
|
| + data_->CompleteRead();
|
| +}
|
| +
|
| void SequencedSocketDataTest::AssertWriteReturns(const char* data,
|
| int len,
|
| int rv) {
|
| @@ -603,6 +608,28 @@ TEST_F(SequencedSocketDataTest, HangingRead) {
|
| ASSERT_FALSE(read_callback_.have_result());
|
| }
|
|
|
| +TEST_F(SequencedSocketDataTest, CompleteRead) {
|
| + MockRead reads[] = {
|
| + MockRead(ASYNC, ERR_IO_PENDING, 0), MockRead(ASYNC, kMsg1, kLen1, 1),
|
| + };
|
| +
|
| + Initialize(reads, arraysize(reads), nullptr, 0);
|
| +
|
| + AssertReadReturns(kLen1, ERR_IO_PENDING);
|
| + ASSERT_FALSE(read_callback_.have_result());
|
| +
|
| + // Even though the read is scheduled to complete at sequence number 0,
|
| + // verify that the read callback in not called, until CompleteRead() is.
|
| + base::MessageLoop::current()->RunUntilIdle();
|
| + ASSERT_FALSE(read_callback_.have_result());
|
| +
|
| + CompleteRead();
|
| +
|
| + ASSERT_TRUE(read_callback_.have_result());
|
| + ASSERT_EQ(kLen1, read_callback_.WaitForResult());
|
| + AssertReadBufferEquals(kMsg1, kLen1);
|
| +}
|
| +
|
| // ----------- Write
|
|
|
| TEST_F(SequencedSocketDataTest, SingleSyncWriteTooEarly) {
|
|
|