This test makes sure that storage of indexedDB and Cache API do 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(300 * 1024), '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

