diff options
Diffstat (limited to 'LayoutTests/storage/domstorage/events/script-tests')
6 files changed, 408 insertions, 0 deletions
diff --git a/LayoutTests/storage/domstorage/events/script-tests/TEMPLATE.html b/LayoutTests/storage/domstorage/events/script-tests/TEMPLATE.html new file mode 100644 index 0000000..d9af438 --- /dev/null +++ b/LayoutTests/storage/domstorage/events/script-tests/TEMPLATE.html @@ -0,0 +1,13 @@ +<html> +<head> +<link rel="stylesheet" href="../../../fast/js/resources/js-test-style.css"> +<script src="../../../fast/js/resources/js-test-pre.js"></script> +<script src="../../../fast/js/resources/js-test-post-function.js"></script> +</head> +<body> +<p id="description"></p> +<div id="console"></div> +<script src="resources/eventTestHarness.js"></script> +<script src="YOUR_JS_FILE_HERE"></script> +</body> +</html> diff --git a/LayoutTests/storage/domstorage/events/script-tests/basic-body-attribute.js b/LayoutTests/storage/domstorage/events/script-tests/basic-body-attribute.js new file mode 100644 index 0000000..7054069 --- /dev/null +++ b/LayoutTests/storage/domstorage/events/script-tests/basic-body-attribute.js @@ -0,0 +1,98 @@ +description("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."); + +function test(storageString, callback) +{ + window.completionCallback = callback; + window.storage = eval(storageString); + if (!storage) { + testFailed(storageString + " DOES NOT exist"); + return; + } + + debug("Testing " + storageString); + + evalAndLog("storage.clear()"); + shouldBe("storage.length", "0"); + + evalAndLog("iframe.onload = step1"); + evalAndLog("iframe.src = 'resources/body-event-handler.html'"); +} + +function step1() +{ + debug("Reset storage event list"); + evalAndLog("storageEventList = new Array()"); + evalAndLog("storage.setItem('FOO', 'BAR')"); + + runAfterStorageEvents(step2); +} + +function step2() +{ + shouldBe("storageEventList.length", "1"); + shouldBeEqualToString("storageEventList[0].key", "FOO"); + shouldBeNull("storageEventList[0].oldValue"); + shouldBeEqualToString("storageEventList[0].newValue", "BAR"); + evalAndLog("storage.setItem('FU', 'BAR')"); + evalAndLog("storage.setItem('a', '1')"); + evalAndLog("storage.setItem('b', '2')"); + evalAndLog("storage.setItem('b', '3')"); + + runAfterStorageEvents(step3); +} + +function step3() +{ + shouldBe("storageEventList.length", "5"); + shouldBeEqualToString("storageEventList[1].key", "FU"); + shouldBeNull("storageEventList[1].oldValue"); + shouldBeEqualToString("storageEventList[1].newValue", "BAR"); + shouldBeEqualToString("storageEventList[2].key", "a"); + shouldBeNull("storageEventList[2].oldValue"); + shouldBeEqualToString("storageEventList[2].newValue", "1"); + shouldBeEqualToString("storageEventList[3].key", "b"); + shouldBeNull("storageEventList[3].oldValue"); + shouldBeEqualToString("storageEventList[3].newValue", "2"); + shouldBeEqualToString("storageEventList[4].key", "b"); + shouldBeEqualToString("storageEventList[4].oldValue", "2"); + shouldBeEqualToString("storageEventList[4].newValue", "3"); + evalAndLog("storage.removeItem('FOO')"); + + runAfterStorageEvents(step4); +} + +function step4() +{ + shouldBe("storageEventList.length", "6"); + shouldBeEqualToString("storageEventList[5].key", "FOO"); + shouldBeEqualToString("storageEventList[5].oldValue", "BAR"); + shouldBeNull("storageEventList[5].newValue"); + evalAndLog("storage.removeItem('FU')"); + + runAfterStorageEvents(step5); +} + +function step5() +{ + shouldBe("storageEventList.length", "7"); + shouldBeEqualToString("storageEventList[6].key", "FU"); + shouldBeEqualToString("storageEventList[6].oldValue", "BAR"); + shouldBeNull("storageEventList[6].newValue"); + evalAndLog("storage.clear()"); + + runAfterStorageEvents(step6); +} + +function step6() +{ + shouldBe("storageEventList.length", "8"); + shouldBeNull("storageEventList[7].key"); + shouldBeNull("storageEventList[7].oldValue"); + shouldBeNull("storageEventList[7].newValue"); + + completionCallback(); +} + +testStorages(test); + +var successfullyParsed = true; diff --git a/LayoutTests/storage/domstorage/events/script-tests/basic-setattribute.js b/LayoutTests/storage/domstorage/events/script-tests/basic-setattribute.js new file mode 100644 index 0000000..0da34a6 --- /dev/null +++ b/LayoutTests/storage/domstorage/events/script-tests/basic-setattribute.js @@ -0,0 +1,98 @@ +description("This is a test to make sure DOM Storage mutations fire StorageEvents that are caught by the event listener attached via setattribute."); + +function test(storageString, callback) +{ + window.completionCallback = callback; + window.storage = eval(storageString); + if (!storage) { + testFailed(storageString + " DOES NOT exist"); + return; + } + + debug("Testing " + storageString); + + evalAndLog("storage.clear()"); + shouldBe("storage.length", "0"); + + evalAndLog("iframe.onload = step1"); + evalAndLog("iframe.src = 'resources/setattribute-event-handler.html'"); +} + +function step1() +{ + debug("Reset storage event list"); + evalAndLog("storageEventList = new Array()"); + evalAndLog("storage.setItem('FOO', 'BAR')"); + + runAfterStorageEvents(step2); +} + +function step2() +{ + shouldBe("storageEventList.length", "1"); + shouldBeEqualToString("storageEventList[0].key", "FOO"); + shouldBeNull("storageEventList[0].oldValue"); + shouldBeEqualToString("storageEventList[0].newValue", "BAR"); + evalAndLog("storage.setItem('FU', 'BAR')"); + evalAndLog("storage.setItem('a', '1')"); + evalAndLog("storage.setItem('b', '2')"); + evalAndLog("storage.setItem('b', '3')"); + + runAfterStorageEvents(step3); +} + +function step3() +{ + shouldBe("storageEventList.length", "5"); + shouldBeEqualToString("storageEventList[1].key", "FU"); + shouldBeNull("storageEventList[1].oldValue"); + shouldBeEqualToString("storageEventList[1].newValue", "BAR"); + shouldBeEqualToString("storageEventList[2].key", "a"); + shouldBeNull("storageEventList[2].oldValue"); + shouldBeEqualToString("storageEventList[2].newValue", "1"); + shouldBeEqualToString("storageEventList[3].key", "b"); + shouldBeNull("storageEventList[3].oldValue"); + shouldBeEqualToString("storageEventList[3].newValue", "2"); + shouldBeEqualToString("storageEventList[4].key", "b"); + shouldBeEqualToString("storageEventList[4].oldValue", "2"); + shouldBeEqualToString("storageEventList[4].newValue", "3"); + evalAndLog("storage.removeItem('FOO')"); + + runAfterStorageEvents(step4); +} + +function step4() +{ + shouldBe("storageEventList.length", "6"); + shouldBeEqualToString("storageEventList[5].key", "FOO"); + shouldBeEqualToString("storageEventList[5].oldValue", "BAR"); + shouldBeNull("storageEventList[5].newValue"); + evalAndLog("storage.removeItem('FU')"); + + runAfterStorageEvents(step5); +} + +function step5() +{ + shouldBe("storageEventList.length", "7"); + shouldBeEqualToString("storageEventList[6].key", "FU"); + shouldBeEqualToString("storageEventList[6].oldValue", "BAR"); + shouldBeNull("storageEventList[6].newValue"); + evalAndLog("storage.clear()"); + + runAfterStorageEvents(step6); +} + +function step6() +{ + shouldBe("storageEventList.length", "8"); + shouldBeNull("storageEventList[7].key"); + shouldBeNull("storageEventList[7].oldValue"); + shouldBeNull("storageEventList[7].newValue"); + + completionCallback(); +} + +testStorages(test); + +var successfullyParsed = true; diff --git a/LayoutTests/storage/domstorage/events/script-tests/basic.js b/LayoutTests/storage/domstorage/events/script-tests/basic.js new file mode 100644 index 0000000..06591b1 --- /dev/null +++ b/LayoutTests/storage/domstorage/events/script-tests/basic.js @@ -0,0 +1,97 @@ +description("This is a test to make sure DOM Storage mutations fire StorageEvents that are caught by the event listener set via window.onstorage."); + +function test(storageString, callback) +{ + window.completionCallback = callback; + window.storage = eval(storageString); + if (!storage) { + testFailed(storageString + " DOES NOT exist"); + return; + } + + debug("Testing " + storageString); + + evalAndLog("storage.clear()"); + shouldBe("storage.length", "0"); + + runAfterStorageEvents(step1); +} + +function step1() +{ + debug("Reset storage event list"); + evalAndLog("storageEventList = new Array()"); + evalAndLog("storage.setItem('FOO', 'BAR')"); + + runAfterStorageEvents(step2); +} + +function step2() +{ + shouldBe("storageEventList.length", "1"); + shouldBeEqualToString("storageEventList[0].key", "FOO"); + shouldBeNull("storageEventList[0].oldValue"); + shouldBeEqualToString("storageEventList[0].newValue", "BAR"); + evalAndLog("storage.setItem('FU', 'BAR')"); + evalAndLog("storage.setItem('a', '1')"); + evalAndLog("storage.setItem('b', '2')"); + evalAndLog("storage.setItem('b', '3')"); + + runAfterStorageEvents(step3); +} + +function step3() +{ + shouldBe("storageEventList.length", "5"); + shouldBeEqualToString("storageEventList[1].key", "FU"); + shouldBeNull("storageEventList[1].oldValue"); + shouldBeEqualToString("storageEventList[1].newValue", "BAR"); + shouldBeEqualToString("storageEventList[2].key", "a"); + shouldBeNull("storageEventList[2].oldValue"); + shouldBeEqualToString("storageEventList[2].newValue", "1"); + shouldBeEqualToString("storageEventList[3].key", "b"); + shouldBeNull("storageEventList[3].oldValue"); + shouldBeEqualToString("storageEventList[3].newValue", "2"); + shouldBeEqualToString("storageEventList[4].key", "b"); + shouldBeEqualToString("storageEventList[4].oldValue", "2"); + shouldBeEqualToString("storageEventList[4].newValue", "3"); + evalAndLog("storage.removeItem('FOO')"); + + runAfterStorageEvents(step4); +} + +function step4() +{ + shouldBe("storageEventList.length", "6"); + shouldBeEqualToString("storageEventList[5].key", "FOO"); + shouldBeEqualToString("storageEventList[5].oldValue", "BAR"); + shouldBeNull("storageEventList[5].newValue"); + evalAndLog("storage.removeItem('FU')"); + + runAfterStorageEvents(step5); +} + +function step5() +{ + shouldBe("storageEventList.length", "7"); + shouldBeEqualToString("storageEventList[6].key", "FU"); + shouldBeEqualToString("storageEventList[6].oldValue", "BAR"); + shouldBeNull("storageEventList[6].newValue"); + evalAndLog("storage.clear()"); + + runAfterStorageEvents(step6); +} + +function step6() +{ + shouldBe("storageEventList.length", "8"); + shouldBeNull("storageEventList[7].key"); + shouldBeNull("storageEventList[7].oldValue"); + shouldBeNull("storageEventList[7].newValue"); + + completionCallback(); +} + +testStorages(test); + +var successfullyParsed = true; diff --git a/LayoutTests/storage/domstorage/events/script-tests/case-sensitive.js b/LayoutTests/storage/domstorage/events/script-tests/case-sensitive.js new file mode 100644 index 0000000..b5038a8 --- /dev/null +++ b/LayoutTests/storage/domstorage/events/script-tests/case-sensitive.js @@ -0,0 +1,50 @@ +description("Verify that storage events fire even when only the case of the value changes."); + +function test(storageString, callback) +{ + window.completionCallback = callback; + window.storage = eval(storageString); + if (!storage) { + testFailed(storageString + " DOES NOT exist"); + return; + } + + debug("Testing " + storageString); + + evalAndLog("storage.clear()"); + shouldBe("storage.length", "0"); + + debug(""); + debug("Verify storage events are case sensitive"); + evalAndLog("storage.foo = 'test'"); + + runAfterStorageEvents(step1); +} + +function step1() +{ + debug("Reset storage event list"); + evalAndLog("storageEventList = new Array()"); + evalAndLog("storage.foo = 'test'"); + + runAfterStorageEvents(step2); +} + +function step2() +{ + shouldBe("storageEventList.length", "0"); + evalAndLog("storage.foo = 'TEST'"); + + runAfterStorageEvents(step3); +} + +function step3() +{ + shouldBe("storageEventList.length", "1"); + + completionCallback(); +} + +testStorages(test); + +var successfullyParsed = true; diff --git a/LayoutTests/storage/domstorage/events/script-tests/documentURI.js b/LayoutTests/storage/domstorage/events/script-tests/documentURI.js new file mode 100644 index 0000000..4b4f4cb --- /dev/null +++ b/LayoutTests/storage/domstorage/events/script-tests/documentURI.js @@ -0,0 +1,52 @@ +description("Test that changing documentURI has no effects on the uri passed into storage events."); + +function test(storageString, callback) +{ + window.completionCallback = callback; + window.storage = eval(storageString); + if (!storage) { + testFailed(storageString + " DOES NOT exist"); + return; + } + + debug("Testing " + storageString); + + evalAndLog("storage.clear()"); + shouldBe("storage.length", "0"); + + runAfterStorageEvents(step1); +} + +function step1() +{ + debug("Reset storage event list"); + evalAndLog("storageEventList = new Array()"); + evalAndLog("storage.foo = '123'"); + + runAfterStorageEvents(step2); +} + +function step2() +{ + shouldBe("storageEventList.length", "1"); + debug("Saving URI"); + window.lastURI = storageEventList[0].uri; + + evalAndLog("document.documentURI = 'abc'"); + shouldBeEqualToString("document.documentURI", "abc"); + evalAndLog("storage.foo = 'xyz'"); + + runAfterStorageEvents(step3); +} + +function step3() +{ + shouldBe("storageEventList.length", "2"); + shouldBeTrue(String(window.lastURI == storageEventList[1].uri)); + + completionCallback(); +} + +testStorages(test); + +var successfullyParsed = true; |