<!DOCTYPE html>
<html>
<body>
<p>Test setTimeOut,fired in decreasing order in Web Workers.</p>
<div id="result"></div>
<script type="text/javascript">
function log(message)
{
    document.getElementById("result").innerHTML += message + "</br>";
}

if (window.testRunner) {
   testRunner.dumpAsText();
   testRunner.waitUntilDone();
}

var worker = new Worker('resources/worker-timeout-decreasing-order.js');
// Start the first test of settimeout's
var lastTestResult = 0;
var testCounterLimit = 3;
var timerLimit = 3;
var testStarted = false;
var testAlreadyFailed = false;

worker.postMessage("TS");

worker.onmessage = function(evt) {
    if(testStarted) {
        var currentNum = evt.data;
        if(lastTestResult == currentNum - 1 && !testAlreadyFailed) {
            lastTestResult = currentNum;
            --timerLimit;
            // we got all the results in order
            if(lastTestResult == testCounterLimit && timerLimit == 0)
                log("PASS: Timeouts executed in order.");
        }
        else {
            testAlreadyFailed = true;
            --timerLimit;
            if(timerLimit == 0)
                log("FAIL: Timeouts executed out of order.");
        }
    }
    if(evt.data == "Test started.") {
        log(evt.data);
        testStarted = true;
    }
    if (evt.data == "DONE") {
        log("DONE.");
        if (window.testRunner)
            testRunner.notifyDone();
    } 
}
</script>
</body>
</html>