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

Side by Side Diff: net/spdy/spdy_proxy_client_socket_unittest.cc

Issue 2675593002: Spdy{RstStream,GoAway}Status -> SpdyErrorCode. (Closed)
Patch Set: Merged master, which includes 145087791. Created 3 years, 10 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 unified diff | Download patch
« no previous file with comments | « net/spdy/spdy_proxy_client_socket.cc ('k') | net/spdy/spdy_session.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "net/spdy/spdy_proxy_client_socket.h" 5 #include "net/spdy/spdy_proxy_client_socket.h"
6 6
7 #include <memory>
7 #include <utility> 8 #include <utility>
8 9
9 #include "base/bind.h" 10 #include "base/bind.h"
10 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
11 #include "base/macros.h" 12 #include "base/macros.h"
12 #include "base/run_loop.h" 13 #include "base/run_loop.h"
13 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
14 #include "net/base/address_list.h" 15 #include "net/base/address_list.h"
15 #include "net/base/test_completion_callback.h" 16 #include "net/base/test_completion_callback.h"
16 #include "net/base/winsock_init.h" 17 #include "net/base/winsock_init.h"
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 AddAuthToCache(); 425 AddAuthToCache();
425 426
426 AssertConnectSucceeds(); 427 AssertConnectSucceeds();
427 428
428 AssertConnectionEstablished(); 429 AssertConnectionEstablished();
429 } 430 }
430 431
431 TEST_F(SpdyProxyClientSocketTest, ConnectRedirects) { 432 TEST_F(SpdyProxyClientSocketTest, ConnectRedirects) {
432 SpdySerializedFrame conn(ConstructConnectRequestFrame()); 433 SpdySerializedFrame conn(ConstructConnectRequestFrame());
433 SpdySerializedFrame rst( 434 SpdySerializedFrame rst(
434 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 435 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
435 MockWrite writes[] = { 436 MockWrite writes[] = {
436 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3), 437 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3),
437 }; 438 };
438 439
439 SpdySerializedFrame resp(ConstructConnectRedirectReplyFrame()); 440 SpdySerializedFrame resp(ConstructConnectRedirectReplyFrame());
440 MockRead reads[] = { 441 MockRead reads[] = {
441 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2), 442 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2),
442 }; 443 };
443 444
444 Initialize(reads, arraysize(reads), writes, arraysize(writes)); 445 Initialize(reads, arraysize(reads), writes, arraysize(writes));
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 AssertConnectFails(ERR_CONNECTION_CLOSED); 480 AssertConnectFails(ERR_CONNECTION_CLOSED);
480 481
481 ASSERT_FALSE(sock_->IsConnected()); 482 ASSERT_FALSE(sock_->IsConnected());
482 } 483 }
483 484
484 // ----------- WasEverUsed 485 // ----------- WasEverUsed
485 486
486 TEST_F(SpdyProxyClientSocketTest, WasEverUsedReturnsCorrectValues) { 487 TEST_F(SpdyProxyClientSocketTest, WasEverUsedReturnsCorrectValues) {
487 SpdySerializedFrame conn(ConstructConnectRequestFrame()); 488 SpdySerializedFrame conn(ConstructConnectRequestFrame());
488 SpdySerializedFrame rst( 489 SpdySerializedFrame rst(
489 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 490 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
490 MockWrite writes[] = { 491 MockWrite writes[] = {
491 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3), 492 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3),
492 }; 493 };
493 494
494 SpdySerializedFrame resp(ConstructConnectReplyFrame()); 495 SpdySerializedFrame resp(ConstructConnectReplyFrame());
495 MockRead reads[] = { 496 MockRead reads[] = {
496 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2), 497 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2),
497 }; 498 };
498 499
499 Initialize(reads, arraysize(reads), writes, arraysize(writes)); 500 Initialize(reads, arraysize(reads), writes, arraysize(writes));
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
970 971
971 ResumeAndRun(); 972 ResumeAndRun();
972 973
973 ASSERT_EQ(0, read_callback_.WaitForResult()); 974 ASSERT_EQ(0, read_callback_.WaitForResult());
974 } 975 }
975 976
976 // Reading from a disconnected socket is an error 977 // Reading from a disconnected socket is an error
977 TEST_F(SpdyProxyClientSocketTest, ReadOnDisconnectSocketReturnsNotConnected) { 978 TEST_F(SpdyProxyClientSocketTest, ReadOnDisconnectSocketReturnsNotConnected) {
978 SpdySerializedFrame conn(ConstructConnectRequestFrame()); 979 SpdySerializedFrame conn(ConstructConnectRequestFrame());
979 SpdySerializedFrame rst( 980 SpdySerializedFrame rst(
980 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 981 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
981 MockWrite writes[] = { 982 MockWrite writes[] = {
982 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3), 983 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3),
983 }; 984 };
984 985
985 SpdySerializedFrame resp(ConstructConnectReplyFrame()); 986 SpdySerializedFrame resp(ConstructConnectReplyFrame());
986 MockRead reads[] = { 987 MockRead reads[] = {
987 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2), 988 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2),
988 }; 989 };
989 990
990 Initialize(reads, arraysize(reads), writes, arraysize(writes)); 991 Initialize(reads, arraysize(reads), writes, arraysize(writes));
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1055 ResumeAndRun(); 1056 ResumeAndRun();
1056 scoped_refptr<IOBufferWithSize> buf(CreateBuffer(kMsg1, kLen1)); 1057 scoped_refptr<IOBufferWithSize> buf(CreateBuffer(kMsg1, kLen1));
1057 EXPECT_EQ(ERR_SOCKET_NOT_CONNECTED, 1058 EXPECT_EQ(ERR_SOCKET_NOT_CONNECTED,
1058 sock_->Write(buf.get(), buf->size(), CompletionCallback())); 1059 sock_->Write(buf.get(), buf->size(), CompletionCallback()));
1059 } 1060 }
1060 1061
1061 // Calling Write() on a disconnected socket is an error. 1062 // Calling Write() on a disconnected socket is an error.
1062 TEST_F(SpdyProxyClientSocketTest, WriteOnDisconnectedSocket) { 1063 TEST_F(SpdyProxyClientSocketTest, WriteOnDisconnectedSocket) {
1063 SpdySerializedFrame conn(ConstructConnectRequestFrame()); 1064 SpdySerializedFrame conn(ConstructConnectRequestFrame());
1064 SpdySerializedFrame rst( 1065 SpdySerializedFrame rst(
1065 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 1066 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
1066 MockWrite writes[] = { 1067 MockWrite writes[] = {
1067 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3), 1068 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3),
1068 }; 1069 };
1069 1070
1070 SpdySerializedFrame resp(ConstructConnectReplyFrame()); 1071 SpdySerializedFrame resp(ConstructConnectReplyFrame());
1071 SpdySerializedFrame msg1(ConstructBodyFrame(kMsg1, kLen1)); 1072 SpdySerializedFrame msg1(ConstructBodyFrame(kMsg1, kLen1));
1072 MockRead reads[] = { 1073 MockRead reads[] = {
1073 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2), 1074 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2),
1074 }; 1075 };
1075 1076
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1116 CloseSpdySession(ERR_ABORTED, std::string()); 1117 CloseSpdySession(ERR_ABORTED, std::string());
1117 1118
1118 EXPECT_THAT(write_callback_.WaitForResult(), IsError(ERR_CONNECTION_CLOSED)); 1119 EXPECT_THAT(write_callback_.WaitForResult(), IsError(ERR_CONNECTION_CLOSED));
1119 } 1120 }
1120 1121
1121 // If the socket is Disconnected with a pending Write(), the callback 1122 // If the socket is Disconnected with a pending Write(), the callback
1122 // should not be called. 1123 // should not be called.
1123 TEST_F(SpdyProxyClientSocketTest, DisconnectWithWritePending) { 1124 TEST_F(SpdyProxyClientSocketTest, DisconnectWithWritePending) {
1124 SpdySerializedFrame conn(ConstructConnectRequestFrame()); 1125 SpdySerializedFrame conn(ConstructConnectRequestFrame());
1125 SpdySerializedFrame rst( 1126 SpdySerializedFrame rst(
1126 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 1127 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
1127 MockWrite writes[] = { 1128 MockWrite writes[] = {
1128 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3), 1129 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3),
1129 }; 1130 };
1130 1131
1131 SpdySerializedFrame resp(ConstructConnectReplyFrame()); 1132 SpdySerializedFrame resp(ConstructConnectReplyFrame());
1132 MockRead reads[] = { 1133 MockRead reads[] = {
1133 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2), 1134 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2),
1134 }; 1135 };
1135 1136
1136 Initialize(reads, arraysize(reads), writes, arraysize(writes)); 1137 Initialize(reads, arraysize(reads), writes, arraysize(writes));
(...skipping 13 matching lines...) Expand all
1150 1151
1151 // Let the RST_STREAM write while |rst| is in-scope. 1152 // Let the RST_STREAM write while |rst| is in-scope.
1152 base::RunLoop().RunUntilIdle(); 1153 base::RunLoop().RunUntilIdle();
1153 } 1154 }
1154 1155
1155 // If the socket is Disconnected with a pending Read(), the callback 1156 // If the socket is Disconnected with a pending Read(), the callback
1156 // should not be called. 1157 // should not be called.
1157 TEST_F(SpdyProxyClientSocketTest, DisconnectWithReadPending) { 1158 TEST_F(SpdyProxyClientSocketTest, DisconnectWithReadPending) {
1158 SpdySerializedFrame conn(ConstructConnectRequestFrame()); 1159 SpdySerializedFrame conn(ConstructConnectRequestFrame());
1159 SpdySerializedFrame rst( 1160 SpdySerializedFrame rst(
1160 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 1161 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
1161 MockWrite writes[] = { 1162 MockWrite writes[] = {
1162 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3), 1163 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 3),
1163 }; 1164 };
1164 1165
1165 SpdySerializedFrame resp(ConstructConnectReplyFrame()); 1166 SpdySerializedFrame resp(ConstructConnectReplyFrame());
1166 MockRead reads[] = { 1167 MockRead reads[] = {
1167 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2), 1168 CreateMockRead(resp, 1, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2),
1168 }; 1169 };
1169 1170
1170 Initialize(reads, arraysize(reads), writes, arraysize(writes)); 1171 Initialize(reads, arraysize(reads), writes, arraysize(writes));
(...skipping 18 matching lines...) Expand all
1189 // If the socket is Reset when both a read and write are pending, 1190 // If the socket is Reset when both a read and write are pending,
1190 // both should be called back. 1191 // both should be called back.
1191 TEST_F(SpdyProxyClientSocketTest, RstWithReadAndWritePending) { 1192 TEST_F(SpdyProxyClientSocketTest, RstWithReadAndWritePending) {
1192 SpdySerializedFrame conn(ConstructConnectRequestFrame()); 1193 SpdySerializedFrame conn(ConstructConnectRequestFrame());
1193 MockWrite writes[] = { 1194 MockWrite writes[] = {
1194 CreateMockWrite(conn, 0, SYNCHRONOUS), 1195 CreateMockWrite(conn, 0, SYNCHRONOUS),
1195 }; 1196 };
1196 1197
1197 SpdySerializedFrame resp(ConstructConnectReplyFrame()); 1198 SpdySerializedFrame resp(ConstructConnectReplyFrame());
1198 SpdySerializedFrame rst( 1199 SpdySerializedFrame rst(
1199 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 1200 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
1200 MockRead reads[] = { 1201 MockRead reads[] = {
1201 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, ERR_IO_PENDING, 2), 1202 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, ERR_IO_PENDING, 2),
1202 CreateMockRead(rst, 3, ASYNC), MockRead(ASYNC, 0, 4) // EOF 1203 CreateMockRead(rst, 3, ASYNC), MockRead(ASYNC, 0, 4) // EOF
1203 }; 1204 };
1204 1205
1205 Initialize(reads, arraysize(reads), writes, arraysize(writes)); 1206 Initialize(reads, arraysize(reads), writes, arraysize(writes));
1206 1207
1207 AssertConnectSucceeds(); 1208 AssertConnectSucceeds();
1208 1209
1209 EXPECT_TRUE(sock_->IsConnected()); 1210 EXPECT_TRUE(sock_->IsConnected());
(...skipping 16 matching lines...) Expand all
1226 1227
1227 // Let the RST_STREAM write while |rst| is in-scope. 1228 // Let the RST_STREAM write while |rst| is in-scope.
1228 base::RunLoop().RunUntilIdle(); 1229 base::RunLoop().RunUntilIdle();
1229 } 1230 }
1230 1231
1231 // Makes sure the proxy client socket's source gets the expected NetLog events 1232 // Makes sure the proxy client socket's source gets the expected NetLog events
1232 // and only the expected NetLog events (No SpdySession events). 1233 // and only the expected NetLog events (No SpdySession events).
1233 TEST_F(SpdyProxyClientSocketTest, NetLog) { 1234 TEST_F(SpdyProxyClientSocketTest, NetLog) {
1234 SpdySerializedFrame conn(ConstructConnectRequestFrame()); 1235 SpdySerializedFrame conn(ConstructConnectRequestFrame());
1235 SpdySerializedFrame rst( 1236 SpdySerializedFrame rst(
1236 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 1237 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
1237 MockWrite writes[] = { 1238 MockWrite writes[] = {
1238 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 5), 1239 CreateMockWrite(conn, 0, SYNCHRONOUS), CreateMockWrite(rst, 5),
1239 }; 1240 };
1240 1241
1241 SpdySerializedFrame resp(ConstructConnectReplyFrame()); 1242 SpdySerializedFrame resp(ConstructConnectReplyFrame());
1242 SpdySerializedFrame msg1(ConstructBodyFrame(kMsg1, kLen1)); 1243 SpdySerializedFrame msg1(ConstructBodyFrame(kMsg1, kLen1));
1243 MockRead reads[] = { 1244 MockRead reads[] = {
1244 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, ERR_IO_PENDING, 2), 1245 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, ERR_IO_PENDING, 2),
1245 CreateMockRead(msg1, 3, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 4), 1246 CreateMockRead(msg1, 3, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 4),
1246 }; 1247 };
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1319 // read callback causes the socket to be deleted, the write callback should 1320 // read callback causes the socket to be deleted, the write callback should
1320 // not be called. 1321 // not be called.
1321 TEST_F(SpdyProxyClientSocketTest, RstWithReadAndWritePendingDelete) { 1322 TEST_F(SpdyProxyClientSocketTest, RstWithReadAndWritePendingDelete) {
1322 SpdySerializedFrame conn(ConstructConnectRequestFrame()); 1323 SpdySerializedFrame conn(ConstructConnectRequestFrame());
1323 MockWrite writes[] = { 1324 MockWrite writes[] = {
1324 CreateMockWrite(conn, 0, SYNCHRONOUS), 1325 CreateMockWrite(conn, 0, SYNCHRONOUS),
1325 }; 1326 };
1326 1327
1327 SpdySerializedFrame resp(ConstructConnectReplyFrame()); 1328 SpdySerializedFrame resp(ConstructConnectReplyFrame());
1328 SpdySerializedFrame rst( 1329 SpdySerializedFrame rst(
1329 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 1330 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
1330 MockRead reads[] = { 1331 MockRead reads[] = {
1331 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, ERR_IO_PENDING, 2), 1332 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, ERR_IO_PENDING, 2),
1332 CreateMockRead(rst, 3, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 4), 1333 CreateMockRead(rst, 3, ASYNC), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 4),
1333 }; 1334 };
1334 1335
1335 Initialize(reads, arraysize(reads), writes, arraysize(writes)); 1336 Initialize(reads, arraysize(reads), writes, arraysize(writes));
1336 1337
1337 AssertConnectSucceeds(); 1338 AssertConnectSucceeds();
1338 1339
1339 EXPECT_TRUE(sock_->IsConnected()); 1340 EXPECT_TRUE(sock_->IsConnected());
(...skipping 14 matching lines...) Expand all
1354 1355
1355 EXPECT_FALSE(sock_.get()); 1356 EXPECT_FALSE(sock_.get());
1356 EXPECT_TRUE(read_callback.have_result()); 1357 EXPECT_TRUE(read_callback.have_result());
1357 EXPECT_FALSE(write_callback_.have_result()); 1358 EXPECT_FALSE(write_callback_.have_result());
1358 1359
1359 // Let the RST_STREAM write while |rst| is in-scope. 1360 // Let the RST_STREAM write while |rst| is in-scope.
1360 base::RunLoop().RunUntilIdle(); 1361 base::RunLoop().RunUntilIdle();
1361 } 1362 }
1362 1363
1363 } // namespace net 1364 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_proxy_client_socket.cc ('k') | net/spdy/spdy_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698