| Index: LayoutTests/fast/workers/worker-timeout-order.html
|
| diff --git a/LayoutTests/fast/workers/worker-timeout-order.html b/LayoutTests/fast/workers/worker-timeout-order.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d0cffda6f059df10f8dcd7b6a87470d187b77079
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/workers/worker-timeout-order.html
|
| @@ -0,0 +1,87 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<body>
|
| +<p>setTimeOut 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-order.js');
|
| +// Start the first test of settimeout's
|
| +var currentTest = "TS1";
|
| +var lastTestResult = 0;
|
| +var testCounterLimit = 3;
|
| +var timerLimit = 3;
|
| +var testStarted = false;
|
| +var testAlreadyFailed = false;
|
| +worker.postMessage("TS1");
|
| +
|
| +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) {
|
| + if(currentTest == "TS1") {
|
| + if(timerLimit == 0) {
|
| + log("PASS: TimeOutSuite1");
|
| + worker.postMessage("TS2");
|
| + testAlreadyFailed = false;
|
| + timerLimit = 3;
|
| + currentTest = "TS2";
|
| + }
|
| + }
|
| + else if (currentTest == "TS2") {
|
| + if(timerLimit == 0) {
|
| + log("PASS: TimeOutSuite2");
|
| + testStarted = false;
|
| + }
|
| + }
|
| + lastTestResult = 0;
|
| + }
|
| + }
|
| + else {
|
| + testAlreadyFailed = true;
|
| + --timerLimit;
|
| + if(currentTest == "TS1") {
|
| + if(timerLimit == 0) {
|
| + log("FAIL: TimeOutSuite1");
|
| + worker.postMessage("TS2");
|
| + timerLimit = 3;
|
| + testAlreadyFailed = false;
|
| + currentTest = "TS2";
|
| + lastTestResult = 0;
|
| + }
|
| + }
|
| + else if (currentTest == "TS2") {
|
| + if(timerLimit == 0) {
|
| + log("FAIL: TimeOutSuite2");
|
| + testStarted = false;
|
| + }
|
| + }
|
| +
|
| + }
|
| + }
|
| + if(evt.data == "Test started.") {
|
| + log(evt.data);
|
| + testStarted = true;
|
| + }
|
| + if (evt.data == "DONE") {
|
| + log("DONE.");
|
| + if (window.testRunner)
|
| + testRunner.notifyDone();
|
| + }
|
| +}
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|