|
1 <html xmlns="http://www.w3.org/1999/xhtml"> |
|
2 <head> |
|
3 <title>slave for storage event propagation</title> |
|
4 |
|
5 <script type="text/javascript" src="interOriginFrame.js"></script> |
|
6 <script type="text/javascript"> |
|
7 |
|
8 var currentStep = 2; |
|
9 |
|
10 var events = []; |
|
11 |
|
12 window.addEventListener("storage", function(event) |
|
13 { |
|
14 events.push(event); |
|
15 }, false); |
|
16 |
|
17 function doStep() |
|
18 { |
|
19 function checkEvent(expectedKey, expectedOldValue, expectedNewValue) |
|
20 { |
|
21 var event = events.shift(); |
|
22 ok(event, "Event is present"); |
|
23 if (!event) |
|
24 return; |
|
25 |
|
26 is(event.key, expectedKey, "key name check"); |
|
27 is(event.oldValue, expectedOldValue, "old value check"); |
|
28 is(event.newValue, expectedNewValue, "new value check"); |
|
29 is(event.url, "http://example.com/tests/dom/tests/mochitest/storageevent/frameSessionStorageMasterEqual.html"); |
|
30 ok(event.storageArea); |
|
31 } |
|
32 |
|
33 switch (currentStep) |
|
34 { |
|
35 case 10: |
|
36 is(events.length, 5, "Expected 5 events"); |
|
37 checkEvent("X", null, "1"); |
|
38 checkEvent("X", "1", "2"); |
|
39 checkEvent("X", "2", null); |
|
40 checkEvent("X", null, "2"); |
|
41 checkEvent(null, null, null); |
|
42 break; |
|
43 } |
|
44 |
|
45 // Increase by two to distinguish each test step order |
|
46 // in both master doStep and slave doStep functions. |
|
47 ++currentStep; |
|
48 ++currentStep; |
|
49 |
|
50 return true; |
|
51 } |
|
52 |
|
53 </script> |
|
54 |
|
55 </head> |
|
56 |
|
57 <body onload="postMsg('frame loaded');"> |
|
58 </body> |
|
59 </html> |