dom/tests/mochitest/storageevent/interOriginTest2.js

branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
equal deleted inserted replaced
-1:000000000000 0:c2b9ee871439
1 var frameLoadsPending = 2;
2
3 var callMasterFrame = true;
4 var testDone = false;
5
6 var masterFrameOrigin = "";
7 var slaveFrameOrigin = "";
8
9 var failureRegExp = new RegExp("^FAILURE");
10 var todoRegExp = new RegExp("^TODO");
11
12 const framePath = "/tests/dom/tests/mochitest/storageevent/";
13
14 window.addEventListener("message", onMessageReceived, false);
15
16 function onMessageReceived(event)
17 {
18
19 switch (event.data)
20 {
21 // Indication of the frame onload event
22 case "frame loaded":
23 if (--frameLoadsPending)
24 break;
25
26 // Just fall through...
27
28 // Indication of successfully finished step of a test
29 case "perf":
30 if (callMasterFrame)
31 masterFrame.postMessage("step", "*");
32 else if (slaveFrame)
33 slaveFrame.postMessage("step", "*");
34 else if (SpecialPowers.wrap(masterFrame).slaveFrame)
35 SpecialPowers.wrap(masterFrame).slaveFrame.postMessage("step", "*");
36 callMasterFrame = !callMasterFrame;
37 break;
38
39 // Indication of all test parts finish (from any of the frames)
40 case "done":
41 if (testDone)
42 break;
43
44 testDone = true;
45 SimpleTest.finish();
46 break;
47
48 // Any other message indicates error, succes or todo message of a test
49 default:
50 if (typeof event.data == "undefined")
51 break; // XXXkhuey this receives undefined values
52 // (which used to become empty strings) on occasion ...
53 if (event.data.match(todoRegExp))
54 SimpleTest.todo(false, event.data);
55 else
56 SimpleTest.ok(!event.data.match(failureRegExp), event.data);
57 break;
58 }
59 }

mercurial