Index: net/websockets/websocket_stream_test.cc |
diff --git a/net/websockets/websocket_stream_test.cc b/net/websockets/websocket_stream_test.cc |
index 91ccdde04359ca0ba34672b8817538ee7418970c..4e259a9438dd142dc68cd8e8bb56f954fd63ac1c 100644 |
--- a/net/websockets/websocket_stream_test.cc |
+++ b/net/websockets/websocket_stream_test.cc |
@@ -92,6 +92,7 @@ class WebSocketStreamCreateTest : public ::testing::Test, |
const std::string& socket_path, |
const std::vector<std::string>& sub_protocols, |
const url::Origin& origin, |
+ const std::string& send_additional_request_headers, |
const std::string& extra_request_headers, |
const std::string& response_body, |
std::unique_ptr<base::Timer> timer = std::unique_ptr<base::Timer>()) { |
@@ -99,7 +100,8 @@ class WebSocketStreamCreateTest : public ::testing::Test, |
WebSocketStandardRequest(socket_path, socket_host, origin, |
extra_request_headers), |
response_body); |
- CreateAndConnectStream(socket_url, sub_protocols, origin, std::move(timer)); |
+ CreateAndConnectStream(socket_url, sub_protocols, origin, |
+ send_additional_request_headers, std::move(timer)); |
} |
// |extra_request_headers| and |extra_response_headers| must end in "\r\n" or |
@@ -110,12 +112,13 @@ class WebSocketStreamCreateTest : public ::testing::Test, |
const std::string& socket_path, |
const std::vector<std::string>& sub_protocols, |
const url::Origin& origin, |
+ const std::string& send_additional_request_headers, |
const std::string& extra_request_headers, |
const std::string& extra_response_headers, |
std::unique_ptr<base::Timer> timer = std::unique_ptr<base::Timer>()) { |
CreateAndConnectCustomResponse( |
socket_url, socket_host, socket_path, sub_protocols, origin, |
- extra_request_headers, |
+ send_additional_request_headers, extra_request_headers, |
WebSocketStandardResponse(extra_response_headers), std::move(timer)); |
} |
@@ -123,10 +126,12 @@ class WebSocketStreamCreateTest : public ::testing::Test, |
const std::string& socket_url, |
const std::vector<std::string>& sub_protocols, |
const url::Origin& origin, |
+ const std::string& send_additional_request_headers, |
std::unique_ptr<SequencedSocketData> socket_data, |
std::unique_ptr<base::Timer> timer = std::unique_ptr<base::Timer>()) { |
AddRawExpectations(std::move(socket_data)); |
- CreateAndConnectStream(socket_url, sub_protocols, origin, std::move(timer)); |
+ CreateAndConnectStream(socket_url, sub_protocols, origin, |
+ send_additional_request_headers, std::move(timer)); |
} |
// Add additional raw expectations for sockets created before the final one. |
@@ -146,7 +151,7 @@ class WebSocketStreamCreateExtensionTest : public WebSocketStreamCreateTest { |
const std::string& extensions_header_value) { |
CreateAndConnectStandard( |
"ws://localhost/testing_path", "localhost", "/testing_path", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
"Sec-WebSocket-Extensions: " + extensions_header_value + "\r\n"); |
WaitUntilConnectDone(); |
} |
@@ -224,7 +229,7 @@ class WebSocketStreamCreateBasicAuthTest : public WebSocketStreamCreateTest { |
const std::string request = |
base::StringPrintf(request2format, base64_user_pass.c_str()); |
CreateAndConnectRawExpectations( |
- url, NoSubProtocols(), LocalhostOrigin(), |
+ url, NoSubProtocols(), LocalhostOrigin(), "", |
helper_.BuildSocketData2(request, response2)); |
} |
@@ -302,7 +307,7 @@ class WebSocketStreamCreateUMATest : public ::testing::Test { |
// Confirm that the basic case works as expected. |
TEST_F(WebSocketStreamCreateTest, SimpleSuccess) { |
CreateAndConnectStandard("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", ""); |
+ NoSubProtocols(), LocalhostOrigin(), "", "", ""); |
EXPECT_FALSE(request_info_); |
EXPECT_FALSE(response_info_); |
WaitUntilConnectDone(); |
@@ -324,7 +329,7 @@ TEST_F(WebSocketStreamCreateTest, HandshakeInfo) { |
"\r\n"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kResponse); |
EXPECT_FALSE(request_info_); |
EXPECT_FALSE(response_info_); |
@@ -375,10 +380,58 @@ TEST_F(WebSocketStreamCreateTest, HandshakeInfo) { |
EXPECT_EQ(HeaderKeyValuePair("hoge", "piyo"), response_headers[5]); |
} |
+// Confirms that request headers are overriden/added after handshake |
+TEST_F(WebSocketStreamCreateTest, HandshakeOverrideHeaders) { |
yhirano
2016/06/02 06:29:12
Can you add "additional_headers" parameter to WebS
allada
2016/06/02 23:35:18
Done. The reason there are two "additional_header"
|
+ static const char kResponse[] = |
+ "HTTP/1.1 101 Switching Protocols\r\n" |
+ "Upgrade: websocket\r\n" |
+ "Connection: Upgrade\r\n" |
+ "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n" |
+ "foo: bar, baz\r\n" |
+ "hoge: fuga\r\n" |
+ "hoge: piyo\r\n" |
+ "\r\n"; |
+ url_request_context_host_.SetExpectations( |
+ base::StringPrintf("GET / HTTP/1.1\r\n" |
+ "Host: localhost\r\n" |
+ "Connection: Upgrade\r\n" |
+ "Pragma: no-cache\r\n" |
+ "Cache-Control: no-cache\r\n" |
+ "Upgrade: websocket\r\n" |
+ "Origin: %s\r\n" |
+ "Sec-WebSocket-Version: 13\r\n" |
+ "User-Agent: OveRrIde\r\n" |
+ "rAnDomHeader: foobar\r\n" |
+ "Accept-Encoding: gzip, deflate\r\n" |
+ "Accept-Language: en-us,fr\r\n" |
+ "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==\r\n" |
+ "Sec-WebSocket-Extensions: permessage-deflate; " |
+ "client_max_window_bits\r\n" |
+ "\r\n", |
+ LocalhostOrigin().Serialize().c_str()), |
+ kResponse); |
+ CreateAndConnectStream("ws://localhost/", NoSubProtocols(), LocalhostOrigin(), |
+ "User-Agent: OveRrIde\r\n" // Tests overrite header |
+ "rAnDomHeader: foobar", // Tests adding new header |
+ std::unique_ptr<base::Timer>()); |
+ |
+ EXPECT_FALSE(request_info_); |
+ EXPECT_FALSE(response_info_); |
+ WaitUntilConnectDone(); |
+ EXPECT_TRUE(stream_); |
+ ASSERT_TRUE(request_info_); |
+ ASSERT_TRUE(response_info_); |
+ |
+ std::vector<HeaderKeyValuePair> request_headers = |
+ RequestHeadersToVector(request_info_->headers); |
+ EXPECT_EQ(HeaderKeyValuePair("User-Agent", "OveRrIde"), request_headers[7]); |
+ EXPECT_EQ(HeaderKeyValuePair("rAnDomHeader", "foobar"), request_headers[8]); |
+} |
+ |
// Confirm that the stream isn't established until the message loop runs. |
TEST_F(WebSocketStreamCreateTest, NeedsToRunLoop) { |
CreateAndConnectStandard("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", ""); |
+ NoSubProtocols(), LocalhostOrigin(), "", "", ""); |
EXPECT_FALSE(has_failed()); |
EXPECT_FALSE(stream_); |
} |
@@ -387,7 +440,7 @@ TEST_F(WebSocketStreamCreateTest, NeedsToRunLoop) { |
TEST_F(WebSocketStreamCreateTest, PathIsUsed) { |
CreateAndConnectStandard("ws://localhost/testing_path", "localhost", |
"/testing_path", NoSubProtocols(), LocalhostOrigin(), |
- "", ""); |
+ "", "", ""); |
WaitUntilConnectDone(); |
EXPECT_FALSE(has_failed()); |
EXPECT_TRUE(stream_); |
@@ -397,7 +450,7 @@ TEST_F(WebSocketStreamCreateTest, PathIsUsed) { |
TEST_F(WebSocketStreamCreateTest, OriginIsUsed) { |
CreateAndConnectStandard("ws://localhost/testing_path", "localhost", |
"/testing_path", NoSubProtocols(), GoogleOrigin(), |
- "", ""); |
+ "", "", ""); |
WaitUntilConnectDone(); |
EXPECT_FALSE(has_failed()); |
EXPECT_TRUE(stream_); |
@@ -409,7 +462,7 @@ TEST_F(WebSocketStreamCreateTest, SubProtocolIsUsed) { |
sub_protocols.push_back("chatv11.chromium.org"); |
sub_protocols.push_back("chatv20.chromium.org"); |
CreateAndConnectStandard("ws://localhost/testing_path", "localhost", |
- "/testing_path", sub_protocols, GoogleOrigin(), |
+ "/testing_path", sub_protocols, GoogleOrigin(), "", |
"Sec-WebSocket-Protocol: chatv11.chromium.org, " |
"chatv20.chromium.org\r\n", |
"Sec-WebSocket-Protocol: chatv20.chromium.org\r\n"); |
@@ -423,7 +476,7 @@ TEST_F(WebSocketStreamCreateTest, SubProtocolIsUsed) { |
TEST_F(WebSocketStreamCreateTest, UnsolicitedSubProtocol) { |
CreateAndConnectStandard("ws://localhost/testing_path", "localhost", |
"/testing_path", NoSubProtocols(), GoogleOrigin(), |
- "", |
+ "", "", |
"Sec-WebSocket-Protocol: chatv20.chromium.org\r\n"); |
WaitUntilConnectDone(); |
EXPECT_FALSE(stream_); |
@@ -440,7 +493,8 @@ TEST_F(WebSocketStreamCreateTest, UnacceptedSubProtocol) { |
sub_protocols.push_back("chat.example.com"); |
CreateAndConnectStandard("ws://localhost/testing_path", "localhost", |
"/testing_path", sub_protocols, LocalhostOrigin(), |
- "Sec-WebSocket-Protocol: chat.example.com\r\n", ""); |
+ "", "Sec-WebSocket-Protocol: chat.example.com\r\n", |
+ ""); |
WaitUntilConnectDone(); |
EXPECT_FALSE(stream_); |
EXPECT_TRUE(has_failed()); |
@@ -456,7 +510,7 @@ TEST_F(WebSocketStreamCreateTest, MultipleSubProtocolsInResponse) { |
sub_protocols.push_back("chatv11.chromium.org"); |
sub_protocols.push_back("chatv20.chromium.org"); |
CreateAndConnectStandard("ws://localhost/testing_path", "localhost", |
- "/testing_path", sub_protocols, GoogleOrigin(), |
+ "/testing_path", sub_protocols, GoogleOrigin(), "", |
"Sec-WebSocket-Protocol: chatv11.chromium.org, " |
"chatv20.chromium.org\r\n", |
"Sec-WebSocket-Protocol: chatv11.chromium.org, " |
@@ -476,7 +530,7 @@ TEST_F(WebSocketStreamCreateTest, UnmatchedSubProtocolInResponse) { |
sub_protocols.push_back("chatv11.chromium.org"); |
sub_protocols.push_back("chatv20.chromium.org"); |
CreateAndConnectStandard("ws://localhost/testing_path", "localhost", |
- "/testing_path", sub_protocols, GoogleOrigin(), |
+ "/testing_path", sub_protocols, GoogleOrigin(), "", |
"Sec-WebSocket-Protocol: chatv11.chromium.org, " |
"chatv20.chromium.org\r\n", |
"Sec-WebSocket-Protocol: chatv21.chromium.org\r\n"); |
@@ -511,7 +565,7 @@ TEST_F(WebSocketStreamCreateExtensionTest, PerMessageDeflateParamsSuccess) { |
TEST_F(WebSocketStreamCreateExtensionTest, PerMessageDeflateInflates) { |
CreateAndConnectCustomResponse( |
"ws://localhost/testing_path", "localhost", "/testing_path", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
WebSocketStandardResponse( |
"Sec-WebSocket-Extensions: permessage-deflate\r\n") + |
std::string( |
@@ -586,7 +640,7 @@ TEST_F(WebSocketStreamCreateExtensionTest, NoMaxWindowBitsArgument) { |
TEST_F(WebSocketStreamCreateTest, DoubleAccept) { |
CreateAndConnectStandard( |
"ws://localhost/", "localhost", "/", NoSubProtocols(), LocalhostOrigin(), |
- "", "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n"); |
+ "", "", "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n"); |
WaitUntilConnectDone(); |
EXPECT_FALSE(stream_); |
EXPECT_TRUE(has_failed()); |
@@ -605,7 +659,7 @@ TEST_F(WebSocketStreamCreateTest, InvalidStatusCode) { |
"Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n" |
"\r\n"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kInvalidStatusCodeResponse); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -625,7 +679,7 @@ TEST_F(WebSocketStreamCreateTest, RedirectsRejected) { |
"\r\n" |
"<title>Moved</title><h1>Moved</h1>"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kRedirectResponse); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -646,7 +700,7 @@ TEST_F(WebSocketStreamCreateTest, MalformedResponse) { |
"Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n" |
"\r\n"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kMalformedResponse); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -662,7 +716,7 @@ TEST_F(WebSocketStreamCreateTest, MissingUpgradeHeader) { |
"Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n" |
"\r\n"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kMissingUpgradeResponse); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -673,7 +727,7 @@ TEST_F(WebSocketStreamCreateTest, MissingUpgradeHeader) { |
// There must only be one upgrade header. |
TEST_F(WebSocketStreamCreateTest, DoubleUpgradeHeader) { |
CreateAndConnectStandard("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
"Upgrade: HTTP/2.0\r\n"); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -691,7 +745,7 @@ TEST_F(WebSocketStreamCreateTest, IncorrectUpgradeHeader) { |
"Upgrade: hogefuga\r\n" |
"\r\n"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kMissingUpgradeResponse); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -708,7 +762,7 @@ TEST_F(WebSocketStreamCreateTest, MissingConnectionHeader) { |
"Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n" |
"\r\n"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kMissingConnectionResponse); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -726,7 +780,7 @@ TEST_F(WebSocketStreamCreateTest, IncorrectConnectionHeader) { |
"Connection: hogefuga\r\n" |
"\r\n"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kMissingConnectionResponse); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -744,7 +798,7 @@ TEST_F(WebSocketStreamCreateTest, AdditionalTokenInConnectionHeader) { |
"Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n" |
"\r\n"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kAdditionalConnectionTokenResponse); |
WaitUntilConnectDone(); |
EXPECT_FALSE(has_failed()); |
@@ -759,7 +813,7 @@ TEST_F(WebSocketStreamCreateTest, MissingSecWebSocketAccept) { |
"Connection: Upgrade\r\n" |
"\r\n"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kMissingAcceptResponse); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -777,7 +831,7 @@ TEST_F(WebSocketStreamCreateTest, WrongSecWebSocketAccept) { |
"Sec-WebSocket-Accept: x/byyPZ2tOFvJCGkkugcKvqhhPk=\r\n" |
"\r\n"; |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kIncorrectAcceptResponse); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -789,7 +843,7 @@ TEST_F(WebSocketStreamCreateTest, WrongSecWebSocketAccept) { |
// Cancellation works. |
TEST_F(WebSocketStreamCreateTest, Cancellation) { |
CreateAndConnectStandard("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", ""); |
+ NoSubProtocols(), LocalhostOrigin(), "", "", ""); |
stream_request_.reset(); |
// WaitUntilConnectDone doesn't work in this case. |
base::RunLoop().RunUntilIdle(); |
@@ -805,7 +859,8 @@ TEST_F(WebSocketStreamCreateTest, ConnectionFailure) { |
socket_data->set_connect_data( |
MockConnect(SYNCHRONOUS, ERR_CONNECTION_REFUSED)); |
CreateAndConnectRawExpectations("ws://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), std::move(socket_data)); |
+ LocalhostOrigin(), "", |
+ std::move(socket_data)); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
EXPECT_EQ("Error in connection establishment: net::ERR_CONNECTION_REFUSED", |
@@ -820,7 +875,8 @@ TEST_F(WebSocketStreamCreateTest, ConnectionTimeout) { |
socket_data->set_connect_data( |
MockConnect(ASYNC, ERR_CONNECTION_TIMED_OUT)); |
CreateAndConnectRawExpectations("ws://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), std::move(socket_data)); |
+ LocalhostOrigin(), "", |
+ std::move(socket_data)); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
EXPECT_EQ("Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT", |
@@ -834,7 +890,7 @@ TEST_F(WebSocketStreamCreateTest, HandshakeTimeout) { |
std::unique_ptr<MockWeakTimer> timer(new MockWeakTimer(false, false)); |
base::WeakPtr<MockWeakTimer> weak_timer = timer->AsWeakPtr(); |
CreateAndConnectRawExpectations("ws://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), std::move(socket_data), |
+ LocalhostOrigin(), "", std::move(socket_data), |
std::move(timer)); |
EXPECT_FALSE(has_failed()); |
ASSERT_TRUE(weak_timer.get()); |
@@ -855,7 +911,7 @@ TEST_F(WebSocketStreamCreateTest, HandshakeTimerOnSuccess) { |
base::WeakPtr<MockWeakTimer> weak_timer = timer->AsWeakPtr(); |
CreateAndConnectStandard("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", "", |
std::move(timer)); |
ASSERT_TRUE(weak_timer); |
EXPECT_TRUE(weak_timer->IsRunning()); |
@@ -875,7 +931,7 @@ TEST_F(WebSocketStreamCreateTest, HandshakeTimerOnFailure) { |
std::unique_ptr<MockWeakTimer> timer(new MockWeakTimer(false, false)); |
base::WeakPtr<MockWeakTimer> weak_timer = timer->AsWeakPtr(); |
CreateAndConnectRawExpectations("ws://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), std::move(socket_data), |
+ LocalhostOrigin(), "", std::move(socket_data), |
std::move(timer)); |
ASSERT_TRUE(weak_timer.get()); |
EXPECT_TRUE(weak_timer->IsRunning()); |
@@ -893,7 +949,8 @@ TEST_F(WebSocketStreamCreateTest, CancellationDuringConnect) { |
std::unique_ptr<SequencedSocketData> socket_data(BuildNullSocketData()); |
socket_data->set_connect_data(MockConnect(SYNCHRONOUS, ERR_IO_PENDING)); |
CreateAndConnectRawExpectations("ws://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), std::move(socket_data)); |
+ LocalhostOrigin(), "", |
+ std::move(socket_data)); |
stream_request_.reset(); |
// WaitUntilConnectDone doesn't work in this case. |
base::RunLoop().RunUntilIdle(); |
@@ -909,7 +966,7 @@ TEST_F(WebSocketStreamCreateTest, CancellationDuringWrite) { |
new SequencedSocketData(NULL, 0, writes, arraysize(writes))); |
socket_data->set_connect_data(MockConnect(SYNCHRONOUS, OK)); |
CreateAndConnectRawExpectations("ws://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), |
+ LocalhostOrigin(), "", |
base::WrapUnique(socket_data)); |
base::RunLoop().RunUntilIdle(); |
EXPECT_TRUE(socket_data->AllWriteDataConsumed()); |
@@ -934,7 +991,8 @@ TEST_F(WebSocketStreamCreateTest, CancellationDuringRead) { |
BuildSocketData(reads, writes)); |
SequencedSocketData* socket_data_raw_ptr = socket_data.get(); |
CreateAndConnectRawExpectations("ws://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), std::move(socket_data)); |
+ LocalhostOrigin(), "", |
+ std::move(socket_data)); |
base::RunLoop().RunUntilIdle(); |
EXPECT_TRUE(socket_data_raw_ptr->AllReadDataConsumed()); |
stream_request_.reset(); |
@@ -957,7 +1015,7 @@ TEST_F(WebSocketStreamCreateTest, VeryLargeResponseHeaders) { |
base::StringPrintf("Set-Cookie: WK-websocket-test-flood-%d=1\r\n", i); |
} |
CreateAndConnectStandard("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
set_cookie_headers); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -976,7 +1034,8 @@ TEST_F(WebSocketStreamCreateTest, NoResponse) { |
BuildSocketData(reads, writes)); |
SequencedSocketData* socket_data_raw_ptr = socket_data.get(); |
CreateAndConnectRawExpectations("ws://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), std::move(socket_data)); |
+ LocalhostOrigin(), "", |
+ std::move(socket_data)); |
base::RunLoop().RunUntilIdle(); |
EXPECT_TRUE(socket_data_raw_ptr->AllReadDataConsumed()); |
EXPECT_TRUE(has_failed()); |
@@ -994,7 +1053,7 @@ TEST_F(WebSocketStreamCreateTest, SelfSignedCertificateFailure) { |
ASSERT_TRUE(ssl_data_[0]->cert.get()); |
std::unique_ptr<SequencedSocketData> raw_socket_data(BuildNullSocketData()); |
CreateAndConnectRawExpectations("wss://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), |
+ LocalhostOrigin(), "", |
std::move(raw_socket_data)); |
// WaitUntilConnectDone doesn't work in this case. |
base::RunLoop().RunUntilIdle(); |
@@ -1017,7 +1076,7 @@ TEST_F(WebSocketStreamCreateTest, SelfSignedCertificateSuccess) { |
ssl_data_.push_back(std::move(ssl_data)); |
url_request_context_host_.AddRawExpectations(BuildNullSocketData()); |
CreateAndConnectStandard("wss://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", ""); |
+ NoSubProtocols(), LocalhostOrigin(), "", "", ""); |
// WaitUntilConnectDone doesn't work in this case. |
base::RunLoop().RunUntilIdle(); |
ASSERT_TRUE(ssl_error_callbacks_); |
@@ -1031,7 +1090,7 @@ TEST_F(WebSocketStreamCreateTest, SelfSignedCertificateSuccess) { |
// connection should fail cleanly. |
TEST_F(WebSocketStreamCreateBasicAuthTest, FailureNoCredentials) { |
CreateAndConnectCustomResponse("ws://localhost/", "localhost", "/", |
- NoSubProtocols(), LocalhostOrigin(), "", |
+ NoSubProtocols(), LocalhostOrigin(), "", "", |
kUnauthorizedResponse); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
@@ -1066,7 +1125,7 @@ TEST_F(WebSocketStreamCreateDigestAuthTest, DigestPasswordInUrl) { |
AddRawExpectations(helper_.BuildSocketData1(kUnauthorizedResponse)); |
CreateAndConnectRawExpectations( |
- "ws://FooBar:pass@localhost/", NoSubProtocols(), LocalhostOrigin(), |
+ "ws://FooBar:pass@localhost/", NoSubProtocols(), LocalhostOrigin(), "", |
helper_.BuildSocketData2(kAuthorizedRequest, |
WebSocketStandardResponse(std::string()))); |
WaitUntilConnectDone(); |
@@ -1084,7 +1143,7 @@ TEST_F(WebSocketStreamCreateUMATest, Incomplete) { |
StreamCreation creation; |
creation.CreateAndConnectStandard("ws://localhost/", "localhost", "/", |
creation.NoSubProtocols(), |
- LocalhostOrigin(), "", ""); |
+ LocalhostOrigin(), "", "", ""); |
} |
std::unique_ptr<base::HistogramSamples> samples(GetSamples(name)); |
@@ -1105,7 +1164,7 @@ TEST_F(WebSocketStreamCreateUMATest, Connected) { |
StreamCreation creation; |
creation.CreateAndConnectStandard("ws://localhost/", "localhost", "/", |
creation.NoSubProtocols(), |
- LocalhostOrigin(), "", ""); |
+ LocalhostOrigin(), "", "", ""); |
creation.WaitUntilConnectDone(); |
} |
@@ -1133,7 +1192,7 @@ TEST_F(WebSocketStreamCreateUMATest, Failed) { |
"\r\n"; |
creation.CreateAndConnectCustomResponse( |
"ws://localhost/", "localhost", "/", creation.NoSubProtocols(), |
- LocalhostOrigin(), "", kInvalidStatusCodeResponse); |
+ LocalhostOrigin(), "", "", kInvalidStatusCodeResponse); |
creation.WaitUntilConnectDone(); |
} |
@@ -1166,7 +1225,8 @@ TEST_F(WebSocketStreamCreateTest, HandleErrConnectionClosed) { |
BuildSocketData(reads, writes)); |
socket_data->set_connect_data(MockConnect(SYNCHRONOUS, OK)); |
CreateAndConnectRawExpectations("ws://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), std::move(socket_data)); |
+ LocalhostOrigin(), "", |
+ std::move(socket_data)); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
} |
@@ -1192,7 +1252,8 @@ TEST_F(WebSocketStreamCreateTest, HandleErrTunnelConnectionFailed) { |
BuildSocketData(reads, writes)); |
url_request_context_host_.SetProxyConfig("https=proxy:8000"); |
CreateAndConnectRawExpectations("ws://localhost/", NoSubProtocols(), |
- LocalhostOrigin(), std::move(socket_data)); |
+ LocalhostOrigin(), "", |
+ std::move(socket_data)); |
WaitUntilConnectDone(); |
EXPECT_TRUE(has_failed()); |
EXPECT_EQ("Establishing a tunnel via proxy server failed.", |