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 two different SPDY versions: SPDY/2 and SPDY/3. | |
22 INSTANTIATE_TEST_CASE_P(SpdyFrameBuilderTests, | 21 INSTANTIATE_TEST_CASE_P(SpdyFrameBuilderTests, |
23 SpdyFrameBuilderTest, | 22 SpdyFrameBuilderTest, |
24 ::testing::Values(SPDY2, SPDY3, SPDY4)); | 23 ::testing::Values(SPDY3, SPDY4)); |
25 | 24 |
26 TEST_P(SpdyFrameBuilderTest, GetWritableBuffer) { | 25 TEST_P(SpdyFrameBuilderTest, GetWritableBuffer) { |
27 const size_t builder_size = 10; | 26 const size_t builder_size = 10; |
28 SpdyFrameBuilder builder(builder_size, spdy_version_); | 27 SpdyFrameBuilder builder(builder_size, spdy_version_); |
29 char* writable_buffer = builder.GetWritableBuffer(builder_size); | 28 char* writable_buffer = builder.GetWritableBuffer(builder_size); |
30 memset(writable_buffer, ~1, builder_size); | 29 memset(writable_buffer, ~1, builder_size); |
31 EXPECT_TRUE(builder.Seek(builder_size)); | 30 EXPECT_TRUE(builder.Seek(builder_size)); |
32 scoped_ptr<SpdyFrame> frame(builder.take()); | 31 scoped_ptr<SpdyFrame> frame(builder.take()); |
33 char expected[builder_size]; | 32 char expected[builder_size]; |
34 memset(expected, ~1, builder_size); | 33 memset(expected, ~1, builder_size); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 scoped_ptr<SpdyFrame> expected(framer.SerializeHeaders(headers_ir)); | 67 scoped_ptr<SpdyFrame> expected(framer.SerializeHeaders(headers_ir)); |
69 SpdyFrameBuilder builder(expected->size(), spdy_version_); | 68 SpdyFrameBuilder builder(expected->size(), spdy_version_); |
70 builder.BeginNewFrame(framer, HEADERS, 0, 1); | 69 builder.BeginNewFrame(framer, HEADERS, 0, 1); |
71 builder.OverwriteFlags(framer, HEADERS_FLAG_END_HEADERS); | 70 builder.OverwriteFlags(framer, HEADERS_FLAG_END_HEADERS); |
72 scoped_ptr<SpdyFrame> built(builder.take()); | 71 scoped_ptr<SpdyFrame> built(builder.take()); |
73 EXPECT_EQ(base::StringPiece(expected->data(), expected->size()), | 72 EXPECT_EQ(base::StringPiece(expected->data(), expected->size()), |
74 base::StringPiece(built->data(), built->size())); | 73 base::StringPiece(built->data(), built->size())); |
75 } | 74 } |
76 | 75 |
77 } // namespace net | 76 } // namespace net |
OLD | NEW |