frameSessionStorageMasterEqual.html (1768B)
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 }); 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', 'http://mochi.test:8888');"> 63 <iframe src="http://example.com:80/tests/dom/tests/mochitest/storageevent/frameSessionStorageSlaveEqual.html" 64 name="slaveFrame"> 65 </iframe> 66 </body> 67 </html>