Ensure that aborted VERSION_CHANGE transactions are completely rolled back

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;

indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
PASS trans instanceof IDBTransaction is true
store = db.createObjectStore('store1')
setVersion1 complete
PASS db.version is 1

vcreq = indexedDB.open(dbname, 2)
setVersion2() callback
PASS db.version is 2
PASS vcreq.transaction instanceof IDBTransaction is true
store = db.deleteObjectStore('store1')
store = db.createObjectStore('store2')
raising exception

setVersion2Abort() callback
request = indexedDB.open(dbname)
PASS db.version is 1
PASS db.objectStoreNames.contains('store1') is true
PASS db.objectStoreNames.contains('store2') is false
PASS successfullyParsed is true

TEST COMPLETE

