diff --git a/url/urlsearchparams-size.any.js b/url/urlsearchparams-size.any.js new file mode 100644 index 00000000000000..eaf6d5e69b5fac --- /dev/null +++ b/url/urlsearchparams-size.any.js @@ -0,0 +1,34 @@ +test(() => { + const params = new URLSearchParams("a=1&b=2&a=3"); + assert_equals(params.size, 3); + + params.delete("a"); + assert_equals(params.size, 1); +}, "URLSearchParams's size and deletion"); + +test(() => { + const params = new URLSearchParams("a=1&b=2&a=3"); + assert_equals(params.size, 3); + + params.append("b", "4"); + assert_equals(params.size, 4); +}, "URLSearchParams's size and addition"); + +test(() => { + const url = new URL("http://localhost/query?a=1&b=2&a=3"); + assert_equals(url.searchParams.size, 3); + + params.delete("a"); + assert_equals(url.searchParams.size, 1); + + params.append("b", 4); + assert_equals(url.searchParams.size, 2); +}, "URLSearchParams's size when obtained from a URL"); + +test(() => { + const url = new URL("http://localhost/query?a=1&b=2&a=3"); + assert_equals(url.searchParams.size, 3); + + url.search = "?"; + assert_equals(url.searchParams.size, 0); +}, "URLSearchParams's size when obtained from a URL and using .search");