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