diff options
Diffstat (limited to 'LayoutTests/storage/indexeddb/set_version_blocked.html')
-rw-r--r-- | LayoutTests/storage/indexeddb/set_version_blocked.html | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/LayoutTests/storage/indexeddb/set_version_blocked.html b/LayoutTests/storage/indexeddb/set_version_blocked.html new file mode 100644 index 0000000..dae1a18 --- /dev/null +++ b/LayoutTests/storage/indexeddb/set_version_blocked.html @@ -0,0 +1,74 @@ +<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> +<script src="resources/shared.js"></script> +</head> +<body> +<p id="description"></p> +<div id="console"></div> +<script> + +description("An open connection blocks a separate connection's setVersion call"); +if (window.layoutTestController) + layoutTestController.waitUntilDone(); + +connections = [] +function test() +{ + if ('webkitIndexedDB' in window) + IndexedDB = webkitIndexedDB; + else if ('mozIndexedDB' in window) + IndexedDB = mozIndexedDB; + shouldBeFalse("IndexedDB == null"); + openDBConnection(); +} + +function openDBConnection() +{ + request = evalAndLog("IndexedDB.open('set-version-blocked')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; +} + +function openSuccess() +{ + connection = event.target.result; + connections.push(connection); + original_version = connection.version; + if (connections.length < 2) + openDBConnection(); + else { + var versionChangeRequest = evalAndLog("connections[0].setVersion('version 1')"); + versionChangeRequest.onerror = unexpectedErrorCallback; + versionChangeRequest.onsuccess = inSetVersion; + versionChangeRequest.onblocked = blocked; + } +} + +seen_blocked_event = false; +function blocked() +{ + evalAndLog("seen_blocked_event = true"); + blocked_event = event; + shouldBeEqualToString("blocked_event.version", "version 1"); + shouldEvaluateTo("blocked_event.target.readyState", 1); + evalAndLog("connections[1].close()"); +} + +function inSetVersion() +{ + debug("in setVersion.onsuccess"); + shouldBeTrue("seen_blocked_event"); + deleteAllObjectStores(connections[0]); + done(); +} + +var successfullyParsed = true; + +test(); + +</script> +</body> +</html> |