Test IndexedDB's webkitIDBObjectStore.deleteObjectStore().

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)
store = db.createObjectStore('storeName', null)
store.createIndex('indexName', '')
PASS store.indexNames.contains('indexName') is true
store.add('value', 'key')
db.transaction(['storeName'])
store = transaction.objectStore('storeName')
store.get('key')
PASS event.target.result is "value"
db.close()
indexedDB.open(dbname, 2)
db.deleteObjectStore('storeName')
db.createObjectStore('storeName', null)
db.transaction(['storeName'])
store = transaction.objectStore('storeName')
store.get('key')
PASS event.target.result is undefined
PASS event.target.source.indexNames.contains('indexName') is false
PASS successfullyParsed is true

TEST COMPLETE

