Test IndexedDB's webkitIDBObjectStore.clear().

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')
otherStore = db.createObjectStore('otherStoreName', null)
otherStore.add('value', 'key')
store.clear()
PASS event.target.result is undefined.
store.openCursor()
PASS event.target.result is null
index = store.index('indexName')
index.openKeyCursor()
openKeyCursorSuccess():
PASS event.target.result is null
db.transaction(['otherStoreName'])
otherStore = transaction.objectStore('otherStoreName')
otherStore.get('key')
PASS event.target.result is "value"
PASS successfullyParsed is true

TEST COMPLETE

