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(step1);
iframe.src = "resources/event_basic.html" ;
}
function step1(msg)
{
storage.setItem('FOO' , 'BAR' );
runAfterNStorageEvents(t.step_func(step2), 1 );
}
function step2(msg)
{
if (msg != undefined) {
assert_unreached(msg);
}
assert_equals(storageEventList.length, 1 );
assert_equals(storageEventList[0 ].storageAreaString, storageString,
"Storage event came from wrong storage type." );
assert_equals(storageEventList[0 ].key, "FOO" );
assert_equals(storageEventList[0 ].oldValue, null );
assert_equals(storageEventList[0 ].newValue, "BAR" );
storage.setItem('FU' , 'BAR' );
storage.setItem('a' , '1' );
storage.setItem('b' , '2' );
storage.setItem('b' , '3' );
runAfterNStorageEvents(t.step_func(step3), 5 );
}
function step3(msg)
{
if (msg != undefined) {
assert_unreached(msg);
}
assert_equals(storageEventList.length, 5 );
assert_equals(storageEventList[1 ].storageAreaString, storageString,
"Storage event came from wrong storage type." );
assert_equals(storageEventList[1 ].key, "FU" );
assert_equals(storageEventList[1 ].oldValue, null );
assert_equals(storageEventList[1 ].newValue, "BAR" );
assert_equals(storageEventList[2 ].storageAreaString, storageString,
"Storage event came from wrong storage type." );
assert_equals(storageEventList[2 ].key, "a" );
assert_equals(storageEventList[2 ].oldValue, null );
assert_equals(storageEventList[2 ].newValue, "1" );
assert_equals(storageEventList[3 ].storageAreaString, storageString,
"Storage event came from wrong storage type." );
assert_equals(storageEventList[3 ].key, "b" );
assert_equals(storageEventList[3 ].oldValue, null );
assert_equals(storageEventList[3 ].newValue, "2" );
assert_equals(storageEventList[4 ].storageAreaString, storageString,
"Storage event came from wrong storage type." );
assert_equals(storageEventList[4 ].key, "b" );
assert_equals(storageEventList[4 ].oldValue, "2" );
assert_equals(storageEventList[4 ].newValue, "3" );
storage.removeItem('FOO' );
runAfterNStorageEvents(t.step_func(step4), 6 );
}
function step4(msg)
{
if (msg != undefined) {
assert_unreached(msg);
}
assert_equals(storageEventList.length, 6 );
assert_equals(storageEventList[5 ].storageAreaString, storageString,
"Storage event came from wrong storage type." );
assert_equals(storageEventList[5 ].key, "FOO" );
assert_equals(storageEventList[5 ].oldValue, "BAR" );
assert_equals(storageEventList[5 ].newValue, null );
storage.removeItem('FU' );
runAfterNStorageEvents(t.step_func(step5), 7 );
}
function step5(msg)
{
if (msg != undefined) {
assert_unreached(msg);
}
assert_equals(storageEventList.length, 7 );
assert_equals(storageEventList[6 ].storageAreaString, storageString,
"Storage event came from wrong storage type." );
assert_equals(storageEventList[6 ].key, "FU" );
assert_equals(storageEventList[6 ].oldValue, "BAR" );
assert_equals(storageEventList[6 ].newValue, null );
storage.clear();
runAfterNStorageEvents(t.step_func(step6), 8 );
}
function step6(msg)
{
if (msg != undefined) {
assert_unreached(msg);
}
assert_equals(storageEventList.length, 8 );
assert_equals(storageEventList[7 ].storageAreaString, storageString,
"Storage event came from wrong storage type." );
assert_equals(storageEventList[7 ].key, null );
assert_equals(storageEventList[7 ].oldValue, null );
assert_equals(storageEventList[7 ].newValue, null );
t.done();
}
}, storageString + " mutations fire StorageEvents that are caught by the event listener set via window.onstorage." );
});
Messung V0.5 in Prozent C=88 H=99 G=93
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet am 2026-06-06)
¤
*© Formatika GbR, Deutschland