OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_frame_builder.h" | 5 #include "net/spdy/spdy_frame_builder.h" |
6 | 6 |
7 #include "net/spdy/spdy_framer.h" | 7 #include "net/spdy/spdy_framer.h" |
8 #include "net/spdy/spdy_protocol.h" | 8 #include "net/spdy/spdy_protocol.h" |
9 #include "testing/platform_test.h" | 9 #include "testing/platform_test.h" |
10 | 10 |
11 namespace net { | 11 namespace net { |
12 | 12 |
13 class SpdyFrameBuilderTest : public ::testing::TestWithParam<SpdyMajorVersion> { | 13 class SpdyFrameBuilderTest : public ::testing::TestWithParam<SpdyMajorVersion> { |
14 protected: | 14 protected: |
15 void SetUp() override { spdy_version_ = GetParam(); } | 15 void SetUp() override { spdy_version_ = GetParam(); } |
16 | 16 |
17 // Major version of SPDY protocol to be used. | 17 // Major version of SPDY protocol to be used. |
18 SpdyMajorVersion spdy_version_; | 18 SpdyMajorVersion spdy_version_; |
19 }; | 19 }; |
20 | 20 |
21 // All tests are run with three different SPDY versions: SPDY/2, SPDY/3 and | 21 // All tests are run with SPDY/3 and HTTP/2. |
22 // HTTP/2. | |
23 INSTANTIATE_TEST_CASE_P(SpdyFrameBuilderTests, | 22 INSTANTIATE_TEST_CASE_P(SpdyFrameBuilderTests, |
24 SpdyFrameBuilderTest, | 23 SpdyFrameBuilderTest, |
25 ::testing::Values(SPDY2, SPDY3, HTTP2)); | 24 ::testing::Values(SPDY3, HTTP2)); |
26 | 25 |
27 TEST_P(SpdyFrameBuilderTest, GetWritableBuffer) { | 26 TEST_P(SpdyFrameBuilderTest, GetWritableBuffer) { |
28 const size_t builder_size = 10; | 27 const size_t builder_size = 10; |
29 SpdyFrameBuilder builder(builder_size, spdy_version_); | 28 SpdyFrameBuilder builder(builder_size, spdy_version_); |
30 char* writable_buffer = builder.GetWritableBuffer(builder_size); | 29 char* writable_buffer = builder.GetWritableBuffer(builder_size); |
31 memset(writable_buffer, ~1, builder_size); | 30 memset(writable_buffer, ~1, builder_size); |
32 EXPECT_TRUE(builder.Seek(builder_size)); | 31 EXPECT_TRUE(builder.Seek(builder_size)); |
33 scoped_ptr<SpdyFrame> frame(builder.take()); | 32 scoped_ptr<SpdyFrame> frame(builder.take()); |
34 char expected[builder_size]; | 33 char expected[builder_size]; |
35 memset(expected, ~1, builder_size); | 34 memset(expected, ~1, builder_size); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 scoped_ptr<SpdyFrame> expected(framer.SerializeHeaders(headers_ir)); | 68 scoped_ptr<SpdyFrame> expected(framer.SerializeHeaders(headers_ir)); |
70 SpdyFrameBuilder builder(expected->size(), spdy_version_); | 69 SpdyFrameBuilder builder(expected->size(), spdy_version_); |
71 builder.BeginNewFrame(framer, HEADERS, 0, 1); | 70 builder.BeginNewFrame(framer, HEADERS, 0, 1); |
72 builder.OverwriteFlags(framer, HEADERS_FLAG_END_HEADERS); | 71 builder.OverwriteFlags(framer, HEADERS_FLAG_END_HEADERS); |
73 scoped_ptr<SpdyFrame> built(builder.take()); | 72 scoped_ptr<SpdyFrame> built(builder.take()); |
74 EXPECT_EQ(base::StringPiece(expected->data(), expected->size()), | 73 EXPECT_EQ(base::StringPiece(expected->data(), expected->size()), |
75 base::StringPiece(built->data(), built->size())); | 74 base::StringPiece(built->data(), built->size())); |
76 } | 75 } |
77 | 76 |
78 } // namespace net | 77 } // namespace net |
OLD | NEW |