/**
* Any copyright is dedicated to the Public Domain .
* http : //creativecommons.org/publicdomain/zero/1.0/
*/
/* exported testGenerator */
var testGenerator = testSteps();
function * testSteps() {
const dbNames = ["No files" , "Blobs and mutable files" ];
const version = 1 ;
const objectStoreName = "test" ;
clearAllDatabases(continueToNextStepSync);
yield undefined;
installPackagedProfile("mutableFileUpgrade_profile" );
let request = indexedDB.open(dbNames[0 ], version);
request.onerror = errorHandler;
request.onupgradeneeded = unexpectedSuccessHandler;
request.onsuccess = grabEventAndContinueHandler;
let event = yield undefined;
is(event.type, "success" , "Correct event type" );
let db = event.target.result;
db.onerror = errorHandler;
request = db
.transaction([objectStoreName])
.objectStore(objectStoreName)
.get(1 );
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result, "text" , "Correct result" );
request = indexedDB.open(dbNames[1 ], version);
request.onerror = errorHandler;
request.onupgradeneeded = unexpectedSuccessHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.type, "success" , "Correct event type" );
db = event.target.result;
db.onerror = errorHandler;
request = db
.transaction([objectStoreName])
.objectStore(objectStoreName)
.get(1 );
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result, "text" , "Correct result" );
request = db
.transaction([objectStoreName])
.objectStore(objectStoreName)
.get(2 );
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
verifyBlob(event.target.result, getBlob("blob0" ));
yield undefined;
request = db
.transaction([objectStoreName])
.objectStore(objectStoreName)
.get(3 );
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
let result = event.target.result;
verifyBlob(result[0 ], getBlob("blob1" ));
yield undefined;
verifyBlob(result[1 ], getBlob("blob2" ));
yield undefined;
request = db
.transaction([objectStoreName])
.objectStore(objectStoreName)
.get(4 );
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
try {
event.target.result;
ok(false , "IDBMutableFile must not be read" );
} catch (err) {
is(err.name, "InvalidStateError" , "Wrong error type" );
}
request = db
.transaction([objectStoreName])
.objectStore(objectStoreName)
.get(5 );
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
try {
event.target.result;
ok(false , "IDBMutableFile must not be read" );
} catch (err) {
is(err.name, "InvalidStateError" , "Wrong error type" );
}
request = db
.transaction([objectStoreName])
.objectStore(objectStoreName)
.get(6 );
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
try {
event.target.result;
ok(false , "IDBMutableFile must not be read" );
} catch (err) {
is(err.name, "InvalidStateError" , "Wrong error type" );
}
finishTest();
yield undefined;
}
Messung V0.5 in Prozent C=86 H=94 G=89
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland