|
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 // In step 2 we instantiate sessionStorage in the other frame |
|
21 case 1: |
|
22 // Must not fire (storage must be clear!) |
|
23 sessionStorage.clear(); |
|
24 // Must fire X:null->'1' |
|
25 sessionStorage.setItem("X", "1"); |
|
26 // Must fire X:'1'->'2' |
|
27 sessionStorage.setItem("X", "2"); |
|
28 // Must not fire |
|
29 sessionStorage.setItem("X", "2"); |
|
30 // Must fire X:'2'->null |
|
31 sessionStorage.removeItem("X"); |
|
32 // Must not fire |
|
33 sessionStorage.removeItem("X"); |
|
34 // Must not fire |
|
35 sessionStorage.removeItem("Y"); |
|
36 // Must fire X:null->'2' (we need something in the storage) |
|
37 sessionStorage.setItem("X", "2"); |
|
38 // Must fire null:null->null (one item has been erased) |
|
39 sessionStorage.clear(); |
|
40 // Must not fire |
|
41 sessionStorage.clear(); |
|
42 break; |
|
43 |
|
44 // Wait some time to let the async event be propagated |
|
45 case 11: |
|
46 is(gotEvent, false, "Expected no events"); |
|
47 return finishTest(); |
|
48 } |
|
49 |
|
50 // Increase by two to distinguish each test step order |
|
51 // in both master doStep and slave doStep functions. |
|
52 ++currentStep; |
|
53 ++currentStep; |
|
54 |
|
55 return true; |
|
56 } |
|
57 |
|
58 </script> |
|
59 |
|
60 </head> |
|
61 |
|
62 <body onload="postMsg('frame loaded');"> |
|
63 <iframe src="http://example.com:80/tests/dom/tests/mochitest/storageevent/frameSessionStorageSlaveEqual.html" |
|
64 name="slaveFrame"> |
|
65 </iframe> |
|
66 </body> |
|
67 </html> |