Bug 1945965 – remove new tab April Fools logo. r=home-newtab-reviewers,reemhamz
[gecko.git] / dom / manifest / test / test_ManifestProcessor_start_url.html
blob1d172df55549782d632f3e72bf83ec024217dd36
1 <!DOCTYPE HTML>
2 <html>
3 <!--
4 https://bugzilla.mozilla.org/show_bug.cgi?id=1079453
5 -->
6 <head>
7 <meta charset="utf-8">
8 <title>Test for Bug 1079453</title>
9 <script src="/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
11 <script src="common.js"></script>
12 <script>
13 /**
14 * Manifest start_url
15 * https://w3c.github.io/manifest/#start_url-member
16 **/
17 "use strict";
18 typeTests.forEach((type) => {
19 var expected = `Expect non - string start_url to be doc's url: ${typeof type}.`;
20 data.jsonText = JSON.stringify({
21 start_url: type,
22 });
23 var result = processor.process(data);
24 is(result.start_url.toString(), docURL.toString(), expected);
25 });
27 // Not same origin
28 var expected = `Expect different origin URLs to become document's URL.`;
29 data.jsonText = JSON.stringify({
30 start_url: "http://not-same-origin",
31 });
32 var result = processor.process(data);
33 is(result.start_url.toString(), docURL.toString(), expected);
35 // Empty string test
36 expected = `Expect empty string for start_url to become document's URL.`;
37 data.jsonText = JSON.stringify({
38 start_url: "",
39 });
40 result = processor.process(data);
41 is(result.start_url.toString(), docURL.toString(), expected);
43 // Resolve URLs relative to manifest
44 var URLs = [
45 "path",
46 "/path",
47 "../../path",
48 `${whiteSpace}path${whiteSpace}`,
49 `${whiteSpace}/path`,
50 `${whiteSpace}../../path`,
53 URLs.forEach((url) => {
54 expected = `Resolve URLs relative to manifest.`;
55 data.jsonText = JSON.stringify({
56 start_url: url,
57 });
58 var absURL = new URL(url, manifestURL).toString();
59 result = processor.process(data);
60 is(result.start_url.toString(), absURL, expected);
61 });
63 // It retains the fragment
64 var startURL = "./path?query=123#fragment";
65 data.jsonText = JSON.stringify({
66 start_url: startURL,
67 });
68 var absURL = new URL(startURL, manifestURL).href;
69 result = processor.process(data);
70 is(result.start_url.toString(), absURL, "Retains fragment");
72 // It retains the fragment on the document's location too.
73 window.location = "#here";
74 data.jsonText = JSON.stringify({});
75 result = processor.process(data);
76 is(
77 window.location.href,
78 result.start_url.toString(),
79 `Retains the fragment of document's location`
81 </script>
82 </head>
83 </html>