Bug 1892041 - Part 1: Update test262 features. r=spidermonkey-reviewers,dminor
[gecko.git] / dom / base / test / test_link_prefetch.html
blob5a5e7a0bbcc412094cb950b40c3e0694fa60dad7
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title>Test link policy attribute for Bug 1264165</title>
6 <script src="/tests/SimpleTest/SimpleTest.js"></script>
7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
9 <!--
10 Testing that link referrer attributes are honoured correctly
11 https://bugzilla.mozilla.org/show_bug.cgi?id=1264165
12 -->
14 <script type="application/javascript">
16 const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
17 const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY", "REL", "SCHEME_FROM", "SCHEME_TO"];
19 const testCases = [
20 {ACTION: ["generate-link-policy-test"],
21 TESTS: [
22 {ATTRIBUTE_POLICY: 'unsafe-url',
23 NAME: 'prefetch-unsafe-url-with-origin-in-meta',
24 META_POLICY: 'origin',
25 REL: 'prefetch',
26 DESC: "prefetch-unsafe-url with origin in meta",
27 RESULT: 'full'},
28 {ATTRIBUTE_POLICY: 'origin',
29 NAME: 'prefetch-origin-with-unsafe-url-in-meta',
30 META_POLICY: 'unsafe-url',
31 REL: 'prefetch',
32 DESC: "prefetch-origin with unsafe-url in meta",
33 RESULT: 'origin'},
34 {ATTRIBUTE_POLICY: 'no-referrer',
35 NAME: 'prefetch-no-referrer-with-origin-in-meta',
36 META_POLICY: 'origin',
37 REL: 'prefetch',
38 DESC: "prefetch-no-referrer with origin in meta",
39 RESULT: 'none'},
40 {ATTRIBUTE_POLICY: 'same-origin',
41 NAME: 'prefetch-same-origin-with-origin-in-meta',
42 META_POLICY: 'origin',
43 REL: 'prefetch',
44 DESC: "prefetch-same-origin with origin in meta",
45 RESULT: 'full'},
46 {NAME: 'prefetch-no-referrer-in-meta',
47 META_POLICY: 'no-referrer',
48 REL: 'prefetch',
49 DESC: "prefetch-no-referrer in meta",
50 RESULT: 'none'},
52 // Downgrade.
53 {ATTRIBUTE_POLICY: 'no-referrer-when-downgrade',
54 NAME: 'prefetch-origin-in-meta-downgrade-in-attr',
55 META_POLICY: 'origin',
56 DESC: 'prefetch-origin in meta downgrade in attr',
57 REL: 'prefetch',
58 SCHEME_FROM: 'https',
59 SCHEME_TO: 'http',
60 RESULT: 'none'},
61 {ATTRIBUTE_POLICY: 'strict-origin',
62 NAME: 'prefetch-origin-in-meta-strict-origin-in-attr',
63 META_POLICY: 'origin',
64 DESC: 'prefetch-origin in meta strict-origin in attr',
65 REL: 'prefetch',
66 SCHEME_FROM: 'https',
67 SCHEME_TO: 'http',
68 RESULT: 'none'},
69 {ATTRIBUTE_POLICY: 'strict-origin-when-cross-origin',
70 NAME: 'prefetch-origin-in-meta-strict-origin-when-cross-origin-in-attr',
71 META_POLICY: 'origin',
72 DESC: 'prefetch-origin in meta strict-origin-when-cross-origin in attr',
73 REL: 'prefetch',
74 SCHEME_FROM: 'https',
75 SCHEME_TO: 'http',
76 RESULT: 'none'},
78 // No downgrade.
79 {ATTRIBUTE_POLICY: 'no-referrer-when-downgrade',
80 NAME: 'prefetch-origin-in-meta-downgrade-in-attr',
81 META_POLICY: 'origin',
82 DESC: 'prefetch-origin in meta downgrade in attr',
83 REL: 'prefetch',
84 SCHEME_FROM: 'https',
85 SCHEME_TO: 'https',
86 RESULT: 'full'},
88 {ATTRIBUTE_POLICY: 'origin',
89 NAME: 'prefetch-origin-with-no-meta',
90 META_POLICY: '',
91 REL: 'prefetch',
92 DESC: "prefetch-origin with no meta",
93 RESULT: 'origin'},
95 {ATTRIBUTE_POLICY: 'strict-origin',
96 NAME: 'prefetch-origin-in-meta-strict-origin-in-attr',
97 META_POLICY: 'origin',
98 DESC: 'prefetch-origin in meta strict-origin in attr',
99 REL: 'prefetch',
100 SCHEME_FROM: 'https',
101 SCHEME_TO: 'https',
102 RESULT: 'origin'},
103 {ATTRIBUTE_POLICY: 'strict-origin-when-cross-origin',
104 NAME: 'prefetch-origin-in-meta-strict-origin-when-cross-origin-in-attr',
105 META_POLICY: 'origin',
106 DESC: 'prefetch-origin in meta strict-origin-when-cross-origin in attr',
107 REL: 'prefetch',
108 SCHEME_FROM: 'https',
109 SCHEME_TO: 'https',
110 RESULT: 'full'},
112 // Cross origin
113 {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
114 NAME: 'prefetch-origin-when-cross-origin-with-no-meta',
115 META_POLICY: '',
116 SCHEME_FROM: 'https',
117 SCHEME_TO: 'http',
118 REL: 'prefetch',
119 DESC: "prefetch-origin-when-cross-origin with no meta",
120 RESULT: 'origin'},
121 {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
122 NAME: 'prefetch-origin-when-cross-origin-with-no-referrer-in-meta',
123 META_POLICY: 'no-referrer',
124 SCHEME_FROM: 'https',
125 SCHEME_TO: 'http',
126 REL: 'prefetch',
127 DESC: "prefetch-origin-when-cross-origin with no-referrer in meta",
128 RESULT: 'origin'},
129 {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
130 NAME: 'prefetch-origin-when-cross-origin-with-unsafe-url-in-meta',
131 META_POLICY: 'unsafe-url',
132 SCHEME_FROM: 'https',
133 SCHEME_TO: 'http',
134 REL: 'prefetch',
135 DESC: "prefetch-origin-when-cross-origin with unsafe-url in meta",
136 RESULT: 'origin'},
137 {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
138 NAME: 'prefetch-origin-when-cross-origin-with-origin-in-meta',
139 META_POLICY: 'origin',
140 SCHEME_FROM: 'https',
141 SCHEME_TO: 'http',
142 REL: 'prefetch',
143 DESC: "prefetch-origin-when-cross-origin with origin in meta",
144 RESULT: 'origin'},
145 {ATTRIBUTE_POLICY: 'strict-origin-when-cross-origin',
146 NAME: 'prefetch-strict-origin-when-cross-origin-with-origin-in-meta',
147 META_POLICY: 'origin',
148 SCHEME_FROM: 'http',
149 SCHEME_TO: 'https',
150 REL: 'prefetch',
151 DESC: "prefetch-strict-origin-when-cross-origin with origin in meta",
152 RESULT: 'origin'},
153 {ATTRIBUTE_POLICY: 'same-origin',
154 NAME: 'prefetch-same-origin-with-origin-in-meta',
155 META_POLICY: 'origin',
156 SCHEME_FROM: 'http',
157 SCHEME_TO: 'https',
158 REL: 'prefetch',
159 DESC: "prefetch-same-origin with origin in meta",
160 RESULT: 'none'},
162 // Invalid
163 {ATTRIBUTE_POLICY: 'default',
164 NAME: 'prefetch-default-with-no-meta',
165 META_POLICY: '',
166 REL: 'prefetch',
167 DESC: "prefetch-default with no meta",
168 RESULT: 'full'},
169 {ATTRIBUTE_POLICY: 'something',
170 NAME: 'prefetch-something-with-no-meta',
171 META_POLICY: '',
172 REL: 'prefetch',
173 DESC: "prefetch-something with no meta",
174 RESULT: 'full'},
177 {ACTION: ["generate-link-policy-test-set-attribute"],
178 TESTS: [
179 {ATTRIBUTE_POLICY: 'unsafe-url',
180 NEW_ATTRIBUTE_POLICY: 'no-referrer',
181 NAME: 'prefetch-no-referrer-unsafe-url-set-attribute-with-origin-in-meta',
182 META_POLICY: 'origin',
183 REL: 'prefetch',
184 DESC: "prefetch-no-referrer-set-attribute (orginally unsafe-url) with origin in meta",
185 RESULT: 'none'},
186 {ATTRIBUTE_POLICY: 'origin',
187 NEW_ATTRIBUTE_POLICY: 'unsafe-url',
188 NAME: 'prefetch-unsafe-url-origin-set-attribute-with-no-referrer-in-meta',
189 META_POLICY: 'no-referrer',
190 REL: 'prefetch',
191 DESC: "prefetch-unsafe-url-set-attribute(orginally origin) with no-referrer in meta",
192 RESULT: 'full'},
195 {ACTION: ["generate-link-policy-test-property"],
196 TESTS: [
197 {ATTRIBUTE_POLICY: 'no-referrer',
198 NEW_ATTRIBUTE_POLICY: 'unsafe-url',
199 NAME: 'prefetch-unsafe-url-no-referrer-property-with-origin-in-meta',
200 META_POLICY: 'origin',
201 REL: 'prefetch',
202 DESC: "prefetch-unsafe-url-property (orginally no-referrer) with origin in meta",
203 RESULT: 'full'},
204 {ATTRIBUTE_POLICY: 'origin',
205 NEW_ATTRIBUTE_POLICY: 'unsafe-url',
206 NAME: 'prefetch-unsafe-url-origin-property-with-no-referrer-in-meta',
207 META_POLICY: 'no-referrer',
208 REL: 'prefetch',
209 DESC: "prefetch-unsafe-url-property (orginally origin) with no-referrer in meta",
210 RESULT: 'full'},
214 </script>
215 <script type="application/javascript" src="/tests/dom/base/test/referrer_helper.js"></script>
216 </head>
217 <body onload="tests.next();">
218 <iframe id="testframe"></iframe>
219 </body>
220 </html>