frameSessionStorageMasterNotEqual.html (1758B)
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 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 function startTest() { 58 postMsg('frame loaded', 'http://mochi.test:8888'); 59 slaveFrame.location = 60 "http://example.com:80/tests/dom/tests/mochitest/storageevent/frameSessionStorageSlaveNotEqual.html"; 61 } 62 63 </script> 64 65 </head> 66 67 <body onload="startTest();"> 68 <iframe name="slaveFrame"></iframe> 69 </body> 70 </html>