| 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 <cmath> | 5 #include <cmath> |
| 6 #include <memory> | 6 #include <memory> |
| 7 #include <string> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 4344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4355 }; | 4355 }; |
| 4356 | 4356 |
| 4357 // The first response is a 401 authentication challenge, and the second | 4357 // The first response is a 401 authentication challenge, and the second |
| 4358 // response will be a 200 response since the second request includes a valid | 4358 // response will be a 200 response since the second request includes a valid |
| 4359 // Authorization header. | 4359 // Authorization header. |
| 4360 const char* const kExtraAuthenticationHeaders[] = { | 4360 const char* const kExtraAuthenticationHeaders[] = { |
| 4361 "www-authenticate", | 4361 "www-authenticate", |
| 4362 "Basic realm=\"MyRealm\"" | 4362 "Basic realm=\"MyRealm\"" |
| 4363 }; | 4363 }; |
| 4364 SpdySerializedFrame resp_authentication(spdy_util_.ConstructSpdyReplyError( | 4364 SpdySerializedFrame resp_authentication(spdy_util_.ConstructSpdyReplyError( |
| 4365 "401 Authentication Required", kExtraAuthenticationHeaders, | 4365 "401", kExtraAuthenticationHeaders, |
| 4366 arraysize(kExtraAuthenticationHeaders) / 2, 1)); | 4366 arraysize(kExtraAuthenticationHeaders) / 2, 1)); |
| 4367 SpdySerializedFrame body_authentication( | 4367 SpdySerializedFrame body_authentication( |
| 4368 spdy_util_.ConstructSpdyDataFrame(1, true)); | 4368 spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 4369 SpdySerializedFrame resp_data(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); | 4369 SpdySerializedFrame resp_data(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); |
| 4370 SpdySerializedFrame body_data(spdy_util_.ConstructSpdyDataFrame(3, true)); | 4370 SpdySerializedFrame body_data(spdy_util_.ConstructSpdyDataFrame(3, true)); |
| 4371 MockRead spdy_reads[] = { | 4371 MockRead spdy_reads[] = { |
| 4372 CreateMockRead(resp_authentication, 1), | 4372 CreateMockRead(resp_authentication, 1), |
| 4373 CreateMockRead(body_authentication, 2), | 4373 CreateMockRead(body_authentication, 2), |
| 4374 CreateMockRead(resp_data, 4), | 4374 CreateMockRead(resp_data, 4), |
| 4375 CreateMockRead(body_data, 5), | 4375 CreateMockRead(body_data, 5), |
| (...skipping 1779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6155 NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(), | 6155 NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(), |
| 6156 DEFAULT_PRIORITY, NetLogWithSource(), | 6156 DEFAULT_PRIORITY, NetLogWithSource(), |
| 6157 nullptr); | 6157 nullptr); |
| 6158 helper.RunToCompletion(&data); | 6158 helper.RunToCompletion(&data); |
| 6159 TransactionHelperResult out = helper.output(); | 6159 TransactionHelperResult out = helper.output(); |
| 6160 EXPECT_THAT(out.rv, IsOk()); | 6160 EXPECT_THAT(out.rv, IsOk()); |
| 6161 EXPECT_EQ("HTTP/1.1 200", out.status_line); | 6161 EXPECT_EQ("HTTP/1.1 200", out.status_line); |
| 6162 EXPECT_EQ("hello!", out.response_data); | 6162 EXPECT_EQ("hello!", out.response_data); |
| 6163 } | 6163 } |
| 6164 | 6164 |
| 6165 TEST_F(SpdyNetworkTransactionTest, 100Continue) { |
| 6166 SpdySerializedFrame req( |
| 6167 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 6168 MockWrite writes[] = {CreateMockWrite(req, 0)}; |
| 6169 |
| 6170 SpdyHeaderBlock informational_headers; |
| 6171 informational_headers[spdy_util_.GetStatusKey()] = "100"; |
| 6172 SpdySerializedFrame informational_response( |
| 6173 spdy_util_.ConstructSpdyReply(1, std::move(informational_headers))); |
| 6174 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 6175 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 6176 MockRead reads[] = { |
| 6177 CreateMockRead(informational_response, 1), CreateMockRead(resp, 2), |
| 6178 CreateMockRead(body, 3), MockRead(ASYNC, 0, 4) // EOF |
| 6179 }; |
| 6180 |
| 6181 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 6182 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| 6183 NetLogWithSource(), nullptr); |
| 6184 helper.RunToCompletion(&data); |
| 6185 TransactionHelperResult out = helper.output(); |
| 6186 EXPECT_THAT(out.rv, IsOk()); |
| 6187 EXPECT_EQ("HTTP/1.1 200", out.status_line); |
| 6188 EXPECT_EQ("hello!", out.response_data); |
| 6189 } |
| 6190 |
| 6165 class SpdyNetworkTransactionTLSUsageCheckTest | 6191 class SpdyNetworkTransactionTLSUsageCheckTest |
| 6166 : public SpdyNetworkTransactionTest { | 6192 : public SpdyNetworkTransactionTest { |
| 6167 protected: | 6193 protected: |
| 6168 void RunTLSUsageCheckTest( | 6194 void RunTLSUsageCheckTest( |
| 6169 std::unique_ptr<SSLSocketDataProvider> ssl_provider) { | 6195 std::unique_ptr<SSLSocketDataProvider> ssl_provider) { |
| 6170 SpdySerializedFrame goaway( | 6196 SpdySerializedFrame goaway( |
| 6171 spdy_util_.ConstructSpdyGoAway(0, GOAWAY_INADEQUATE_SECURITY, "")); | 6197 spdy_util_.ConstructSpdyGoAway(0, GOAWAY_INADEQUATE_SECURITY, "")); |
| 6172 MockWrite writes[] = {CreateMockWrite(goaway)}; | 6198 MockWrite writes[] = {CreateMockWrite(goaway)}; |
| 6173 | 6199 |
| 6174 StaticSocketDataProvider data(NULL, 0, writes, arraysize(writes)); | 6200 StaticSocketDataProvider data(NULL, 0, writes, arraysize(writes)); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 6195 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { | 6221 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { |
| 6196 std::unique_ptr<SSLSocketDataProvider> ssl_provider( | 6222 std::unique_ptr<SSLSocketDataProvider> ssl_provider( |
| 6197 new SSLSocketDataProvider(ASYNC, OK)); | 6223 new SSLSocketDataProvider(ASYNC, OK)); |
| 6198 // Set to TLS_RSA_WITH_NULL_MD5 | 6224 // Set to TLS_RSA_WITH_NULL_MD5 |
| 6199 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); | 6225 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); |
| 6200 | 6226 |
| 6201 RunTLSUsageCheckTest(std::move(ssl_provider)); | 6227 RunTLSUsageCheckTest(std::move(ssl_provider)); |
| 6202 } | 6228 } |
| 6203 | 6229 |
| 6204 } // namespace net | 6230 } // namespace net |
| OLD | NEW |