| Index: net/http2/hpack/decoder/hpack_block_decoder_test.cc
|
| diff --git a/net/http2/hpack/decoder/hpack_block_decoder_test.cc b/net/http2/hpack/decoder/hpack_block_decoder_test.cc
|
| index 421f0fc59dbbf15dfb3c595126fe0a16df803e4b..566963dcccf4fc346f73f21b889d577711093fe4 100644
|
| --- a/net/http2/hpack/decoder/hpack_block_decoder_test.cc
|
| +++ b/net/http2/hpack/decoder/hpack_block_decoder_test.cc
|
| @@ -8,8 +8,6 @@
|
|
|
| #include <sstream>
|
|
|
| -#include "base/bind.h"
|
| -#include "base/bind_helpers.h"
|
| #include "net/http2/decoder/decode_buffer.h"
|
| #include "net/http2/hpack/decoder/hpack_block_collector.h"
|
| #include "net/http2/hpack/http2_hpack_constants.h"
|
| @@ -29,31 +27,6 @@ namespace test {
|
| namespace {
|
|
|
| class HpackBlockDecoderTest : public RandomDecoderTest {
|
| - public:
|
| - AssertionResult VerifyExpected(const HpackBlockCollector& expected) {
|
| - VERIFY_AND_RETURN_SUCCESS(collector_.VerifyEq(expected));
|
| - }
|
| -
|
| - AssertionResult ValidateForSpecExample_C_2_1() {
|
| - VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralNameValueHeader(
|
| - HpackEntryType::kIndexedLiteralHeader, false, "custom-key", false,
|
| - "custom-header"));
|
| - }
|
| -
|
| - AssertionResult ValidateForSpecExample_C_2_2() {
|
| - VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralValueHeader(
|
| - HpackEntryType::kUnindexedLiteralHeader, 4, false, "/sample/path"));
|
| - }
|
| -
|
| - AssertionResult ValidateForSpecExample_C_2_3() {
|
| - VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralNameValueHeader(
|
| - HpackEntryType::kNeverIndexedLiteralHeader, false, "password", false,
|
| - "secret"));
|
| - }
|
| -
|
| - AssertionResult ValidateForSpecExample_C_2_4() {
|
| - VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleIndexedHeader(2));
|
| - }
|
|
|
| protected:
|
| HpackBlockDecoderTest() : listener_(&collector_), decoder_(&listener_) {
|
| @@ -112,9 +85,11 @@ class HpackBlockDecoderTest : public RandomDecoderTest {
|
|
|
| // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.1
|
| TEST_F(HpackBlockDecoderTest, SpecExample_C_2_1) {
|
| - NoArgValidator do_check =
|
| - base::Bind(&HpackBlockDecoderTest::ValidateForSpecExample_C_2_1,
|
| - base::Unretained(this));
|
| + NoArgValidator do_check = [this]() {
|
| + VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralNameValueHeader(
|
| + HpackEntryType::kIndexedLiteralHeader, false, "custom-key", false,
|
| + "custom-header"));
|
| + };
|
| EXPECT_TRUE(
|
| DecodeHpackExampleAndValidateSeveralWays(R"(
|
| 40 | == Literal indexed ==
|
| @@ -126,14 +101,15 @@ TEST_F(HpackBlockDecoderTest, SpecExample_C_2_1) {
|
| | custom-header
|
| )",
|
| ValidateDoneAndEmpty(do_check)));
|
| - EXPECT_TRUE(do_check.Run());
|
| + EXPECT_TRUE(do_check());
|
| }
|
|
|
| // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.2
|
| TEST_F(HpackBlockDecoderTest, SpecExample_C_2_2) {
|
| - NoArgValidator do_check =
|
| - base::Bind(&HpackBlockDecoderTest::ValidateForSpecExample_C_2_2,
|
| - base::Unretained(this));
|
| + NoArgValidator do_check = [this]() {
|
| + VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralValueHeader(
|
| + HpackEntryType::kUnindexedLiteralHeader, 4, false, "/sample/path"));
|
| + };
|
| EXPECT_TRUE(
|
| DecodeHpackExampleAndValidateSeveralWays(R"(
|
| 04 | == Literal not indexed ==
|
| @@ -144,14 +120,16 @@ TEST_F(HpackBlockDecoderTest, SpecExample_C_2_2) {
|
| | -> :path: /sample/path
|
| )",
|
| ValidateDoneAndEmpty(do_check)));
|
| - EXPECT_TRUE(do_check.Run());
|
| + EXPECT_TRUE(do_check());
|
| }
|
|
|
| // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.3
|
| TEST_F(HpackBlockDecoderTest, SpecExample_C_2_3) {
|
| - NoArgValidator do_check =
|
| - base::Bind(&HpackBlockDecoderTest::ValidateForSpecExample_C_2_3,
|
| - base::Unretained(this));
|
| + NoArgValidator do_check = [this]() {
|
| + VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralNameValueHeader(
|
| + HpackEntryType::kNeverIndexedLiteralHeader, false, "password", false,
|
| + "secret"));
|
| + };
|
| EXPECT_TRUE(
|
| DecodeHpackExampleAndValidateSeveralWays(R"(
|
| 10 | == Literal never indexed ==
|
| @@ -162,14 +140,14 @@ TEST_F(HpackBlockDecoderTest, SpecExample_C_2_3) {
|
| | -> password: secret
|
| )",
|
| ValidateDoneAndEmpty(do_check)));
|
| - EXPECT_TRUE(do_check.Run());
|
| + EXPECT_TRUE(do_check());
|
| }
|
|
|
| // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.4
|
| TEST_F(HpackBlockDecoderTest, SpecExample_C_2_4) {
|
| - NoArgValidator do_check =
|
| - base::Bind(&HpackBlockDecoderTest::ValidateForSpecExample_C_2_4,
|
| - base::Unretained(this));
|
| + NoArgValidator do_check = [this]() {
|
| + VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleIndexedHeader(2));
|
| + };
|
| EXPECT_TRUE(
|
| DecodeHpackExampleAndValidateSeveralWays(R"(
|
| 82 | == Indexed - Add ==
|
| @@ -177,7 +155,7 @@ TEST_F(HpackBlockDecoderTest, SpecExample_C_2_4) {
|
| | -> :method: GET
|
| )",
|
| ValidateDoneAndEmpty(do_check)));
|
| - EXPECT_TRUE(do_check.Run());
|
| + EXPECT_TRUE(do_check());
|
| }
|
| // http://httpwg.org/specs/rfc7541.html#rfc.section.C.3.1
|
| TEST_F(HpackBlockDecoderTest, SpecExample_C_3_1) {
|
| @@ -205,11 +183,12 @@ TEST_F(HpackBlockDecoderTest, SpecExample_C_3_1) {
|
| expected.ExpectIndexedHeader(4);
|
| expected.ExpectNameIndexAndLiteralValue(HpackEntryType::kIndexedLiteralHeader,
|
| 1, false, "www.example.com");
|
| - NoArgValidator do_check = base::Bind(&HpackBlockDecoderTest::VerifyExpected,
|
| - base::Unretained(this), expected);
|
| + NoArgValidator do_check = [expected, this]() {
|
| + VERIFY_AND_RETURN_SUCCESS(collector_.VerifyEq(expected));
|
| + };
|
| EXPECT_TRUE(DecodeHpackExampleAndValidateSeveralWays(
|
| example, ValidateDoneAndEmpty(do_check)));
|
| - EXPECT_TRUE(do_check.Run());
|
| + EXPECT_TRUE(do_check());
|
| }
|
|
|
| // http://httpwg.org/specs/rfc7541.html#rfc.section.C.5.1
|
| @@ -254,11 +233,12 @@ TEST_F(HpackBlockDecoderTest, SpecExample_C_5_1) {
|
| "Mon, 21 Oct 2013 20:13:21 GMT");
|
| expected.ExpectNameIndexAndLiteralValue(HpackEntryType::kIndexedLiteralHeader,
|
| 46, false, "https://www.example.com");
|
| - NoArgValidator do_check = base::Bind(&HpackBlockDecoderTest::VerifyExpected,
|
| - base::Unretained(this), expected);
|
| + NoArgValidator do_check = [expected, this]() {
|
| + VERIFY_AND_RETURN_SUCCESS(collector_.VerifyEq(expected));
|
| + };
|
| EXPECT_TRUE(DecodeHpackExampleAndValidateSeveralWays(
|
| example, ValidateDoneAndEmpty(do_check)));
|
| - EXPECT_TRUE(do_check.Run());
|
| + EXPECT_TRUE(do_check());
|
| }
|
|
|
| // Generate a bunch of HPACK block entries to expect, use those expectations
|
| @@ -303,11 +283,12 @@ TEST_F(HpackBlockDecoderTest, Computed) {
|
| HpackBlockBuilder hbb;
|
| expected.AppendToHpackBlockBuilder(&hbb);
|
|
|
| - NoArgValidator do_check = base::Bind(&HpackBlockDecoderTest::VerifyExpected,
|
| - base::Unretained(this), expected);
|
| + NoArgValidator do_check = [expected, this]() {
|
| + VERIFY_AND_RETURN_SUCCESS(collector_.VerifyEq(expected));
|
| + };
|
| EXPECT_TRUE(
|
| DecodeAndValidateSeveralWays(hbb, ValidateDoneAndEmpty(do_check)));
|
| - EXPECT_TRUE(do_check.Run());
|
| + EXPECT_TRUE(do_check());
|
| }
|
|
|
| } // namespace
|
|
|