Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

// META: title=IDBTransaction
// META: global=window,worker
// META: script=resources/support.js
'use strict';
async_test(function(t) {
let dbname = 'idbtransaction-' + location + t.name;
indexedDB.deleteDatabase(dbname);
let open_rq = indexedDB.open(dbname);
open_rq.onblocked = t.unreached_func('open_rq.onblocked');
open_rq.onerror = t.unreached_func('open_rq.onerror');
open_rq.onupgradeneeded = t.step_func(function(e) {
t.add_cleanup(function() {
open_rq.onerror = function(e) {
e.preventDefault();
};
open_rq.result.close();
indexedDB.deleteDatabase(open_rq.result.name);
});
assert_equals(
e.target, open_rq, 'e.target is reusing the same IDBOpenDBRequest');
assert_equals(
e.target.transaction, open_rq.transaction,
'IDBOpenDBRequest.transaction');
assert_true(
e.target.transaction instanceof IDBTransaction,
'transaction instanceof IDBTransaction');
t.done();
});
}, 'IDBTransaction - request gotten by the handler');
async_test(function(t) {
let dbname = 'idbtransaction-' + location + t.name;
indexedDB.deleteDatabase(dbname);
let open_rq = indexedDB.open(dbname);
assert_equals(open_rq.transaction, null, 'IDBOpenDBRequest.transaction');
assert_equals(open_rq.source, null, 'IDBOpenDBRequest.source');
assert_equals(open_rq.readyState, 'pending', 'IDBOpenDBRequest.readyState');
assert_true(
open_rq instanceof IDBOpenDBRequest,
'open_rq instanceof IDBOpenDBRequest');
assert_equals(
open_rq + '', '[object IDBOpenDBRequest]', 'IDBOpenDBRequest (open_rq)');
open_rq.onblocked = t.unreached_func('open_rq.onblocked');
open_rq.onerror = t.unreached_func('open_rq.onerror');
open_rq.onupgradeneeded = t.step_func(function() {
t.add_cleanup(function() {
open_rq.onerror = function(e) {
e.preventDefault();
};
open_rq.result.close();
indexedDB.deleteDatabase(open_rq.result.name);
});
t.done();
});
}, 'IDBTransaction - request returned by open()');