test_WorkerDebugger_promise.xhtml (2261B)
1 <?xml version="1.0"?> 2 <!-- 3 Any copyright is dedicated to the Public Domain. 4 + http://creativecommons.org/publicdomain/zero/1.0/ 5 --> 6 <window title="Test for WorkerDebugger with DOM Promises" 7 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 8 onload="test();"> 9 10 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> 11 <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/> 12 <script type="application/javascript" src="dom_worker_helper.js"/> 13 14 <script type="application/javascript"> 15 <![CDATA[ 16 17 const WORKER_URL = "WorkerDebugger_promise_worker.js"; 18 const DEBUGGER_URL = BASE_URL + "WorkerDebugger_promise_debugger.js"; 19 20 function test() { 21 (async function() { 22 SimpleTest.waitForExplicitFinish(); 23 24 let promise = waitForRegister(WORKER_URL, DEBUGGER_URL); 25 let worker = new Worker(WORKER_URL); 26 let dbg = await promise; 27 28 info("Send a request to the worker. This should cause the worker " + 29 "to send a response."); 30 promise = waitForWorkerMessage(worker, "resolved"); 31 worker.postMessage("resolve"); 32 await promise; 33 34 info("Send a request to the debugger. This should cause the debugger " + 35 "to send a response."); 36 promise = waitForDebuggerMessage(dbg, "resolved"); 37 dbg.postMessage("resolve"); 38 await promise; 39 40 info("Send a request to the worker. This should cause the debugger " + 41 "to enter a nested event loop."); 42 promise = waitForDebuggerMessage(dbg, "paused"); 43 worker.postMessage("pause"); 44 await promise; 45 46 info("Send a request to the debugger. This should cause the debugger " + 47 "to leave the nested event loop."); 48 promise = waitForMultiple([ 49 waitForDebuggerMessage(dbg, "resumed"), 50 waitForWorkerMessage(worker, "resumed") 51 ]); 52 dbg.postMessage("resume"); 53 await promise; 54 55 SimpleTest.finish(); 56 })(); 57 } 58 59 ]]> 60 </script> 61 62 <body xmlns="http://www.w3.org/1999/xhtml"> 63 <p id="display"></p> 64 <div id="content" style="display:none;"></div> 65 <pre id="test"></pre> 66 </body> 67 <label id="test-result"/> 68 </window>