<!DOCTYPE html><!-- webkit-test-runner [ RequestIdleCallbackEnabled=true ] -->
<html>
<body>
<script src="../resources/js-test.js"></script>
<script>

description('This tests that the deadline can be reached.');

jsTestIsAsync = true;

let didRunIdleCallback = false;
onload = () => {
    requestAnimationFrame(() => {
        requestIdleCallback((idleDeadline) => {
            didRunIdleCallback = true;
            window.idleDeadline = idleDeadline;
            window.preferredRenderingUpdateInterval = internals.preferredRenderingUpdateInterval();
            shouldBeTrue('idleDeadline.timeRemaining() > preferredRenderingUpdateInterval');

            document.body.appendChild(document.createElement('span')).textContent = 'hello';
            requestAnimationFrame(() => { });

            shouldBeTrue('idleDeadline.timeRemaining() <= preferredRenderingUpdateInterval + 0.5');
            if (idleDeadline.timeRemaining() > preferredRenderingUpdateInterval + 0.5) 
                console.log(idleDeadline.timeRemaining() + ' > ' + preferredRenderingUpdateInterval);
        });
        setTimeout(() => {
            shouldBeTrue('didRunIdleCallback');
            finishJSTest();
        }, 200);
    });
}

</script>
</body>
</html>
