60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
if (this.importScripts) {
|
|
importScripts('../../../resources/js-test.js');
|
|
importScripts('shared.js');
|
|
}
|
|
|
|
description("Test that integer versions are retained when backing store is opened/closed/re-opened.");
|
|
|
|
function test()
|
|
{
|
|
removeVendorPrefixes();
|
|
setDBNameFromPath();
|
|
|
|
// NOTE: deleteDatabase is not used, otherwise it would set the backing store schema version
|
|
// which would conceal the failure being tested for. Instead, a unique name is used each time.
|
|
evalAndLog("dbname = dbname + Date.now()");
|
|
|
|
openFirstTime();
|
|
}
|
|
|
|
function openFirstTime() {
|
|
preamble();
|
|
request = evalAndLog("indexedDB.open(dbname, 1)");
|
|
request.onerror = unexpectedErrorCallback;
|
|
request.onblocked = unexpectedBlockedCallback;
|
|
upgradeNeededFired = false;
|
|
request.onupgradeneeded = function() {
|
|
evalAndLog("db = request.result");
|
|
evalAndLog("upgradeNeededFired = true");
|
|
shouldBe("db.version", "1");
|
|
shouldBe("db.objectStoreNames.length", "0");
|
|
evalAndLog("db.createObjectStore('store')");
|
|
};
|
|
request.onsuccess = function() {
|
|
shouldBeTrue("upgradeNeededFired");
|
|
evalAndLog("db = request.result");
|
|
shouldBe("db.version", "1");
|
|
shouldBe("db.objectStoreNames.length", "1");
|
|
evalAndLog("db.close()");
|
|
openSecondTime();
|
|
};
|
|
}
|
|
|
|
function openSecondTime() {
|
|
preamble();
|
|
request = evalAndLog("indexedDB.open(dbname, 1)");
|
|
request.onerror = unexpectedErrorCallback;
|
|
request.onblocked = unexpectedBlockedCallback;
|
|
request.onupgradeneeded = unexpectedUpgradeNeededCallback;
|
|
request.onsuccess = function() {
|
|
evalAndLog("db = request.result");
|
|
shouldBe("db.version", "1");
|
|
shouldBe("db.objectStoreNames.length", "1");
|
|
evalAndLog("db.close()");
|
|
debug("");
|
|
finishJSTest();
|
|
};
|
|
}
|
|
|
|
test();
|