|
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 is(event.key, expectedKey, "key name check"); |
|
23 is(event.oldValue, expectedOldValue, "old value check"); |
|
24 is(event.newValue, expectedNewValue, "new value check"); |
|
25 is(event.url, "http://example.com/tests/dom/tests/mochitest/storageevent/frameLocalStorageMaster.html"); |
|
26 ok(event.storageArea); |
|
27 } |
|
28 |
|
29 switch (currentStep) |
|
30 { |
|
31 case 10: |
|
32 is(events.length, 5, "Expected 5 events"); |
|
33 checkEvent("X", null, "1"); |
|
34 checkEvent("X", "1", "2"); |
|
35 checkEvent("X", "2", null); |
|
36 checkEvent("X", null, "2"); |
|
37 checkEvent(null, null, null); |
|
38 break; |
|
39 } |
|
40 |
|
41 // Increase by two to distinguish each test step order |
|
42 // in both master doStep and slave doStep functions. |
|
43 ++currentStep; |
|
44 ++currentStep; |
|
45 |
|
46 return true; |
|
47 } |
|
48 |
|
49 </script> |
|
50 |
|
51 </head> |
|
52 |
|
53 <body onload="postMsg('frame loaded');"> |
|
54 </body> |
|
55 </html> |