4 https://bugzilla.mozilla.org/show_bug.cgi?id=1079453
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>
15 * https://w3c.github.io/manifest/#start_url-member
18 typeTests
.forEach((type
) => {
19 var expected
= `Expect non - string start_url to be doc's url: ${typeof type}.`;
20 data
.jsonText
= JSON
.stringify({
23 var result
= processor
.process(data
);
24 is(result
.start_url
.toString(), docURL
.toString(), expected
);
28 var expected
= `Expect different origin URLs to become document's URL.`;
29 data
.jsonText
= JSON
.stringify({
30 start_url
: "http://not-same-origin",
32 var result
= processor
.process(data
);
33 is(result
.start_url
.toString(), docURL
.toString(), expected
);
36 expected
= `Expect empty string for start_url to become document's URL.`;
37 data
.jsonText
= JSON
.stringify({
40 result
= processor
.process(data
);
41 is(result
.start_url
.toString(), docURL
.toString(), expected
);
43 // Resolve URLs relative to manifest
48 `${whiteSpace}path${whiteSpace}`,
50 `${whiteSpace}../../path`,
53 URLs
.forEach((url
) => {
54 expected
= `Resolve URLs relative to manifest.`;
55 data
.jsonText
= JSON
.stringify({
58 var absURL
= new URL(url
, manifestURL
).toString();
59 result
= processor
.process(data
);
60 is(result
.start_url
.toString(), absURL
, expected
);
63 // It retains the fragment
64 var startURL
= "./path?query=123#fragment";
65 data
.jsonText
= JSON
.stringify({
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
);
78 result
.start_url
.toString(),
79 `Retains the fragment of document's location`