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 C=91 H=99 G=94
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland