blob: 1c93d17dc6a3f66a68a4a36cd1b2f90e3f4795af [file] [log] [blame]
// Copyright 2024 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/moqt/tools/moq_chat.h"
#include "quiche/quic/moqt/moqt_messages.h"
#include "quiche/common/platform/api/quiche_test.h"
namespace moqt {
namespace {
class MoqChatStringsTest : public quiche::test::QuicheTest {
public:
MoqChatStrings strings_{"chat-id"};
};
TEST_F(MoqChatStringsTest, IsValidPath) {
EXPECT_TRUE(strings_.IsValidPath("/moq-chat"));
EXPECT_FALSE(strings_.IsValidPath("moq-chat"));
EXPECT_FALSE(strings_.IsValidPath("/moq-cha"));
EXPECT_FALSE(strings_.IsValidPath("/moq-chats"));
EXPECT_FALSE(strings_.IsValidPath("/moq-chat/"));
}
TEST_F(MoqChatStringsTest, GetUsernameFromTrackNamespace) {
EXPECT_EQ(strings_.GetUsernameFromTrackNamespace(
"moq-chat/chat-id/participant/user"),
"user");
EXPECT_EQ(strings_.GetUsernameFromTrackNamespace(
"/moq-chat/chat-id/participant/user"),
"");
EXPECT_EQ(strings_.GetUsernameFromTrackNamespace(
"moq-chat/chat-id/participant/user/"),
"");
EXPECT_EQ(strings_.GetUsernameFromTrackNamespace(
"moq-cha/chat-id/participant/user"),
"");
EXPECT_EQ(strings_.GetUsernameFromTrackNamespace(
"moq-chat/chat-i/participant/user"),
"");
EXPECT_EQ(strings_.GetUsernameFromTrackNamespace(
"moq-chat/chat-id/participan/user"),
"");
EXPECT_EQ(strings_.GetUsernameFromTrackNamespace("moq-chat/chat-id/user"),
"");
EXPECT_EQ(strings_.GetUsernameFromTrackNamespace(
"moq-chat/chat-id/participant/foo/user"),
"");
}
TEST_F(MoqChatStringsTest, GetUsernameFromFullTrackName) {
EXPECT_EQ(strings_.GetUsernameFromFullTrackName(
FullTrackName("moq-chat/chat-id/participant/user", "")),
"user");
EXPECT_EQ(strings_.GetUsernameFromFullTrackName(
FullTrackName("moq-chat/chat-id/participant/user", "foo")),
"");
}
TEST_F(MoqChatStringsTest, GetFullTrackNameFromUsername) {
EXPECT_EQ(strings_.GetFullTrackNameFromUsername("user"),
FullTrackName("moq-chat/chat-id/participant/user", ""));
}
TEST_F(MoqChatStringsTest, GetCatalogName) {
EXPECT_EQ(strings_.GetCatalogName(),
FullTrackName("moq-chat/chat-id", "/catalog"));
}
} // namespace
} // namespace moqt