1 if (this.importScripts) {
2 importScripts('../../../resources/js-test.js');
3 importScripts('shared.js');
6 description("Test calling db.open in upgradeneeded.");
10 removeVendorPrefixes();
13 request = evalAndLog("indexedDB.deleteDatabase(dbname)");
14 request.onsuccess = deleteSuccess;
15 request.onerror = unexpectedErrorCallback;
18 function deleteSuccess(evt) {
19 evalAndLog("request = indexedDB.open(dbname, 1)");
20 evalAndLog("request.onupgradeneeded = upgradeNeeded1");
21 evalAndLog("request.onsuccess = openSuccess1");
22 request.onblocked = unexpectedBlockedCallback;
23 request.onerror = unexpectedErrorCallback;
26 var sawTransactionComplete = false;
27 function upgradeNeeded1(evt)
30 evalAndLog("db = event.target.result");
31 shouldBe("event.newVersion", "1");
33 evalAndLog("transaction = event.target.transaction");
34 evalAndLog("db.createObjectStore('os')");
35 transaction.onabort = unexpectedAbortCallback;
36 transaction.oncomplete = function transactionOnComplete() {
38 evalAndLog("sawTransactionComplete = true");
40 evalAndLog("db.onversionchange = onVersionChange");
41 evalAndLog("request = indexedDB.open(dbname, 3)");
42 evalAndLog("request.onupgradeneeded = upgradeNeeded2");
43 evalAndLog("request.onsuccess = openSuccess2");
44 request.onblocked = unexpectedBlockedCallback;
45 request.onerror = unexpectedErrorCallback;
48 function openSuccess1(evt)
51 shouldBeTrue("sawTransactionComplete");
52 db = evalAndLog("db = event.target.result");
53 shouldBe('db.version', "1");
54 debug("Start a transaction to ensure the connection is still open.");
55 evalAndLog("transaction = db.transaction('os')");
58 function onVersionChange(evt)
61 evalAndLog("db.close()");
64 function upgradeNeeded2(evt)
67 evalAndLog("db = event.target.result");
68 shouldBe("event.newVersion", "3");
71 function openSuccess2(evt)
74 evalAndLog("db = event.target.result");
75 shouldBe("db.version", "3");