This test makes sure that storage of indexedDB does not grow unboundedly.

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)
db = event.target.result
store = db.createObjectStore('store')
db = event.target.result
store = db.transaction('store', 'readwrite').objectStore('store')
request = store.add(new Uint8Array(204800), 'key')
PASS 'error' in request is true
PASS request.error.code is DOMException.QUOTA_EXCEEDED_ERR
PASS request.error.name is "QuotaExceededError"
PASS successfullyParsed is true

TEST COMPLETE

