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

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

Issue 2184253002: Reset HTTP/2 stream on line-folded response headers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Re: #7. Created 4 years, 4 months 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
« no previous file with comments | « net/spdy/header_coalescer_test.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 6188 matching lines...) Expand 10 before | Expand all | Expand 10 after
6199 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 6199 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
6200 helper.RunToCompletion(&data); 6200 helper.RunToCompletion(&data);
6201 TransactionHelperResult out = helper.output(); 6201 TransactionHelperResult out = helper.output();
6202 6202
6203 EXPECT_THAT(out.rv, IsOk()); 6203 EXPECT_THAT(out.rv, IsOk());
6204 EXPECT_EQ("HTTP/1.1 200", out.status_line); 6204 EXPECT_EQ("HTTP/1.1 200", out.status_line);
6205 EXPECT_EQ("hello!", out.response_data); 6205 EXPECT_EQ("hello!", out.response_data);
6206 ASSERT_TRUE(out.response_info.headers->HasHeaderValue(kKey, kValue)); 6206 ASSERT_TRUE(out.response_info.headers->HasHeaderValue(kKey, kValue));
6207 } 6207 }
6208 6208
6209 // End of line delimiter is forbidden according to RFC 7230 Section 3.2.
6210 TEST_F(SpdyNetworkTransactionTest, CRLFInHeaderValue) {
6211 SpdySerializedFrame req(
6212 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
6213 SpdySerializedFrame rst(
6214 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR));
6215 MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 2)};
6216
6217 const char* response_headers[] = {"folded", "foo\r\nbar"};
6218 SpdySerializedFrame resp(
6219 spdy_util_.ConstructSpdyGetReply(response_headers, 1, 1));
6220 MockRead reads[] = {CreateMockRead(resp, 1), MockRead(ASYNC, 0, 3)};
6221
6222 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
6223
6224 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY,
6225 BoundNetLog(), nullptr);
6226 helper.RunToCompletion(&data);
6227 TransactionHelperResult out = helper.output();
6228
6229 EXPECT_THAT(out.rv, IsError(ERR_SPDY_PROTOCOL_ERROR));
6230 }
6231
6209 class SpdyNetworkTransactionTLSUsageCheckTest 6232 class SpdyNetworkTransactionTLSUsageCheckTest
6210 : public SpdyNetworkTransactionTest { 6233 : public SpdyNetworkTransactionTest {
6211 protected: 6234 protected:
6212 void RunTLSUsageCheckTest( 6235 void RunTLSUsageCheckTest(
6213 std::unique_ptr<SSLSocketDataProvider> ssl_provider) { 6236 std::unique_ptr<SSLSocketDataProvider> ssl_provider) {
6214 SpdySerializedFrame goaway( 6237 SpdySerializedFrame goaway(
6215 spdy_util_.ConstructSpdyGoAway(0, GOAWAY_INADEQUATE_SECURITY, "")); 6238 spdy_util_.ConstructSpdyGoAway(0, GOAWAY_INADEQUATE_SECURITY, ""));
6216 MockWrite writes[] = {CreateMockWrite(goaway)}; 6239 MockWrite writes[] = {CreateMockWrite(goaway)};
6217 6240
6218 StaticSocketDataProvider data(NULL, 0, writes, arraysize(writes)); 6241 StaticSocketDataProvider data(NULL, 0, writes, arraysize(writes));
(...skipping 20 matching lines...) Expand all
6239 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { 6262 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) {
6240 std::unique_ptr<SSLSocketDataProvider> ssl_provider( 6263 std::unique_ptr<SSLSocketDataProvider> ssl_provider(
6241 new SSLSocketDataProvider(ASYNC, OK)); 6264 new SSLSocketDataProvider(ASYNC, OK));
6242 // Set to TLS_RSA_WITH_NULL_MD5 6265 // Set to TLS_RSA_WITH_NULL_MD5
6243 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); 6266 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status);
6244 6267
6245 RunTLSUsageCheckTest(std::move(ssl_provider)); 6268 RunTLSUsageCheckTest(std::move(ssl_provider));
6246 } 6269 }
6247 6270
6248 } // namespace net 6271 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/header_coalescer_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698