test_ordering.html (1624B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test for BroadcastChannel.postMessage invalid State</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 7 </head> 8 <body> 9 10 <div id="content"></div> 11 12 <script type="application/javascript"> 13 14 let c1 = new BroadcastChannel("order"); 15 let c2 = new BroadcastChannel("order"); 16 let c3 = new BroadcastChannel("order"); 17 18 let events = []; 19 let doneCount = 0; 20 21 function whichBC(bc) { 22 if (bc == c1) return "c1"; 23 if (bc == c2) return "c2"; 24 if (bc == c3) return "c3"; 25 return "What?!?"; 26 } 27 28 function handler(e) { 29 events.push(e); 30 if (e.data == "done") { 31 doneCount++; 32 if (doneCount == 2) { 33 is(events.length, 6, "Correct length"); 34 is(whichBC(events[0].target), "c2", "target for event 0"); 35 is(events[0].data, "from c1"); 36 is(whichBC(events[1].target), "c3", "target for event 1"); 37 is(events[1].data, "from c1"); 38 is(whichBC(events[2].target), "c1", "target for event 2"); 39 is(events[2].data, "from c3"); 40 is(whichBC(events[3].target), "c2", "target for event 3"); 41 is(events[3].data, "from c3"); 42 is(whichBC(events[4].target), "c1", "target for event 4"); 43 is(events[4].data, "done"); 44 is(whichBC(events[5].target), "c3", "target for event 5"); 45 is(events[5].data, "done"); 46 47 SimpleTest.finish(); 48 } 49 } 50 } 51 52 c1.onmessage = handler; 53 c2.onmessage = handler; 54 c3.onmessage = handler; 55 56 c1.postMessage("from c1"); 57 c3.postMessage("from c3"); 58 c2.postMessage("done"); 59 60 SimpleTest.waitForExplicitFinish(); 61 62 </script> 63 </body> 64 </html>