OLD | NEW |
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 <string> | 5 #include <string> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 scoped_refptr<HttpNetworkSession> session_; | 410 scoped_refptr<HttpNetworkSession> session_; |
411 TransactionHelperResult output_; | 411 TransactionHelperResult output_; |
412 scoped_ptr<StaticSocketDataProvider> first_transaction_; | 412 scoped_ptr<StaticSocketDataProvider> first_transaction_; |
413 SSLVector ssl_vector_; | 413 SSLVector ssl_vector_; |
414 TestCompletionCallback callback_; | 414 TestCompletionCallback callback_; |
415 scoped_ptr<HttpNetworkTransaction> trans_; | 415 scoped_ptr<HttpNetworkTransaction> trans_; |
416 scoped_ptr<HttpNetworkTransaction> trans_http_; | 416 scoped_ptr<HttpNetworkTransaction> trans_http_; |
417 DataVector data_vector_; | 417 DataVector data_vector_; |
418 AlternateVector alternate_vector_; | 418 AlternateVector alternate_vector_; |
419 AlternateDeterministicVector alternate_deterministic_vector_; | 419 AlternateDeterministicVector alternate_deterministic_vector_; |
420 const BoundNetLog& log_; | 420 const BoundNetLog log_; |
421 SpdyNetworkTransactionTestParams test_params_; | 421 SpdyNetworkTransactionTestParams test_params_; |
422 int port_; | 422 int port_; |
423 bool deterministic_; | 423 bool deterministic_; |
424 bool spdy_enabled_; | 424 bool spdy_enabled_; |
425 }; | 425 }; |
426 | 426 |
427 void ConnectStatusHelperWithExpectedStatus(const MockRead& status, | 427 void ConnectStatusHelperWithExpectedStatus(const MockRead& status, |
428 int expected_status); | 428 int expected_status); |
429 | 429 |
430 void ConnectStatusHelper(const MockRead& status); | 430 void ConnectStatusHelper(const MockRead& status); |
(...skipping 4118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4549 const HttpResponseInfo* response = trans->GetResponseInfo(); | 4549 const HttpResponseInfo* response = trans->GetResponseInfo(); |
4550 EXPECT_TRUE(response->headers.get() != NULL); | 4550 EXPECT_TRUE(response->headers.get() != NULL); |
4551 EXPECT_TRUE(response->was_fetched_via_spdy); | 4551 EXPECT_TRUE(response->was_fetched_via_spdy); |
4552 out.rv = ReadTransaction(trans, &out.response_data); | 4552 out.rv = ReadTransaction(trans, &out.response_data); |
4553 EXPECT_EQ(ERR_CONNECTION_CLOSED, out.rv); | 4553 EXPECT_EQ(ERR_CONNECTION_CLOSED, out.rv); |
4554 | 4554 |
4555 // Verify that we consumed all test data. | 4555 // Verify that we consumed all test data. |
4556 helper.VerifyDataConsumed(); | 4556 helper.VerifyDataConsumed(); |
4557 } | 4557 } |
4558 | 4558 |
| 4559 // HTTP_1_1_REQUIRED results in ERR_HTTP_1_1_REQUIRED. |
| 4560 TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredError) { |
| 4561 // HTTP_1_1_REQUIRED is only supported by SPDY4. |
| 4562 if (spdy_util_.spdy_version() < SPDY4) |
| 4563 return; |
| 4564 |
| 4565 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| 4566 BoundNetLog(), GetParam(), nullptr); |
| 4567 |
| 4568 scoped_ptr<SpdyFrame> go_away(spdy_util_.ConstructSpdyGoAway( |
| 4569 0, GOAWAY_HTTP_1_1_REQUIRED, "Try again using HTTP/1.1 please.")); |
| 4570 MockRead reads[] = { |
| 4571 CreateMockRead(*go_away), |
| 4572 }; |
| 4573 DelayedSocketData data(0, reads, arraysize(reads), nullptr, 0); |
| 4574 |
| 4575 helper.RunToCompletion(&data); |
| 4576 TransactionHelperResult out = helper.output(); |
| 4577 EXPECT_EQ(ERR_HTTP_1_1_REQUIRED, out.rv); |
| 4578 } |
| 4579 |
4559 // Retry with HTTP/1.1 when receiving HTTP_1_1_REQUIRED. Note that no actual | 4580 // Retry with HTTP/1.1 when receiving HTTP_1_1_REQUIRED. Note that no actual |
4560 // protocol negotiation happens, instead this test forces protocols for both | 4581 // protocol negotiation happens, instead this test forces protocols for both |
4561 // sockets. | 4582 // sockets. |
4562 TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredRetry) { | 4583 TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredRetry) { |
4563 // HTTP_1_1_REQUIRED is only supported by SPDY4. | 4584 // HTTP_1_1_REQUIRED is only supported by SPDY4. |
4564 if (spdy_util_.spdy_version() < SPDY4) | 4585 if (spdy_util_.spdy_version() < SPDY4) |
4565 return; | 4586 return; |
4566 // HTTP_1_1_REQUIRED implementation relies on the assumption that HTTP/2 is | 4587 // HTTP_1_1_REQUIRED implementation relies on the assumption that HTTP/2 is |
4567 // only spoken over SSL. | 4588 // only spoken over SSL. |
4568 if (GetParam().ssl_type != SPDYSSL) | 4589 if (GetParam().ssl_type != SPDYSSL) |
(...skipping 2230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6799 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { | 6820 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { |
6800 scoped_ptr<SSLSocketDataProvider> ssl_provider( | 6821 scoped_ptr<SSLSocketDataProvider> ssl_provider( |
6801 new SSLSocketDataProvider(ASYNC, OK)); | 6822 new SSLSocketDataProvider(ASYNC, OK)); |
6802 // Set to TLS_RSA_WITH_NULL_MD5 | 6823 // Set to TLS_RSA_WITH_NULL_MD5 |
6803 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); | 6824 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); |
6804 | 6825 |
6805 RunTLSUsageCheckTest(ssl_provider.Pass()); | 6826 RunTLSUsageCheckTest(ssl_provider.Pass()); |
6806 } | 6827 } |
6807 | 6828 |
6808 } // namespace net | 6829 } // namespace net |
OLD | NEW |