blob: 52503e3739e1be870cc331d9d0fd35d855361269 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "quiche/common/masque/connect_udp_datagram_payload.h"
#include <memory>
#include "absl/strings/string_view.h"
#include "quiche/common/platform/api/quiche_test.h"
namespace quiche::test {
namespace {
TEST(ConnectUdpDatagramPayloadTest, ParseUdpPacket) {
static constexpr char kDatagramPayload[] = "\x00packet";
std::unique_ptr<ConnectUdpDatagramPayload> parsed =
ConnectUdpDatagramPayload::Parse(
absl::string_view(kDatagramPayload, sizeof(kDatagramPayload) - 1));
ASSERT_TRUE(parsed);
EXPECT_EQ(parsed->GetContextId(),
ConnectUdpDatagramUdpPacketPayload::kContextId);
EXPECT_EQ(parsed->GetType(), ConnectUdpDatagramPayload::Type::kUdpPacket);
EXPECT_EQ(parsed->GetUdpProxyingPayload(), "packet");
}
TEST(ConnectUdpDatagramPayloadTest, SerializeUdpPacket) {
static constexpr absl::string_view kUdpPacket = "packet";
ConnectUdpDatagramUdpPacketPayload payload(kUdpPacket);
EXPECT_EQ(payload.GetUdpProxyingPayload(), kUdpPacket);
EXPECT_EQ(payload.Serialize(), std::string("\x00packet", 7));
}
TEST(ConnectUdpDatagramPayloadTest, ParseUnknownPacket) {
static constexpr char kDatagramPayload[] = "\x05packet";
std::unique_ptr<ConnectUdpDatagramPayload> parsed =
ConnectUdpDatagramPayload::Parse(
absl::string_view(kDatagramPayload, sizeof(kDatagramPayload) - 1));
ASSERT_TRUE(parsed);
EXPECT_EQ(parsed->GetContextId(), 5);
EXPECT_EQ(parsed->GetType(), ConnectUdpDatagramPayload::Type::kUnknown);
EXPECT_EQ(parsed->GetUdpProxyingPayload(), "packet");
}
TEST(ConnectUdpDatagramPayloadTest, SerializeUnknownPacket) {
static constexpr absl::string_view kInnerUdpProxyingPayload = "packet";
ConnectUdpDatagramUnknownPayload payload(4u, kInnerUdpProxyingPayload);
EXPECT_EQ(payload.GetUdpProxyingPayload(), kInnerUdpProxyingPayload);
EXPECT_EQ(payload.Serialize(), std::string("\x04packet", 7));
}
} // namespace
} // namespace quiche::test