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

<script type="text/javascript">
description('Tests that JS execution is suspended after the pagehide event is fired, so that timers created within it will not fire while the document is in the page cache.');

onpagehide = function()
{
    // Don't try to create the timeout again if the test is complete and we're
    // moving to the next one.
    if (!window.wasFinishJSTestCalled) {
        console.log('Creating timeout in pagehide');
        setTimeout(function() {
            // This log statement should happen after the one done in the pageshow
            // handler.
            console.log('Timeout created in pagehide fired');
            finishJSTest();
        }, 100);
    }
};

onpageshow = function(event)
{
    if (event.persisted)
        console.log('Restored page from page cache.');
}

onload = function()
{
    setTimeout(function() {
        location.href = 'resources/pagehide-timeout-go-back.html';
    }, 0);
}
var jsTestIsAsync = true;
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
