mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-28 14:43:28 +00:00
110 lines
3.8 KiB
HTML
110 lines
3.8 KiB
HTML
<!DOCTYPE html>
|
|
<script src="../testing.js"></script>
|
|
<script id=url>
|
|
var url = new URL('https://foo.bar/path?query#fragment');
|
|
testing.expectEqual("https://foo.bar", url.origin);
|
|
testing.expectEqual("https://foo.bar/path?query#fragment", url.href);
|
|
testing.expectEqual("https:", url.protocol);
|
|
testing.expectEqual("", url.username);
|
|
testing.expectEqual("", url.password);
|
|
testing.expectEqual("foo.bar", url.host);
|
|
testing.expectEqual("foo.bar", url.hostname);
|
|
testing.expectEqual("", url.port);
|
|
testing.expectEqual("/path", url.pathname);
|
|
testing.expectEqual("?query", url.search);
|
|
testing.expectEqual("#fragment", url.hash);
|
|
testing.expectEqual("", url.searchParams.get('query'));
|
|
|
|
url.search = 'hello=world';
|
|
testing.expectEqual(1, url.searchParams.size);
|
|
testing.expectEqual("world", url.searchParams.get('hello'));
|
|
|
|
url.search = '?over=9000';
|
|
testing.expectEqual(1, url.searchParams.size);
|
|
testing.expectEqual("9000", url.searchParams.get('over'));
|
|
|
|
url.search = '';
|
|
testing.expectEqual(0, url.searchParams.size);
|
|
|
|
const url2 = new URL(url);
|
|
testing.expectEqual("https://foo.bar/path#fragment", url2.href);
|
|
</script>
|
|
|
|
<script id="constructor">
|
|
testing.expectError("TypeError: invalid argument", () => {
|
|
new URL(document.createElement('a'));
|
|
});
|
|
|
|
let a = document.createElement('a');
|
|
a.href = 'https://www.lightpanda.io/over?9000=!!';
|
|
const url3 = new URL(a);
|
|
testing.expectEqual("https://www.lightpanda.io/over?9000=%21%21", url3.href);
|
|
</script>
|
|
|
|
<script id=searchParams>
|
|
url = new URL('https://foo.bar/path?a=~&b=%7E#fragment');
|
|
testing.expectEqual("~", url.searchParams.get('a'));
|
|
testing.expectEqual("~", url.searchParams.get('b'));
|
|
|
|
url.searchParams.append('c', 'foo');
|
|
testing.expectEqual("foo", url.searchParams.get('c'));
|
|
testing.expectEqual(1, url.searchParams.getAll('c').length);
|
|
testing.expectEqual("foo", url.searchParams.getAll('c')[0]);
|
|
testing.expectEqual(3, url.searchParams.size);
|
|
|
|
// search is dynamic
|
|
testing.expectEqual("?a=~&b=~&c=foo", url.search);
|
|
|
|
// href is dynamic
|
|
testing.expectEqual("https://foo.bar/path?a=~&b=~&c=foo#fragment", url.href);
|
|
|
|
url.searchParams.delete('c', 'foo');
|
|
testing.expectEqual(null, url.searchParams.get('c'));
|
|
url.searchParams.delete('a');
|
|
testing.expectEqual(null, url.searchParams.get('a'));
|
|
</script>
|
|
|
|
<script id=searchParamsSetHref>
|
|
url = new URL("https://foo.bar");
|
|
const searchParams = url.searchParams;
|
|
|
|
// SearchParams should be empty.
|
|
testing.expectEqual(0, searchParams.size);
|
|
|
|
url.href = "https://lightpanda.io?over=9000&light=panda";
|
|
// It won't hurt to check href and host too.
|
|
testing.expectEqual("https://lightpanda.io/?over=9000&light=panda", url.href);
|
|
testing.expectEqual("lightpanda.io", url.host);
|
|
// SearchParams should be updated too when URL is set.
|
|
testing.expectEqual(2, searchParams.size);
|
|
testing.expectEqual("9000", searchParams.get("over"));
|
|
testing.expectEqual("panda", searchParams.get("light"));
|
|
</script>
|
|
|
|
<script id=base>
|
|
url = new URL('over?9000', 'https://lightpanda.io');
|
|
testing.expectEqual("https://lightpanda.io/over?9000", url.href);
|
|
</script>
|
|
|
|
<script id="svelkit">
|
|
let sk = new URL('sveltekit-internal://');
|
|
testing.expectEqual("sveltekit-internal:", sk.protocol);
|
|
testing.expectEqual("", sk.host);
|
|
testing.expectEqual("", sk.hostname);
|
|
testing.expectEqual("sveltekit-internal://", sk.href);
|
|
</script>
|
|
|
|
<script id=invalidUrl>
|
|
testing.expectError("Error: Invalid", () => {
|
|
_ = new URL("://foo.bar/path?query#fragment");
|
|
});
|
|
</script>
|
|
|
|
<script id=URL.canParse>
|
|
testing.expectEqual(true, URL.canParse("https://lightpanda.io"));
|
|
testing.expectEqual(false, URL.canParse("://lightpanda.io"));
|
|
|
|
testing.expectEqual(true, URL.canParse("/home", "https://lightpanda.io"));
|
|
testing.expectEqual(false, URL.canParse("lightpanda.io", "https"));
|
|
</script>
|