Test behavior when the same connection calls setVersion twice 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; PASS indexedDB == null is false PASS IDBTransaction == null is false self.state = 'starting' indexedDB.open('two-versions-one-connection') db = event.target.result self.state = 0 db.setVersion('version 1') db.setVersion('version 2') setVersion() #1 callback self.store1 = db.createObjectStore('test-store1') PASS ++self.state is 1 self.store1.put('aaa', 111) PASS ++self.state is 2 PASS ++self.state is 3 halfway there... setVersion() #2 callback PASS ++self.state is 4 self.store2 = db.createObjectStore('test-store2') self.store2.put('bbb', 222) PASS ++self.state is 5 PASS ++self.state is 6 PASS self.db.version is "version 2" self.trans = db.transaction(['test-store1', 'test-store2']) self.store = self.trans.objectStore('test-store1') self.req = self.store.get(111) PASS event.target.result is "aaa" self.store = self.trans.objectStore('test-store2') self.req = self.store.get(222) PASS event.target.result is "bbb" PASS successfullyParsed is true TEST COMPLETE