external-speculation-rules-errors.html (1526B)
1 <!DOCTYPE html> 2 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharnessreport.js"></script> 4 <script> 5 window.markupErrored = false; 6 window.markupLoaded = false; 7 </script> 8 <script src="resources/empty.json" type="speculationrules" onload="window.markupLoaded = true;" onerror="window.markupErrored = true;"></script> 9 <script> 10 promise_test(async () => { 11 await new Promise((resolve, reject) => { 12 const element = document.createElement("script"); 13 element.onload = () => { reject("Got an unexpected load event"); }; 14 element.onerror = () => { resolve("Got an error event"); }; 15 element.src = "resources/empty.json"; 16 element.type = "speculationrules"; 17 document.head.appendChild(element); 18 }) 19 }, "Test that an external speculation rules script fires an error event"); 20 21 promise_test(async () => { 22 await new Promise((resolve, reject) => { 23 const element = document.createElement("script"); 24 element.type = "speculationrules"; 25 element.onload = () => { reject("Got an unexpected load event"); }; 26 element.onerror = () => { resolve("Got an error event"); }; 27 element.src = "resources/empty.json"; 28 document.head.appendChild(element); 29 }) 30 }, "Test that an external speculation rules script fires an error event, regardless of attribute order"); 31 32 promise_test(async () => { 33 assert_true(window.markupErrored, "error"); 34 assert_false(window.markupLoaded, "load"); 35 }, "Test that an external speculation rules script in markup fires an error event"); 36 </script>