|
1 <html xmlns="http://www.w3.org/1999/xhtml"> |
|
2 <head> |
|
3 <title>master frame for event storage propagation</title> |
|
4 |
|
5 <script type="text/javascript" src="interOriginFrame.js"></script> |
|
6 <script type="text/javascript"> |
|
7 |
|
8 var currentStep = 1; |
|
9 var gotEvent = false; |
|
10 |
|
11 window.addEventListener("storage", function(event) |
|
12 { |
|
13 gotEvent = true; |
|
14 }, false); |
|
15 |
|
16 function doStep() |
|
17 { |
|
18 switch (currentStep) |
|
19 { |
|
20 case 1: |
|
21 // Must not fire (storage must be clear!) |
|
22 sessionStorage.clear(); |
|
23 // Must fire X:null->'1' |
|
24 sessionStorage.setItem("X", "1"); |
|
25 // Must fire X:'1'->'2' |
|
26 sessionStorage.setItem("X", "2"); |
|
27 // Must not fire |
|
28 sessionStorage.setItem("X", "2"); |
|
29 // Must fire X:'2'->null |
|
30 sessionStorage.removeItem("X"); |
|
31 // Must not fire |
|
32 sessionStorage.removeItem("X"); |
|
33 // Must not fire |
|
34 sessionStorage.removeItem("Y"); |
|
35 // Must fire X:null->'2' (we need something in the storage) |
|
36 sessionStorage.setItem("X", "2"); |
|
37 // Must fire null:null->null (one item has been erased) |
|
38 sessionStorage.clear(); |
|
39 // Must not fire |
|
40 sessionStorage.clear(); |
|
41 break; |
|
42 |
|
43 // Wait some time to let the async event be propagated |
|
44 case 11: |
|
45 is(gotEvent, false, "Expected no events"); |
|
46 return finishTest(); |
|
47 } |
|
48 |
|
49 // Increase by two to distinguish each test step order |
|
50 // in both master doStep and slave doStep functions. |
|
51 ++currentStep; |
|
52 ++currentStep; |
|
53 |
|
54 return true; |
|
55 } |
|
56 |
|
57 </script> |
|
58 |
|
59 </head> |
|
60 |
|
61 <body onload="postMsg('frame loaded');"> |
|
62 <iframe src="http://example.com:80/tests/dom/tests/mochitest/storageevent/frameSessionStorageSlaveNotEqual.html" |
|
63 name="slaveFrame"> |
|
64 </iframe> |
|
65 </body> |
|
66 </html> |