116 lines
3.1 KiB
JavaScript
116 lines
3.1 KiB
JavaScript
// META: title=IDBFactory.deleteDatabase()
|
|
// META: global=window,worker
|
|
// META: script=resources/support.js
|
|
|
|
'use strict';
|
|
|
|
async_test(t => {
|
|
const open_rq = createdb(t, undefined, 9);
|
|
|
|
open_rq.onupgradeneeded = t.step_func(e => {});
|
|
open_rq.onsuccess = t.step_func(e => {
|
|
const db = e.target.result;
|
|
db.close();
|
|
|
|
const delete_rq = indexedDB.deleteDatabase(db.name);
|
|
delete_rq.onerror = t.step_func(e => {
|
|
assert_unreached('Unexpected delete_rq.error event');
|
|
});
|
|
delete_rq.onsuccess = t.step_func(e => {
|
|
assert_equals(e.target.source, null, 'event.target.source');
|
|
t.done();
|
|
});
|
|
});
|
|
}, 'deleteDatabase() request should have no source');
|
|
|
|
async_test(t => {
|
|
const open_rq = createdb(t, undefined, 9);
|
|
|
|
open_rq.onupgradeneeded = t.step_func(e => {});
|
|
|
|
open_rq.onsuccess = t.step_func(e => {
|
|
const db = e.target.result;
|
|
db.close();
|
|
|
|
const delete_rq = indexedDB.deleteDatabase(db.name);
|
|
delete_rq.onerror = t.step_func(e => {
|
|
assert_unreached('Unexpected delete_rq.error event');
|
|
});
|
|
|
|
delete_rq.onsuccess = t.step_func(e => {
|
|
assert_equals(e.target.result, undefined, 'result');
|
|
t.done();
|
|
});
|
|
});
|
|
}, 'Result of the deleteDatabase() request is set to undefined.');
|
|
|
|
async_test(t => {
|
|
let db;
|
|
const open_rq = createdb(t, undefined, 9);
|
|
|
|
open_rq.onupgradeneeded = t.step_func(e => {
|
|
db = e.target.result;
|
|
db.createObjectStore('os');
|
|
});
|
|
|
|
open_rq.onsuccess = t.step_func(e => {
|
|
db.close();
|
|
|
|
const delete_rq = indexedDB.deleteDatabase(db.name);
|
|
delete_rq.onerror = t.step_func(e => {
|
|
assert_unreached('Unexpected delete_rq.error event');
|
|
});
|
|
|
|
delete_rq.onsuccess = t.step_func(e => {
|
|
assert_equals(e.oldVersion, 9, 'oldVersion');
|
|
assert_equals(e.newVersion, null, 'newVersion');
|
|
assert_equals(e.target.result, undefined, 'result');
|
|
assert_true(
|
|
e instanceof IDBVersionChangeEvent,
|
|
'e instanceof IDBVersionChangeEvent');
|
|
t.done();
|
|
});
|
|
});
|
|
}, 'The deleteDatabase() request\'s success event is an IDBVersionChangeEvent.');
|
|
|
|
async_test(t => {
|
|
const dbname = location + '-' + t.name;
|
|
|
|
indexedDB.deleteDatabase(dbname);
|
|
|
|
let db;
|
|
const openrq = indexedDB.open(dbname, 3);
|
|
|
|
openrq.onupgradeneeded = t.step_func(e => {
|
|
e.target.result.createObjectStore('store');
|
|
});
|
|
|
|
openrq.onsuccess = t.step_func(e => {
|
|
db = e.target.result;
|
|
|
|
// Errors
|
|
db.onversionchange = fail(t, 'db.versionchange');
|
|
db.onerror = fail(t, 'db.error');
|
|
db.abort = fail(t, 'db.abort');
|
|
|
|
step_timeout(t.step_func(() => Second(t, dbname)), 4);
|
|
db.close();
|
|
});
|
|
|
|
// Errors
|
|
openrq.onerror = fail(t, 'open.error');
|
|
openrq.onblocked = fail(t, 'open.blocked');
|
|
}, 'Delete an existing database - Test events opening a second \
|
|
database when one connection is open already');
|
|
|
|
function Second(t, dbname) {
|
|
const deleterq = indexedDB.deleteDatabase(dbname);
|
|
|
|
deleterq.onsuccess = e => {
|
|
t.done();
|
|
};
|
|
|
|
deleterq.onerror = fail(t, 'delete.error');
|
|
deleterq.onblocked = fail(t, 'delete.blocked');
|
|
deleterq.onupgradeneeded = fail(t, 'delete.upgradeneeded');
|
|
}
|