Skip to content

Commit 15518f1

Browse files
tcl3awesomekling
authored andcommitted
Tests: Add some basic public suffix tests
1 parent 85e8d2b commit 15518f1

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

Tests/LibURL/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
set(URL_TEST_SOURCES
22
TestURL.cpp
33
TestURLPatternConstructorStringParser.cpp
4+
TestPublicSuffix.cpp
45
)
56

67
foreach(source IN LISTS URL_TEST_SOURCES)

Tests/LibURL/TestPublicSuffix.cpp

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/*
2+
* Copyright (c) 2025, Tim Ledbetter <tim.ledbetter@ladybird.org>
3+
*
4+
* SPDX-License-Identifier: BSD-2-Clause
5+
*/
6+
7+
#include <LibTest/TestCase.h>
8+
9+
#include <LibURL/PublicSuffixData.h>
10+
11+
TEST_CASE(is_public_suffix)
12+
{
13+
auto* public_suffix_data = URL::PublicSuffixData::the();
14+
15+
EXPECT(public_suffix_data->is_public_suffix("com"sv));
16+
EXPECT(public_suffix_data->is_public_suffix("com.br"sv));
17+
18+
EXPECT(!public_suffix_data->is_public_suffix(""sv));
19+
EXPECT(!public_suffix_data->is_public_suffix("."sv));
20+
EXPECT(!public_suffix_data->is_public_suffix(".."sv));
21+
EXPECT(!public_suffix_data->is_public_suffix("/"sv));
22+
EXPECT(!public_suffix_data->is_public_suffix("not-a-public-suffix.com"sv));
23+
EXPECT(!public_suffix_data->is_public_suffix("com."sv));
24+
EXPECT(!public_suffix_data->is_public_suffix("com/"sv));
25+
EXPECT(!public_suffix_data->is_public_suffix("/com"sv));
26+
EXPECT(!public_suffix_data->is_public_suffix("not-a-public-suffix"sv));
27+
EXPECT(!public_suffix_data->is_public_suffix(" com"sv));
28+
EXPECT(!public_suffix_data->is_public_suffix("com "sv));
29+
}
30+
31+
TEST_CASE(get_public_suffix)
32+
{
33+
auto* public_suffix_data = URL::PublicSuffixData::the();
34+
35+
EXPECT_EQ(public_suffix_data->get_public_suffix(""sv), OptionalNone {});
36+
EXPECT_EQ(public_suffix_data->get_public_suffix("."sv), OptionalNone {});
37+
EXPECT_EQ(public_suffix_data->get_public_suffix(".."sv), OptionalNone {});
38+
EXPECT_EQ(public_suffix_data->get_public_suffix(" "sv), OptionalNone {});
39+
EXPECT_EQ(public_suffix_data->get_public_suffix("/"sv), OptionalNone {});
40+
EXPECT_EQ(public_suffix_data->get_public_suffix("not-a-public-suffix"sv), OptionalNone {});
41+
42+
EXPECT_EQ(public_suffix_data->get_public_suffix("com"sv), "com"sv);
43+
EXPECT_EQ(public_suffix_data->get_public_suffix("not-a-public-suffix.com"sv), "com"sv);
44+
EXPECT_EQ(public_suffix_data->get_public_suffix("com."sv), "com"sv);
45+
EXPECT_EQ(public_suffix_data->get_public_suffix(".com."sv), "com"sv);
46+
EXPECT_EQ(public_suffix_data->get_public_suffix("..com."sv), "com"sv);
47+
EXPECT_EQ(public_suffix_data->get_public_suffix("com.br"sv), "com.br"sv);
48+
EXPECT_EQ(public_suffix_data->get_public_suffix("not-a-public-suffix.com.br"sv), "com.br"sv);
49+
}

0 commit comments

Comments
 (0)