Implement EXPECT_THAT(QuicHeaderList, ElementsAre()).

When trying to use the EXPECT_THAT(QuicHeaderList, ElementsAre()) idiom, gMock
complained about QuicHeaderList::value_type not being defined.  This CL defines
QuicHeaderList::value_type and uses this idiom in a few tests.

gfe-relnote: n/a.  Test-only change.
PiperOrigin-RevId: 243788793
Change-Id: Ia7816e85c5215e545ac0909609fbdef335361efc
diff --git a/quic/core/http/quic_header_list.h b/quic/core/http/quic_header_list.h
index 5d5c2a4..cc6e7bc 100644
--- a/quic/core/http/quic_header_list.h
+++ b/quic/core/http/quic_header_list.h
@@ -23,8 +23,9 @@
 class QUIC_EXPORT_PRIVATE QuicHeaderList
     : public spdy::SpdyHeadersHandlerInterface {
  public:
-  typedef QuicDeque<std::pair<std::string, std::string>> ListType;
-  typedef ListType::const_iterator const_iterator;
+  using ListType = QuicDeque<std::pair<std::string, std::string>>;
+  using value_type = ListType::value_type;
+  using const_iterator = ListType::const_iterator;
 
   QuicHeaderList();
   QuicHeaderList(QuicHeaderList&& other);
diff --git a/quic/core/http/quic_header_list_test.cc b/quic/core/http/quic_header_list_test.cc
index a50396e..67bd35f 100644
--- a/quic/core/http/quic_header_list_test.cc
+++ b/quic/core/http/quic_header_list_test.cc
@@ -9,6 +9,9 @@
 #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
 
+using ::testing::ElementsAre;
+using ::testing::Pair;
+
 namespace quic {
 
 class QuicHeaderListTest : public QuicTest {};
@@ -20,6 +23,16 @@
   headers.OnHeader("april", "fools");
   headers.OnHeader("beep", "");
 
+  EXPECT_THAT(headers, ElementsAre(Pair("foo", "bar"), Pair("april", "fools"),
+                                   Pair("beep", "")));
+}
+
+TEST_F(QuicHeaderListTest, DebugString) {
+  QuicHeaderList headers;
+  headers.OnHeader("foo", "bar");
+  headers.OnHeader("april", "fools");
+  headers.OnHeader("beep", "");
+
   EXPECT_EQ("{ foo=bar, april=fools, beep=, }", headers.DebugString());
 }
 
@@ -61,8 +74,10 @@
   QuicHeaderList headers2(headers);
   QuicHeaderList headers3 = headers;
 
-  EXPECT_EQ("{ foo=bar, april=fools, beep=, }", headers2.DebugString());
-  EXPECT_EQ("{ foo=bar, april=fools, beep=, }", headers3.DebugString());
+  EXPECT_THAT(headers2, ElementsAre(Pair("foo", "bar"), Pair("april", "fools"),
+                                    Pair("beep", "")));
+  EXPECT_THAT(headers3, ElementsAre(Pair("foo", "bar"), Pair("april", "fools"),
+                                    Pair("beep", "")));
 }
 
 }  // namespace quic
diff --git a/quic/core/qpack/qpack_decoded_headers_accumulator_test.cc b/quic/core/qpack/qpack_decoded_headers_accumulator_test.cc
index 27c6fa1..eb6f622 100644
--- a/quic/core/qpack/qpack_decoded_headers_accumulator_test.cc
+++ b/quic/core/qpack/qpack_decoded_headers_accumulator_test.cc
@@ -11,7 +11,9 @@
 #include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_text_utils.h"
 
+using ::testing::ElementsAre;
 using ::testing::Eq;
+using ::testing::Pair;
 using ::testing::StrictMock;
 
 namespace quic {
@@ -83,13 +85,8 @@
   EXPECT_TRUE(accumulator_.Decode(encoded_data));
   EXPECT_TRUE(accumulator_.EndHeaderBlock());
 
-  auto header_list = accumulator_.quic_header_list();
-  auto it = header_list.begin();
-  EXPECT_TRUE(it != header_list.end());
-  EXPECT_EQ("foo", it->first);
-  EXPECT_EQ("bar", it->second);
-  ++it;
-  EXPECT_TRUE(it == header_list.end());
+  const QuicHeaderList& header_list = accumulator_.quic_header_list();
+  EXPECT_THAT(header_list, ElementsAre(Pair("foo", "bar")));
 
   EXPECT_EQ(strlen("foo") + strlen("bar"),
             header_list.uncompressed_header_bytes());