diff options
Diffstat (limited to 'LayoutTests/storage/indexeddb/transaction-read-only.html')
-rw-r--r-- | LayoutTests/storage/indexeddb/transaction-read-only.html | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/LayoutTests/storage/indexeddb/transaction-read-only.html b/LayoutTests/storage/indexeddb/transaction-read-only.html new file mode 100644 index 0000000..fba6b95 --- /dev/null +++ b/LayoutTests/storage/indexeddb/transaction-read-only.html @@ -0,0 +1,80 @@ +<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("Test read-only transactions in IndexedDB."); +if (window.layoutTestController) + layoutTestController.waitUntilDone(); + +function test() +{ + shouldBeTrue("'webkitIndexedDB' in window"); + shouldBeFalse("webkitIndexedDB == null"); + + result = evalAndLog("webkitIndexedDB.open('name')"); + verifyResult(result); + result.onsuccess = openSuccess; + result.onerror = unexpectedErrorCallback; +} + +function openSuccess() +{ + debug("openSuccess():"); + verifySuccessEvent(event); + window.db = evalAndLog("db = event.result"); + result = evalAndLog("result = db.setVersion('version 1')"); + result.onsuccess = cleanDatabase; + result.onerror = unexpectedErrorCallback; +} + +function cleanDatabase() +{ + verifySuccessEvent(event); + deleteAllObjectStores(db, setVersionStuff); +} + +function setVersionStuff() +{ + event.result.oncomplete = setVersionDone; + event.result.onabort = unexpectedAbortCallback; + store = evalAndLog("store = db.createObjectStore('store')"); + evalAndLog("store.put('x', 'y')"); +} + +function setVersionDone() +{ + trans = evalAndLog("trans = db.transaction()"); + evalAndExpectException("trans.objectStore('store').put('a', 'b')", "webkitIDBDatabaseException.READ_ONLY_ERR"); + + trans = evalAndLog("trans = db.transaction()"); + evalAndExpectException("trans.objectStore('store').delete('x')", "webkitIDBDatabaseException.READ_ONLY_ERR"); + + trans = evalAndLog("trans = db.transaction()"); + cur = evalAndLog("cur = trans.objectStore('store').openCursor()"); + cur.onsuccess = gotCursor; + cur.onerror = unexpectedErrorCallback; +} + +function gotCursor() +{ + shouldBeFalse("!event.result"); + evalAndExpectException("event.result.delete()", "webkitIDBDatabaseException.READ_ONLY_ERR"); + + done(); +} + +var successfullyParsed = true; + +test(); + +</script> +</body> +</html> |