test_recursion.html (1467B)
1 <!-- 2 Any copyright is dedicated to the Public Domain. 3 http://creativecommons.org/publicdomain/zero/1.0/ 4 --> 5 <!DOCTYPE HTML> 6 <html> 7 <!-- 8 Tests of DOM Worker Threads 9 --> 10 <head> 11 <title>Test for DOM Worker Threads Recursion</title> 12 <script src="/tests/SimpleTest/SimpleTest.js"></script> 13 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 14 </head> 15 <body> 16 <p id="display"></p> 17 <div id="content" style="display: none"> 18 19 </div> 20 <pre id="test"> 21 <script class="testbody" type="text/javascript"> 22 23 // Intermittently triggers one assertion on Mac (bug 848098). 24 if (navigator.platform.indexOf("Mac") == 0) { 25 SimpleTest.expectAssertions(0, 1); 26 } 27 28 const testCount = 2; 29 var errorCount = 0; 30 31 var worker = new Worker("recursion_worker.js"); 32 33 function done() { 34 worker.terminate(); 35 SimpleTest.finish(); 36 } 37 38 worker.onmessage = function(event) { 39 if (event.data == "Done") { 40 ok(true, "correct message"); 41 } 42 else { 43 ok(false, "Bad message: " + event.data); 44 } 45 done(); 46 } 47 48 worker.onerror = function(event) { 49 event.preventDefault(); 50 if (event.message == "too much recursion") { 51 ok(true, "got correct error message"); 52 ++errorCount; 53 } 54 else { 55 ok(false, "got bad error message: " + event.message); 56 done(); 57 } 58 } 59 60 for (var i = 0; i < testCount; i++) { 61 worker.postMessage(""); 62 } 63 64 SimpleTest.waitForExplicitFinish(); 65 66 </script> 67 </pre> 68 </body> 69 </html>