blob: e13e25488575802f3d50be0acaa5b25ab3e6601e [file] [log] [blame]
// Copyright (c) 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "quiche/quic/core/http/quic_header_list.h"
#include <string>
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_test.h"
using ::testing::ElementsAre;
using ::testing::Pair;
namespace quic::test {
class QuicHeaderListTest : public QuicTest {};
// This test verifies that QuicHeaderList accumulates header pairs in order.
TEST_F(QuicHeaderListTest, OnHeader) {
QuicHeaderList headers;
headers.OnHeader("foo", "bar");
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());
}
// This test verifies that QuicHeaderList is copyable and assignable.
TEST_F(QuicHeaderListTest, IsCopyableAndAssignable) {
QuicHeaderList headers;
headers.OnHeader("foo", "bar");
headers.OnHeader("april", "fools");
headers.OnHeader("beep", "");
QuicHeaderList headers2(headers);
QuicHeaderList headers3 = headers;
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::test