| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Test fractional values in meta http-equiv=refresh</title> |
| <link rel="author" title="Psychpsyo" href="mailto:[email protected]"> |
| <link rel="help" href="https://html.spec.whatwg.org/#pragma-directives"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <body> |
| <script> |
| async function measureRefreshTime(src) { |
| const frame = document.createElement("iframe"); |
| document.body.appendChild(frame); |
| |
| const loadPromise = new Promise(resolve => { |
| frame.addEventListener("load", () => { |
| resolve(performance.now()); |
| }); |
| }); |
| frame.src = src; |
| const startTime = await loadPromise; |
| |
| const unloadPromise = new Promise(resolve => { |
| frame.contentWindow.addEventListener("beforeunload", () => { |
| resolve(performance.now()); |
| }); |
| }); |
| const endTime = await unloadPromise; |
| return endTime - startTime; |
| } |
| |
| promise_test(async test => { |
| const refreshTime = await measureRefreshTime("resources/refresh1.html"); |
| assert_greater_than(refreshTime, 900); |
| }, "Ensure that refresh is observed"); |
| |
| promise_test(async test => { |
| const refreshTime = await measureRefreshTime("resources/refresh1.99.html"); |
| assert_greater_than(refreshTime, 900); |
| }, "Ensure that non-fractional part in refresh time does not get discarded"); |
| |
| promise_test(async test => { |
| const refreshTime = await measureRefreshTime("resources/refresh1dotdot9dot.html"); |
| assert_greater_than(refreshTime, 900); |
| }, "Ensure that multiple periods in refresh time just get ignored"); |
| </script> |
| </body> |