| Test that a database is recreated correctly when an open-with-version call is queued behind a deleteDatabase call |
| |
| 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) |
| |
| deleteSuccess(): |
| request = indexedDB.open(dbname) |
| request.onsuccess = firstSuccessCallback |
| |
| firstSuccessCallback(): |
| connection1 = event.target.result |
| connection1.onversionchange = connection1VersionChangeCallback |
| request = indexedDB.open(dbname) |
| request.onsuccess = secondSuccessCallback |
| request = indexedDB.deleteDatabase(dbname) |
| request.onblocked = deleteDatabaseBlockedCallback |
| request.onsuccess = deleteDatabaseSuccessCallback |
| request = indexedDB.open(dbname, 1) |
| request.onupgradeneeded = upgradeNeededCallback |
| request.onsuccess = openWithVersionSuccessCallback |
| |
| secondSuccessCallback(): |
| db = event.target.result |
| db.onversionchange = connection2VersionChangeCallback |
| |
| connection1VersionChangeCallback(): |
| PASS event.type is "versionchange" |
| PASS event.oldVersion is 1 |
| PASS event.newVersion is null |
| |
| connection2VersionChangeCallback(): |
| PASS event.type is "versionchange" |
| event.target.close() |
| |
| deleteDatabaseBlockedCallback(): |
| connection1.close() |
| |
| deleteDatabaseSuccessCallback(): |
| |
| upgradeNeededCallback(): |
| PASS event.newVersion is 1 |
| PASS event.oldVersion is 0 |
| |
| openWithVersionSuccessCallback(): |
| PASS event.target.result.objectStoreNames.length is 0 |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |