refresh-time.html (1645B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>Test fractional values in meta http-equiv=refresh</title> 4 <link rel="author" title="Psychpsyo" href="mailto:psychpsyo@gmail.com"> 5 <link rel="help" href="https://html.spec.whatwg.org/#pragma-directives"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 9 <body> 10 <script> 11 async function measureRefreshTime(src) { 12 const frame = document.createElement("iframe"); 13 document.body.appendChild(frame); 14 15 const loadPromise = new Promise(resolve => { 16 frame.addEventListener("load", () => { 17 resolve(performance.now()); 18 }); 19 }); 20 frame.src = src; 21 const startTime = await loadPromise; 22 23 const unloadPromise = new Promise(resolve => { 24 frame.contentWindow.addEventListener("beforeunload", () => { 25 resolve(performance.now()); 26 }); 27 }); 28 const endTime = await unloadPromise; 29 return endTime - startTime; 30 } 31 32 promise_test(async test => { 33 const refreshTime = await measureRefreshTime("resources/refresh1.html"); 34 assert_greater_than(refreshTime, 900); 35 }, "Ensure that refresh is observed"); 36 37 promise_test(async test => { 38 const refreshTime = await measureRefreshTime("resources/refresh1.99.html"); 39 assert_greater_than(refreshTime, 900); 40 }, "Ensure that non-fractional part in refresh time does not get discarded"); 41 42 promise_test(async test => { 43 const refreshTime = await measureRefreshTime("resources/refresh1dotdot9dot.html"); 44 assert_greater_than(refreshTime, 900); 45 }, "Ensure that multiple periods in refresh time just get ignored"); 46 </script> 47 </body>