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

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

Issue 2544813002: Remove enum SpdyMajorVersion. (Closed)
Patch Set: Merge comment changes from 140661724. 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
« no previous file with comments | « net/spdy/spdy_headers_block_parser.cc ('k') | net/spdy/spdy_network_transaction_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "net/spdy/spdy_headers_block_parser.h" 5 #include "net/spdy/spdy_headers_block_parser.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 17 matching lines...) Expand all
28 // A mock the handler class to check that we parse out the correct headers 28 // A mock the handler class to check that we parse out the correct headers
29 // and call the callback methods when we should. 29 // and call the callback methods when we should.
30 class MockSpdyHeadersHandler : public SpdyHeadersHandlerInterface { 30 class MockSpdyHeadersHandler : public SpdyHeadersHandlerInterface {
31 public: 31 public:
32 MOCK_METHOD0(OnHeaderBlockStart, void()); 32 MOCK_METHOD0(OnHeaderBlockStart, void());
33 MOCK_METHOD1(OnHeaderBlockEnd, void(size_t bytes)); 33 MOCK_METHOD1(OnHeaderBlockEnd, void(size_t bytes));
34 MOCK_METHOD2(OnHeaderBlockEnd, void(size_t bytes, size_t compressed_bytes)); 34 MOCK_METHOD2(OnHeaderBlockEnd, void(size_t bytes, size_t compressed_bytes));
35 MOCK_METHOD2(OnHeader, void(StringPiece key, StringPiece value)); 35 MOCK_METHOD2(OnHeader, void(StringPiece key, StringPiece value));
36 }; 36 };
37 37
38 class SpdyHeadersBlockParserTest : 38 class SpdyHeadersBlockParserTest : public ::testing::Test {
39 public ::testing::TestWithParam<SpdyMajorVersion> {
40 public: 39 public:
41 ~SpdyHeadersBlockParserTest() override {} 40 ~SpdyHeadersBlockParserTest() override {}
42 41
43 protected: 42 protected:
44 void SetUp() override { 43 void SetUp() override {
45 // Create a parser using the mock handler. 44 // Create a parser using the mock handler.
46 parser_.reset(new SpdyHeadersBlockParser(HTTP2, &handler_)); 45 parser_.reset(new SpdyHeadersBlockParser(&handler_));
47 } 46 }
48 47
49 // Create a header block with a specified number of headers. 48 // Create a header block with a specified number of headers.
50 string CreateHeaders(uint32_t num_headers, bool insert_nulls) { 49 string CreateHeaders(uint32_t num_headers, bool insert_nulls) {
51 string headers; 50 string headers;
52 51
53 // First, write the number of headers in the header block. 52 // First, write the number of headers in the header block.
54 headers += EncodeLength(num_headers); 53 headers += EncodeLength(num_headers);
55 54
56 // Second, write the key-value pairs. 55 // Second, write the key-value pairs.
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 217
219 TEST_F(SpdyHeadersBlockParserTest, LargeBlocksDiscardedTest) { 218 TEST_F(SpdyHeadersBlockParserTest, LargeBlocksDiscardedTest) {
220 // Header block with too many headers. 219 // Header block with too many headers.
221 { 220 {
222 string headers = EncodeLength(parser_->MaxNumberOfHeaders() + 1); 221 string headers = EncodeLength(parser_->MaxNumberOfHeaders() + 1);
223 EXPECT_FALSE(parser_-> 222 EXPECT_FALSE(parser_->
224 HandleControlFrameHeadersData(1, headers.c_str(), headers.length())); 223 HandleControlFrameHeadersData(1, headers.c_str(), headers.length()));
225 EXPECT_EQ(SpdyHeadersBlockParser::HEADER_BLOCK_TOO_LARGE, 224 EXPECT_EQ(SpdyHeadersBlockParser::HEADER_BLOCK_TOO_LARGE,
226 parser_->get_error()); 225 parser_->get_error());
227 } 226 }
228 parser_.reset(new SpdyHeadersBlockParser(HTTP2, &handler_)); 227 parser_.reset(new SpdyHeadersBlockParser(&handler_));
229 // Header block with one header, which has a too-long key. 228 // Header block with one header, which has a too-long key.
230 { 229 {
231 string headers = EncodeLength(1) + EncodeLength( 230 string headers = EncodeLength(1) + EncodeLength(
232 SpdyHeadersBlockParser::kMaximumFieldLength + 1); 231 SpdyHeadersBlockParser::kMaximumFieldLength + 1);
233 EXPECT_FALSE(parser_-> 232 EXPECT_FALSE(parser_->
234 HandleControlFrameHeadersData(1, headers.c_str(), headers.length())); 233 HandleControlFrameHeadersData(1, headers.c_str(), headers.length()));
235 EXPECT_EQ(SpdyHeadersBlockParser::HEADER_FIELD_TOO_LARGE, 234 EXPECT_EQ(SpdyHeadersBlockParser::HEADER_FIELD_TOO_LARGE,
236 parser_->get_error()); 235 parser_->get_error());
237 } 236 }
238 } 237 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 string headers(CreateHeaders(kNumHeadersInBlock, false)); 272 string headers(CreateHeaders(kNumHeadersInBlock, false));
274 bool result; 273 bool result;
275 EXPECT_SPDY_BUG( 274 EXPECT_SPDY_BUG(
276 result = parser_->HandleControlFrameHeadersData(0, headers.data(), 1), 275 result = parser_->HandleControlFrameHeadersData(0, headers.data(), 1),
277 "Expected nonzero stream id, saw: 0"); 276 "Expected nonzero stream id, saw: 0");
278 EXPECT_FALSE(result); 277 EXPECT_FALSE(result);
279 EXPECT_EQ(SpdyHeadersBlockParser::UNEXPECTED_STREAM_ID, parser_->get_error()); 278 EXPECT_EQ(SpdyHeadersBlockParser::UNEXPECTED_STREAM_ID, parser_->get_error());
280 } 279 }
281 280
282 } // namespace net 281 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_headers_block_parser.cc ('k') | net/spdy/spdy_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698