blob: 2ac0bc479445472ba391de0bb004ab802e81771b [file] [log] [blame]
<!DOCTYPE html>
<script src="../../fast/js/resources/js-test-pre.js"></script>
<script src="resources/shared.js"></script>
<script>
description("Ensure IndexedDB transactions created before open onsuccess have correct metadata");
indexedDBTest(prepareDatabase, onOpenSuccess);
function prepareDatabase(evt)
{
preamble(evt);
evalAndLog("db = event.target.result");
evalAndLog("store = db.createObjectStore('store')");
evalAndLog("store.createIndex('index', 'keyPath')");
evalAndLog("transaction = event.target.transaction");
shouldNotThrow("index = transaction.objectStore('store').index('index')");
transaction.oncomplete = onTransactionComplete;
}
function onTransactionComplete(evt)
{
preamble(evt);
debug("In multiprocess mode, 'complete' event may be dispatched before\n" +
"the 'success' arrives with updated metadata. Ensure the new metadata\n" +
"is still used for transactions.");
evalAndLog("store = db.transaction('store').objectStore('store')");
shouldNotThrow("index = store.index('index')");
}
function onOpenSuccess(evt)
{
preamble(evt);
evalAndLog("db = event.target.result");
evalAndLog("store = db.transaction('store').objectStore('store')");
shouldNotThrow("index = store.index('index')");
finishJSTest();
}
</script>
<script src="../../fast/js/resources/js-test-post.js"></script>