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

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

Issue 2445113002: Add HTTP/2 error code NO_ERROR. (Closed)
Patch Set: Created 4 years, 1 month 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 6314 matching lines...) Expand 10 before | Expand all | Expand 10 after
6325 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 6325 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
6326 6326
6327 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, 6327 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY,
6328 NetLogWithSource(), nullptr); 6328 NetLogWithSource(), nullptr);
6329 helper.RunToCompletion(&data); 6329 helper.RunToCompletion(&data);
6330 TransactionHelperResult out = helper.output(); 6330 TransactionHelperResult out = helper.output();
6331 6331
6332 EXPECT_THAT(out.rv, IsError(ERR_SPDY_PROTOCOL_ERROR)); 6332 EXPECT_THAT(out.rv, IsError(ERR_SPDY_PROTOCOL_ERROR));
6333 } 6333 }
6334 6334
6335 // Regression test for https://crbug.com/603182.
6336 // No response headers received before RST_STREAM: error.
6337 TEST_F(SpdyNetworkTransactionTest, RstStreamNoError) {
6338 SpdySerializedFrame req(spdy_util_.ConstructChunkedSpdyPost(nullptr, 0));
6339 MockWrite writes[] = {CreateMockWrite(req, 0, ASYNC)};
6340
6341 SpdySerializedFrame rst(
6342 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_NO_ERROR));
6343 MockRead reads[] = {CreateMockRead(rst, 1), MockRead(ASYNC, 0, 2)};
6344
6345 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
6346 NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(),
6347 DEFAULT_PRIORITY, NetLogWithSource(),
6348 nullptr);
6349 helper.RunToCompletion(&data);
6350 TransactionHelperResult out = helper.output();
6351 EXPECT_THAT(out.rv, IsError(ERR_SPDY_PROTOCOL_ERROR));
6352 }
6353
6354 // Regression test for https://crbug.com/603182.
6355 // Response headers and data, then RST_STREAM received,
6356 // before request body is sent: success.
6357 TEST_F(SpdyNetworkTransactionTest, RstStreamNoErrorAfterResponse) {
6358 SpdySerializedFrame req(spdy_util_.ConstructChunkedSpdyPost(nullptr, 0));
6359 MockWrite writes[] = {CreateMockWrite(req, 0, ASYNC)};
6360
6361 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(nullptr, 0));
6362 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true));
6363 SpdySerializedFrame rst(
6364 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_NO_ERROR));
6365 MockRead reads[] = {CreateMockRead(resp, 1), CreateMockRead(body, 2),
6366 CreateMockRead(rst, 3), MockRead(ASYNC, 0, 4)};
6367
6368 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
6369 NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(),
6370 DEFAULT_PRIORITY, NetLogWithSource(),
6371 nullptr);
6372 helper.RunToCompletion(&data);
6373 TransactionHelperResult out = helper.output();
6374 EXPECT_THAT(out.rv, IsOk());
6375 EXPECT_EQ("HTTP/1.1 200", out.status_line);
6376 EXPECT_EQ("hello!", out.response_data);
6377 }
6378
6335 class SpdyNetworkTransactionTLSUsageCheckTest 6379 class SpdyNetworkTransactionTLSUsageCheckTest
6336 : public SpdyNetworkTransactionTest { 6380 : public SpdyNetworkTransactionTest {
6337 protected: 6381 protected:
6338 void RunTLSUsageCheckTest( 6382 void RunTLSUsageCheckTest(
6339 std::unique_ptr<SSLSocketDataProvider> ssl_provider) { 6383 std::unique_ptr<SSLSocketDataProvider> ssl_provider) {
6340 SpdySerializedFrame goaway( 6384 SpdySerializedFrame goaway(
6341 spdy_util_.ConstructSpdyGoAway(0, GOAWAY_INADEQUATE_SECURITY, "")); 6385 spdy_util_.ConstructSpdyGoAway(0, GOAWAY_INADEQUATE_SECURITY, ""));
6342 MockWrite writes[] = {CreateMockWrite(goaway)}; 6386 MockWrite writes[] = {CreateMockWrite(goaway)};
6343 6387
6344 StaticSocketDataProvider data(NULL, 0, writes, arraysize(writes)); 6388 StaticSocketDataProvider data(NULL, 0, writes, arraysize(writes));
(...skipping 20 matching lines...) Expand all
6365 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { 6409 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) {
6366 std::unique_ptr<SSLSocketDataProvider> ssl_provider( 6410 std::unique_ptr<SSLSocketDataProvider> ssl_provider(
6367 new SSLSocketDataProvider(ASYNC, OK)); 6411 new SSLSocketDataProvider(ASYNC, OK));
6368 // Set to TLS_RSA_WITH_NULL_MD5 6412 // Set to TLS_RSA_WITH_NULL_MD5
6369 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); 6413 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status);
6370 6414
6371 RunTLSUsageCheckTest(std::move(ssl_provider)); 6415 RunTLSUsageCheckTest(std::move(ssl_provider));
6372 } 6416 }
6373 6417
6374 } // namespace net 6418 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698