diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/039.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/039.html | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/039.html b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/039.html new file mode 100644 index 0000000000..3720e24866 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/039.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html><head> + <title> scheduler: IFRAMEs added with DOM</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="testlib/testlib.js"></script> +</head> +<body> + <div id="log">FAILED (This TC requires JavaScript enabled)</div> + <div></div> + <script>log('inline script #1'); + for( var i=0; i<2; i++ ){ + var iframe=document.createElement('iframe'); + document.getElementsByTagName('div')[1].appendChild(iframe); + iframe.src='pages/helloworld.html?'+i+'&'+Math.random(); + } + log('end script #1'); + </script> + + <script type="text/javascript"> + log( 'inline script #2' ); + promise_test(() => { + const frames = document.querySelectorAll("iframe"); + return Promise.all([ + new Promise(resolve => window.addEventListener('load', resolve)), + new Promise(resolve => frames[0].addEventListener('load', resolve)), + new Promise(resolve => frames[1].addEventListener('load', resolve)), + ]).then(() => { + assert_equals(eventOrder.length, 5); + assert_array_equals( + eventOrder.slice(0, 3), + ['inline script #1', 'end script #1', 'inline script #2'], + "inline scripts should run first"); + assert_in_array('frame/popup script 0', eventOrder.slice(3, 5), 'iframe should have loaded'); + assert_in_array('frame/popup script 1', eventOrder.slice(3, 5), 'iframe should have loaded'); + }); + }, 'iframes should load asynchronously after inline script run'); + </script> +</body></html> |