From 0ae0bb500054349bc7d40ec771bc97efb6a577a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rimas=20Misevi=C4=8Dius?= Date: Thu, 18 Jun 2026 19:51:06 +0300 Subject: [PATCH] Add URL Pattern test with an empty regexp group Folows: https://github.com/web-platform-tests/wpt/commit/11a459a2b1d411506d9230edf9f2ef32babfeb0b --- test/wpt-urlpattern.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/test/wpt-urlpattern.cpp b/test/wpt-urlpattern.cpp index d9453fa8..daf963d1 100644 --- a/test/wpt-urlpattern.cpp +++ b/test/wpt-urlpattern.cpp @@ -116,7 +116,7 @@ namespace doctest { // ----------------------------------------------------------------------------- // https://github.com/web-platform-tests/wpt/blob/master/urlpattern/urlpattern-constructor.any.js -TEST_SUITE("urlpattern_constructor") { +TEST_SUITE("urlpattern-constructor") { TEST_CASE("Test unclosed token") { CHECK_THROWS_AS(urlpattern{ upa::url("https://example.org/%(").to_string() }, upa::urlpattern_error); @@ -131,6 +131,22 @@ TEST_SUITE("urlpattern_constructor") { // }, `Test constructor with undefined`); } +// ----------------------------------------------------------------------------- +// https://github.com/web-platform-tests/wpt/blob/master/urlpattern/urlpattern-empty-regexp-group.html + +TEST_SUITE("urlpattern-empty-regexp-group") { + TEST_CASE("URLPattern rejects an empty regexp group '()' with a TypeError") { + upa::urlpattern_init init; + init.pathname = "()"; + CHECK_THROWS_AS(urlpattern{ init }, upa::urlpattern_error); + } + TEST_CASE("URLPattern accepts a non-empty regexp group '(a)'") { + upa::urlpattern_init init; + init.pathname = "(a)"; + CHECK_NOTHROW(urlpattern{ init }); + } +} + // ----------------------------------------------------------------------------- // https://github.com/web-platform-tests/wpt/blob/master/urlpattern/resources/urlpattern-hasregexpgroups-tests.js