OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/websockets/websocket_stream.h" | 5 #include "net/websockets/websocket_stream.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 EXPECT_EQ(HeaderKeyValuePair("Accept-Encoding", "gzip,deflate"), | 462 EXPECT_EQ(HeaderKeyValuePair("Accept-Encoding", "gzip,deflate"), |
463 request_headers[8]); | 463 request_headers[8]); |
464 EXPECT_EQ(HeaderKeyValuePair("Accept-Language", "en-us,fr"), | 464 EXPECT_EQ(HeaderKeyValuePair("Accept-Language", "en-us,fr"), |
465 request_headers[9]); | 465 request_headers[9]); |
466 EXPECT_EQ("Sec-WebSocket-Key", request_headers[10].first); | 466 EXPECT_EQ("Sec-WebSocket-Key", request_headers[10].first); |
467 EXPECT_EQ(HeaderKeyValuePair("Sec-WebSocket-Extensions", | 467 EXPECT_EQ(HeaderKeyValuePair("Sec-WebSocket-Extensions", |
468 "permessage-deflate; client_max_window_bits"), | 468 "permessage-deflate; client_max_window_bits"), |
469 request_headers[11]); | 469 request_headers[11]); |
470 | 470 |
471 std::vector<HeaderKeyValuePair> response_headers = | 471 std::vector<HeaderKeyValuePair> response_headers = |
472 ToVector(*response_info_->headers); | 472 ToVector(*response_info_->headers.get()); |
473 ASSERT_EQ(6u, response_headers.size()); | 473 ASSERT_EQ(6u, response_headers.size()); |
474 // Sort the headers for ease of verification. | 474 // Sort the headers for ease of verification. |
475 std::sort(response_headers.begin(), response_headers.end()); | 475 std::sort(response_headers.begin(), response_headers.end()); |
476 | 476 |
477 EXPECT_EQ(HeaderKeyValuePair("Connection", "Upgrade"), response_headers[0]); | 477 EXPECT_EQ(HeaderKeyValuePair("Connection", "Upgrade"), response_headers[0]); |
478 EXPECT_EQ("Sec-WebSocket-Accept", response_headers[1].first); | 478 EXPECT_EQ("Sec-WebSocket-Accept", response_headers[1].first); |
479 EXPECT_EQ(HeaderKeyValuePair("Upgrade", "websocket"), response_headers[2]); | 479 EXPECT_EQ(HeaderKeyValuePair("Upgrade", "websocket"), response_headers[2]); |
480 EXPECT_EQ(HeaderKeyValuePair("foo", "bar, baz"), response_headers[3]); | 480 EXPECT_EQ(HeaderKeyValuePair("foo", "bar, baz"), response_headers[3]); |
481 EXPECT_EQ(HeaderKeyValuePair("hoge", "fuga"), response_headers[4]); | 481 EXPECT_EQ(HeaderKeyValuePair("hoge", "fuga"), response_headers[4]); |
482 EXPECT_EQ(HeaderKeyValuePair("hoge", "piyo"), response_headers[5]); | 482 EXPECT_EQ(HeaderKeyValuePair("hoge", "piyo"), response_headers[5]); |
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1196 EXPECT_FALSE(response_info_); | 1196 EXPECT_FALSE(response_info_); |
1197 EXPECT_EQ("Connection closed before receiving a handshake response", | 1197 EXPECT_EQ("Connection closed before receiving a handshake response", |
1198 failure_message()); | 1198 failure_message()); |
1199 } | 1199 } |
1200 | 1200 |
1201 TEST_F(WebSocketStreamCreateTest, SelfSignedCertificateFailure) { | 1201 TEST_F(WebSocketStreamCreateTest, SelfSignedCertificateFailure) { |
1202 ssl_data_.push_back( | 1202 ssl_data_.push_back( |
1203 new SSLSocketDataProvider(ASYNC, ERR_CERT_AUTHORITY_INVALID)); | 1203 new SSLSocketDataProvider(ASYNC, ERR_CERT_AUTHORITY_INVALID)); |
1204 ssl_data_[0]->cert = | 1204 ssl_data_[0]->cert = |
1205 ImportCertFromFile(GetTestCertsDirectory(), "unittest.selfsigned.der"); | 1205 ImportCertFromFile(GetTestCertsDirectory(), "unittest.selfsigned.der"); |
1206 ASSERT_TRUE(ssl_data_[0]->cert); | 1206 ASSERT_TRUE(ssl_data_[0]->cert.get()); |
1207 scoped_ptr<DeterministicSocketData> raw_socket_data(BuildNullSocketData()); | 1207 scoped_ptr<DeterministicSocketData> raw_socket_data(BuildNullSocketData()); |
1208 CreateAndConnectRawExpectations("wss://localhost/", | 1208 CreateAndConnectRawExpectations("wss://localhost/", |
1209 NoSubProtocols(), | 1209 NoSubProtocols(), |
1210 "http://localhost", | 1210 "http://localhost", |
1211 raw_socket_data.Pass()); | 1211 raw_socket_data.Pass()); |
1212 RunUntilIdle(); | 1212 RunUntilIdle(); |
1213 EXPECT_FALSE(has_failed()); | 1213 EXPECT_FALSE(has_failed()); |
1214 ASSERT_TRUE(ssl_error_callbacks_); | 1214 ASSERT_TRUE(ssl_error_callbacks_); |
1215 ssl_error_callbacks_->CancelSSLRequest(ERR_CERT_AUTHORITY_INVALID, | 1215 ssl_error_callbacks_->CancelSSLRequest(ERR_CERT_AUTHORITY_INVALID, |
1216 &ssl_info_); | 1216 &ssl_info_); |
1217 RunUntilIdle(); | 1217 RunUntilIdle(); |
1218 EXPECT_TRUE(has_failed()); | 1218 EXPECT_TRUE(has_failed()); |
1219 } | 1219 } |
1220 | 1220 |
1221 TEST_F(WebSocketStreamCreateTest, SelfSignedCertificateSuccess) { | 1221 TEST_F(WebSocketStreamCreateTest, SelfSignedCertificateSuccess) { |
1222 scoped_ptr<SSLSocketDataProvider> ssl_data( | 1222 scoped_ptr<SSLSocketDataProvider> ssl_data( |
1223 new SSLSocketDataProvider(ASYNC, ERR_CERT_AUTHORITY_INVALID)); | 1223 new SSLSocketDataProvider(ASYNC, ERR_CERT_AUTHORITY_INVALID)); |
1224 ssl_data->cert = | 1224 ssl_data->cert = |
1225 ImportCertFromFile(GetTestCertsDirectory(), "unittest.selfsigned.der"); | 1225 ImportCertFromFile(GetTestCertsDirectory(), "unittest.selfsigned.der"); |
1226 ASSERT_TRUE(ssl_data->cert); | 1226 ASSERT_TRUE(ssl_data->cert.get()); |
1227 ssl_data_.push_back(ssl_data.release()); | 1227 ssl_data_.push_back(ssl_data.release()); |
1228 ssl_data.reset(new SSLSocketDataProvider(ASYNC, OK)); | 1228 ssl_data.reset(new SSLSocketDataProvider(ASYNC, OK)); |
1229 ssl_data_.push_back(ssl_data.release()); | 1229 ssl_data_.push_back(ssl_data.release()); |
1230 url_request_context_host_.AddRawExpectations(BuildNullSocketData()); | 1230 url_request_context_host_.AddRawExpectations(BuildNullSocketData()); |
1231 CreateAndConnectStandard( | 1231 CreateAndConnectStandard( |
1232 "wss://localhost/", "/", NoSubProtocols(), "http://localhost", "", ""); | 1232 "wss://localhost/", "/", NoSubProtocols(), "http://localhost", "", ""); |
1233 RunUntilIdle(); | 1233 RunUntilIdle(); |
1234 ASSERT_TRUE(ssl_error_callbacks_); | 1234 ASSERT_TRUE(ssl_error_callbacks_); |
1235 ssl_error_callbacks_->ContinueSSLRequest(); | 1235 ssl_error_callbacks_->ContinueSSLRequest(); |
1236 RunUntilIdle(); | 1236 RunUntilIdle(); |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1367 if (original) { | 1367 if (original) { |
1368 samples->Subtract(*original); // Cancel the original values. | 1368 samples->Subtract(*original); // Cancel the original values. |
1369 } | 1369 } |
1370 EXPECT_EQ(1, samples->GetCount(INCOMPLETE)); | 1370 EXPECT_EQ(1, samples->GetCount(INCOMPLETE)); |
1371 EXPECT_EQ(0, samples->GetCount(CONNECTED)); | 1371 EXPECT_EQ(0, samples->GetCount(CONNECTED)); |
1372 EXPECT_EQ(0, samples->GetCount(FAILED)); | 1372 EXPECT_EQ(0, samples->GetCount(FAILED)); |
1373 } | 1373 } |
1374 | 1374 |
1375 } // namespace | 1375 } // namespace |
1376 } // namespace net | 1376 } // namespace net |
OLD | NEW |