Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(609)

Unified Diff: net/socket/sequenced_socket_data_unittest.cc

Issue 1117863003: Convert the remaining three SpdyNetworkTransactionTests to SequencedSocketData (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_network_transaction_unittest.cc ('k') | net/socket/socket_test_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) {
« no previous file with comments | « net/http/http_network_transaction_unittest.cc ('k') | net/socket/socket_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698