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

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

Issue 2555563003: Ignore 1xx informational headers. (Closed)
Patch Set: Created 4 years 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
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 <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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698