This is a test to make sure DOM Storage mutations fire StorageEvents that are caught by the event listener specified as an attribute on the body. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". Testing sessionStorage storage.clear() PASS storage.length is 0 iframe.onload = step1 iframe.src = 'resources/body-event-handler.html' Reset storage event list storageEventList = new Array() storage.setItem('FOO', 'BAR') PASS storageEventList.length is 1 PASS storageEventList[0].key is "FOO" PASS storageEventList[0].oldValue is null PASS storageEventList[0].newValue is "BAR" storage.setItem('FU', 'BAR') storage.setItem('a', '1') storage.setItem('b', '2') storage.setItem('b', '3') PASS storageEventList.length is 5 PASS storageEventList[1].key is "FU" PASS storageEventList[1].oldValue is null PASS storageEventList[1].newValue is "BAR" PASS storageEventList[2].key is "a" PASS storageEventList[2].oldValue is null PASS storageEventList[2].newValue is "1" PASS storageEventList[3].key is "b" PASS storageEventList[3].oldValue is null PASS storageEventList[3].newValue is "2" PASS storageEventList[4].key is "b" PASS storageEventList[4].oldValue is "2" PASS storageEventList[4].newValue is "3" storage.removeItem('FOO') PASS storageEventList.length is 6 PASS storageEventList[5].key is "FOO" PASS storageEventList[5].oldValue is "BAR" PASS storageEventList[5].newValue is null storage.removeItem('FU') PASS storageEventList.length is 7 PASS storageEventList[6].key is "FU" PASS storageEventList[6].oldValue is "BAR" PASS storageEventList[6].newValue is null storage.clear() PASS storageEventList.length is 8 PASS storageEventList[7].key is null PASS storageEventList[7].oldValue is null PASS storageEventList[7].newValue is null Testing localStorage storage.clear() PASS storage.length is 0 iframe.onload = step1 iframe.src = 'resources/body-event-handler.html' Reset storage event list storageEventList = new Array() storage.setItem('FOO', 'BAR') PASS storageEventList.length is 1 PASS storageEventList[0].key is "FOO" PASS storageEventList[0].oldValue is null PASS storageEventList[0].newValue is "BAR" storage.setItem('FU', 'BAR') storage.setItem('a', '1') storage.setItem('b', '2') storage.setItem('b', '3') PASS storageEventList.length is 5 PASS storageEventList[1].key is "FU" PASS storageEventList[1].oldValue is null PASS storageEventList[1].newValue is "BAR" PASS storageEventList[2].key is "a" PASS storageEventList[2].oldValue is null PASS storageEventList[2].newValue is "1" PASS storageEventList[3].key is "b" PASS storageEventList[3].oldValue is null PASS storageEventList[3].newValue is "2" PASS storageEventList[4].key is "b" PASS storageEventList[4].oldValue is "2" PASS storageEventList[4].newValue is "3" storage.removeItem('FOO') PASS storageEventList.length is 6 PASS storageEventList[5].key is "FOO" PASS storageEventList[5].oldValue is "BAR" PASS storageEventList[5].newValue is null storage.removeItem('FU') PASS storageEventList.length is 7 PASS storageEventList[6].key is "FU" PASS storageEventList[6].oldValue is "BAR" PASS storageEventList[6].newValue is null storage.clear() PASS storageEventList.length is 8 PASS storageEventList[7].key is null PASS storageEventList[7].oldValue is null PASS storageEventList[7].newValue is null PASS successfullyParsed is true TEST COMPLETE