element-input-image.https.sub.html (8801B)
1 <!DOCTYPE html> 2 <!-- 3 This test was procedurally generated. Please do not modify it directly. 4 Sources: 5 - fetch/metadata/tools/fetch-metadata.conf.yml 6 - fetch/metadata/tools/templates/element-input-image.sub.html 7 --> 8 <html lang="en"> 9 <meta charset="utf-8"> 10 <title>HTTP headers on request for HTML "input" element with type="button"</title> 11 <script src="/resources/testharness.js"></script> 12 <script src="/resources/testharnessreport.js"></script> 13 <script src="/fetch/metadata/resources/helper.sub.js"></script> 14 <body> 15 <script> 16 'use strict'; 17 18 function induceRequest(url, test) { 19 const input = document.createElement('input'); 20 input.setAttribute('type', 'image'); 21 22 document.body.appendChild(input); 23 test.add_cleanup(() => input.remove()); 24 25 return new Promise((resolve) => { 26 input.onload = input.onerror = resolve; 27 input.setAttribute('src', url); 28 }); 29 } 30 31 promise_test((t) => { 32 const key = '{{uuid()}}'; 33 34 return induceRequest(makeRequestURL(key, ['httpsOrigin']), t) 35 .then(() => retrieve(key)) 36 .then((headers) => { 37 assert_own_property(headers, 'sec-fetch-site'); 38 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 39 }); 40 }, 'sec-fetch-site - Same origin, no attributes'); 41 42 promise_test((t) => { 43 const key = '{{uuid()}}'; 44 45 return induceRequest(makeRequestURL(key, ['httpsCrossSite']), t) 46 .then(() => retrieve(key)) 47 .then((headers) => { 48 assert_own_property(headers, 'sec-fetch-site'); 49 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 50 }); 51 }, 'sec-fetch-site - Cross-site, no attributes'); 52 53 promise_test((t) => { 54 const key = '{{uuid()}}'; 55 56 return induceRequest(makeRequestURL(key, ['httpsSameSite']), t) 57 .then(() => retrieve(key)) 58 .then((headers) => { 59 assert_own_property(headers, 'sec-fetch-site'); 60 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 61 }); 62 }, 'sec-fetch-site - Same site, no attributes'); 63 64 promise_test((t) => { 65 const key = '{{uuid()}}'; 66 67 return induceRequest(makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin']), t) 68 .then(() => retrieve(key)) 69 .then((headers) => { 70 assert_own_property(headers, 'sec-fetch-site'); 71 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 72 }); 73 }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect, no attributes'); 74 75 promise_test((t) => { 76 const key = '{{uuid()}}'; 77 78 return induceRequest(makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin']), t) 79 .then(() => retrieve(key)) 80 .then((headers) => { 81 assert_own_property(headers, 'sec-fetch-site'); 82 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 83 }); 84 }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect, no attributes'); 85 86 promise_test((t) => { 87 const key = '{{uuid()}}'; 88 89 return induceRequest(makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin']), t) 90 .then(() => retrieve(key)) 91 .then((headers) => { 92 assert_own_property(headers, 'sec-fetch-site'); 93 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 94 }); 95 }, 'sec-fetch-site - Cross-Site -> Same Origin, no attributes'); 96 97 promise_test((t) => { 98 const key = '{{uuid()}}'; 99 100 return induceRequest(makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite']), t) 101 .then(() => retrieve(key)) 102 .then((headers) => { 103 assert_own_property(headers, 'sec-fetch-site'); 104 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 105 }); 106 }, 'sec-fetch-site - Cross-Site -> Same-Site, no attributes'); 107 108 promise_test((t) => { 109 const key = '{{uuid()}}'; 110 111 return induceRequest(makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite']), t) 112 .then(() => retrieve(key)) 113 .then((headers) => { 114 assert_own_property(headers, 'sec-fetch-site'); 115 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 116 }); 117 }, 'sec-fetch-site - Cross-Site -> Cross-Site, no attributes'); 118 119 promise_test((t) => { 120 const key = '{{uuid()}}'; 121 122 return induceRequest(makeRequestURL(key, ['httpsOrigin', 'httpsOrigin']), t) 123 .then(() => retrieve(key)) 124 .then((headers) => { 125 assert_own_property(headers, 'sec-fetch-site'); 126 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 127 }); 128 }, 'sec-fetch-site - Same-Origin -> Same Origin, no attributes'); 129 130 promise_test((t) => { 131 const key = '{{uuid()}}'; 132 133 return induceRequest(makeRequestURL(key, ['httpsOrigin', 'httpsSameSite']), t) 134 .then(() => retrieve(key)) 135 .then((headers) => { 136 assert_own_property(headers, 'sec-fetch-site'); 137 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 138 }); 139 }, 'sec-fetch-site - Same-Origin -> Same-Site, no attributes'); 140 141 promise_test((t) => { 142 const key = '{{uuid()}}'; 143 144 return induceRequest(makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite']), t) 145 .then(() => retrieve(key)) 146 .then((headers) => { 147 assert_own_property(headers, 'sec-fetch-site'); 148 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 149 }); 150 }, 'sec-fetch-site - Same-Origin -> Cross-Site, no attributes'); 151 152 promise_test((t) => { 153 const key = '{{uuid()}}'; 154 155 return induceRequest(makeRequestURL(key, ['httpsSameSite', 'httpsOrigin']), t) 156 .then(() => retrieve(key)) 157 .then((headers) => { 158 assert_own_property(headers, 'sec-fetch-site'); 159 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 160 }); 161 }, 'sec-fetch-site - Same-Site -> Same Origin, no attributes'); 162 163 promise_test((t) => { 164 const key = '{{uuid()}}'; 165 166 return induceRequest(makeRequestURL(key, ['httpsSameSite', 'httpsSameSite']), t) 167 .then(() => retrieve(key)) 168 .then((headers) => { 169 assert_own_property(headers, 'sec-fetch-site'); 170 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 171 }); 172 }, 'sec-fetch-site - Same-Site -> Same-Site, no attributes'); 173 174 promise_test((t) => { 175 const key = '{{uuid()}}'; 176 177 return induceRequest(makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite']), t) 178 .then(() => retrieve(key)) 179 .then((headers) => { 180 assert_own_property(headers, 'sec-fetch-site'); 181 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 182 }); 183 }, 'sec-fetch-site - Same-Site -> Cross-Site, no attributes'); 184 185 promise_test((t) => { 186 const key = '{{uuid()}}'; 187 188 return induceRequest(makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin']), t) 189 .then(() => retrieve(key)) 190 .then((headers) => { 191 assert_own_property(headers, 'sec-fetch-site'); 192 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 193 }); 194 }, 'sec-fetch-site - HTTPS downgrade-upgrade, no attributes'); 195 196 promise_test((t) => { 197 const key = '{{uuid()}}'; 198 199 return induceRequest(makeRequestURL(key, []), t) 200 .then(() => retrieve(key)) 201 .then((headers) => { 202 assert_own_property(headers, 'sec-fetch-mode'); 203 assert_array_equals(headers['sec-fetch-mode'], ['no-cors']); 204 }); 205 }, 'sec-fetch-mode - no attributes'); 206 207 promise_test((t) => { 208 const key = '{{uuid()}}'; 209 210 return induceRequest(makeRequestURL(key, []), t) 211 .then(() => retrieve(key)) 212 .then((headers) => { 213 assert_own_property(headers, 'sec-fetch-dest'); 214 assert_array_equals(headers['sec-fetch-dest'], ['image']); 215 }); 216 }, 'sec-fetch-dest - no attributes'); 217 218 promise_test((t) => { 219 const key = '{{uuid()}}'; 220 221 return induceRequest(makeRequestURL(key, []), t) 222 .then(() => retrieve(key)) 223 .then((headers) => { 224 assert_not_own_property(headers, 'sec-fetch-user'); 225 }); 226 }, 'sec-fetch-user - no attributes'); 227 228 promise_test((t) => { 229 const key = '{{uuid()}}'; 230 231 return induceRequest(makeRequestURL(key, ['httpsCrossSite']), t) 232 .then(() => retrieve(key)) 233 .then((headers) => { 234 assert_own_property(headers, 'sec-fetch-storage-access'); 235 assert_array_equals(headers['sec-fetch-storage-access'], ['none']); 236 }); 237 }, 'sec-fetch-storage-access - Cross-site, no attributes'); 238 239 promise_test((t) => { 240 const key = '{{uuid()}}'; 241 242 return induceRequest(makeRequestURL(key, ['httpsSameSite']), t) 243 .then(() => retrieve(key)) 244 .then((headers) => { 245 assert_not_own_property(headers, 'sec-fetch-storage-access'); 246 }); 247 }, 'sec-fetch-storage-access - Same site, no attributes'); 248 </script> 249 </body> 250 </html>