| <!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> |