39 lines
972 B
JavaScript
39 lines
972 B
JavaScript
// META: title=IndexedDB
|
|
// META: global=window,worker
|
|
// META: script=resources/support.js
|
|
|
|
'use strict';
|
|
|
|
async_test(t => {
|
|
let db;
|
|
let open_rq = createdb(t);
|
|
let sawTransactionComplete = false;
|
|
|
|
open_rq.onupgradeneeded = function(e) {
|
|
db = e.target.result;
|
|
assert_equals(db.version, 1);
|
|
|
|
db.createObjectStore('os');
|
|
db.close();
|
|
|
|
e.target.transaction.oncomplete = function() {
|
|
sawTransactionComplete = true;
|
|
};
|
|
};
|
|
|
|
open_rq.onerror = function(e) {
|
|
assert_true(sawTransactionComplete, 'saw transaction.complete');
|
|
|
|
assert_equals(e.target.error.name, 'AbortError');
|
|
assert_equals(e.result, undefined);
|
|
|
|
assert_true(!!db);
|
|
assert_equals(db.version, 1);
|
|
assert_equals(db.objectStoreNames.length, 1);
|
|
assert_throws_dom('InvalidStateError', function() {
|
|
db.transaction('os', 'readonly');
|
|
});
|
|
|
|
t.done();
|
|
};
|
|
}, 'When db.close() is called in onupgradeneeded, the db is cleaned up on refresh');
|