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