test_console_worker.html (2008B)
1 <!DOCTYPE HTML> 2 <html lang="en"> 3 <head> 4 <meta charset="utf8"> 5 <title>Test for the Console API and Workers</title> 6 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 7 <script type="text/javascript" src="common.js"></script> 8 <!-- Any copyright is dedicated to the Public Domain. 9 - http://creativecommons.org/publicdomain/zero/1.0/ --> 10 </head> 11 <body> 12 <p>Test for the Console API and Workers</p> 13 14 <script class="testbody" type="text/javascript"> 15 "use strict"; 16 17 SimpleTest.waitForExplicitFinish(); 18 19 const expectedCachedConsoleCalls = [{ 20 message:{ 21 level: "log", 22 filename: /console-test-worker/, 23 arguments: ['Log from worker init'], 24 } 25 }]; 26 27 const expectedConsoleAPICalls = [{ 28 message: { 29 level: "log", 30 arguments: ['Log was requested from worker'], 31 } 32 }]; 33 34 window.onload = async function () { 35 const {state} = await attachConsoleToWorker(["ConsoleAPI"]); 36 37 await testCachedMessages(state); 38 await testConsoleAPI(state); 39 40 closeDebugger(state, function() { 41 SimpleTest.finish(); 42 }); 43 }; 44 45 const testCachedMessages = async function (state) { 46 info("testCachedMessages entered"); 47 return new Promise(resolve => { 48 const onCachedConsoleAPI = (response) => { 49 const consoleCalls = response.messages; 50 51 info('Received cached response. Checking console calls.'); 52 checkConsoleAPICalls(consoleCalls, expectedCachedConsoleCalls); 53 resolve(); 54 }; 55 state.webConsoleFront.getCachedMessages(["ConsoleAPI"]).then(onCachedConsoleAPI); 56 }) 57 }; 58 59 const testConsoleAPI = async function (state) { 60 info("testConsoleAPI: adding listener for consoleAPICall"); 61 const onConsoleApiMessage = state.webConsoleFront.once("consoleAPICall"); 62 state._worker_ref.postMessage({ 63 type: "log", 64 message: "Log was requested from worker" 65 }); 66 const packet = await onConsoleApiMessage; 67 info("received message level: " + packet.message.level); 68 checkConsoleAPICalls([packet], expectedConsoleAPICalls); 69 }; 70 71 </script> 72 </body> 73 </html>