diff options
Diffstat (limited to 'LayoutTests/storage/indexeddb/transaction-and-objectstore-calls.html')
-rw-r--r-- | LayoutTests/storage/indexeddb/transaction-and-objectstore-calls.html | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls.html b/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls.html new file mode 100644 index 0000000..580ca5d --- /dev/null +++ b/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls.html @@ -0,0 +1,110 @@ +<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 IndexedDB's transaction and objectStore calls"); +if (window.layoutTestController) + layoutTestController.waitUntilDone(); + +function test() +{ + shouldBeTrue("'webkitIndexedDB' in window"); + shouldBeFalse("webkitIndexedDB == null"); + + result = evalAndLog("webkitIndexedDB.open('name', 'description')"); + verifyResult(result); + result.onsuccess = openSuccess; + result.onerror = unexpectedErrorCallback; +} + +function openSuccess() +{ + window.db = evalAndLog("db = event.result"); + result = evalAndLog("result = db.setVersion('version 1')"); + result.onsuccess = cleanDatabase; + result.onerror = unexpectedErrorCallback; +} + +function cleanDatabase() +{ + trans = evalAndLog("trans = event.result"); + deleteAllObjectStores(db, cleaned); +} + +function cleaned() +{ + evalAndLog("db.createObjectStore('a')"); + evalAndLog("db.createObjectStore('b')"); + evalAndLog("trans.oncomplete = created"); + debug(""); +} + +function created() +{ + trans = evalAndLog("trans = db.transaction({objectStoreNames: 'a'})"); + evalAndLog("trans.objectStore('a')"); + evalAndExpectException("trans.objectStore('b')", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + evalAndExpectException("trans.objectStore('x')", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + debug(""); + + trans = evalAndLog("trans = db.transaction({objectStoreNames: ['a']})"); + evalAndLog("trans.objectStore('a')"); + evalAndExpectException("trans.objectStore('b')", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + evalAndExpectException("trans.objectStore('x')", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + debug(""); + + trans = evalAndLog("trans = db.transaction({objectStoreNames: ['b']})"); + evalAndLog("trans.objectStore('b')"); + evalAndExpectException("trans.objectStore('a')", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + evalAndExpectException("trans.objectStore('x')", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + debug(""); + + trans = evalAndLog("trans = db.transaction({objectStoreNames: ['a', 'b']})"); + evalAndLog("trans.objectStore('a')"); + evalAndLog("trans.objectStore('b')"); + evalAndExpectException("trans.objectStore('x')", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + debug(""); + + trans = evalAndLog("trans = db.transaction({objectStoreNames: ['b', 'a']})"); + evalAndLog("trans.objectStore('a')"); + evalAndLog("trans.objectStore('b')"); + evalAndExpectException("trans.objectStore('x')", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + debug(""); + + trans = evalAndLog("trans = db.transaction({objectStoreNames: []})"); + evalAndLog("trans.objectStore('a')"); + evalAndLog("trans.objectStore('b')"); + evalAndExpectException("trans.objectStore('x')", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + debug(""); + + trans = evalAndLog("trans = db.transaction()"); + evalAndLog("trans.objectStore('a')"); + evalAndLog("trans.objectStore('b')"); + evalAndExpectException("trans.objectStore('x')", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + debug(""); + + evalAndExpectException("db.transaction({objectStoreNames: 'x'})", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + evalAndExpectException("db.transaction({objectStoreNames: ['x']})", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + evalAndExpectException("db.transaction({objectStoreNames: ['a', 'x']})", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + evalAndExpectException("db.transaction({objectStoreNames: ['x', 'x']})", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + evalAndExpectException("db.transaction({objectStoreNames: ['a', 'x', 'b']})", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + debug(""); + + done(); +} + +var successfullyParsed = true; + +test(); + +</script> +</body> +</html> |