testStorages(function(storageString) { async_test(function(t) { assert_true(storageString in window, storageString + " exist"); var storage = window[storageString]; t.add_cleanup(function() { storage.clear() }); clearStorage(storageString, t.step_func(loadiframe)); assert_equals(storage.length, 0, "storage.length"); function loadiframe(msg) { iframe.onload = t.step_func(step0); iframe.src = "resources/event_basic.html"; } function step0(msg) { storage.foo = "test"; runAfterNStorageEvents(t.step_func(step1), 1); } function step1(msg) { storageEventList = new Array(); storage.foo = "test"; runAfterNStorageEvents(t.step_func(step2), 0); } function step2(msg) { if(msg != undefined) { assert_unreached(msg); } assert_equals(storageEventList.length, 0); storage.foo = "TEST"; runAfterNStorageEvents(t.step_func(step3), 1); } function step3(msg) { if(msg != undefined) { assert_unreached(msg); } assert_equals(storageEventList.length, 1); t.done(); } }, storageString + " storage events fire even when only the case of the value changes."); });