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);
url.searchParams.delete("a");
assert_equals(url.searchParams.size, 1);
url.searchParams.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");