Test IndexedDB's basics.

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.open('basics')
PASS 'result' in request is true
Expecting exception from request.result
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Exception message: Failed to read the 'result' property from 'IDBRequest': The request has not finished.
PASS 'error' in request is true
Expecting exception from request.error
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Exception message: Failed to read the 'error' property from 'IDBRequest': The request has not finished.
PASS 'source' in request is true
PASS request.source is null
PASS 'transaction' in request is true
PASS request.transaction is null
PASS 'readyState' in request is true
PASS request.readyState is "pending"
PASS 'onsuccess' in request is true
PASS request.onsuccess is null
PASS 'onerror' in request is true
PASS request.onerror is null
PASS 'result' in event.target is true
PASS !!event.target.result is true
PASS 'error' in event.target is true
PASS event.target.error is null
PASS 'source' in event.target is true
PASS request.source is null
PASS 'transaction' in event.target is true
PASS event.target.transaction is null
PASS 'readyState' in request is true
PASS event.target.readyState is "done"
PASS 'onsuccess' in event.target is true
PASS 'onerror' in event.target is true
PASS successfullyParsed is true

TEST COMPLETE

