Test IndexedDB database metadata mutation/snapshotting
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
dbname = "metadata.html"
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
connection1store1 = connection1.createObjectStore('store1')
connection1store1.createIndex('index1', 'path')
PASS connection1.version is 1
PASS connection1.objectStoreNames.length is 1
PASS connection1store1.indexNames.length is 1
Connection's properties should be snapshotted on close
connection1.close()
secondOpen():
request = indexedDB.open(dbname, 2)
connection2 = request.result
trans = request.transaction
connection2.createObjectStore('store2')
connection2store1 = trans.objectStore('store1')
connection2store1.createIndex('index2', 'path')
PASS connection2.version is 2
PASS connection2.objectStoreNames.length is 2
PASS connection2store1.indexNames.length is 2
Connection's properties should be snapshotted on close
connection2.close()
thirdOpen():
request = indexedDB.open(dbname, 3)
connection3 = request.result
trans = request.transaction
connection3.createObjectStore('store3')
connection3store1 = trans.objectStore('store1')
connection3store1.createIndex('index3', 'path')
PASS connection3.version is 3
PASS connection3.objectStoreNames.length is 3
PASS connection3store1.indexNames.length is 3
Connection's properties should be reverted on abort
trans.abort()
Connection's properties should be snapshotted on close
connection3.close()
fourthOpen():
request = indexedDB.open(dbname, 4)
connection4 = request.result
trans = request.transaction
connection4.createObjectStore('store4')
connection4store1 = trans.objectStore('store1')
connection4store1.createIndex('index4', 'path')
PASS connection4.version is 4
PASS connection4.objectStoreNames.length is 3
PASS connection4store1.indexNames.length is 3
Connection's properties should be snapshotted on close
connection4.close()
checkState():
PASS connection1.version is 1
PASS connection1.objectStoreNames.length is 1
PASS connection1store1.indexNames.length is 1
PASS connection2.version is 2
PASS connection2.objectStoreNames.length is 2
PASS connection2store1.indexNames.length is 2
PASS connection3.version is 2
PASS connection3.objectStoreNames.length is 2
PASS connection3store1.indexNames.length is 2
PASS connection4.version is 4
PASS connection4.objectStoreNames.length is 3
PASS connection4store1.indexNames.length is 3
PASS successfullyParsed is true
TEST COMPLETE