Test the basics of IndexedDB's IDBDatabase.

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;

dbname = "database-basics.html"
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
Test that you can't open a transaction while in a versionchange transaction
Expecting exception from db.transaction("doesntExist")
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
PASS db.version is 1
PASS db.name is "database-basics.html"
PASS db.objectStoreNames is []
PASS db.objectStoreNames.length is 0
PASS db.objectStoreNames.contains('') is false
PASS db.objectStoreNames[0] is undefined.
PASS db.objectStoreNames.item(0) is null
db.createObjectStore("test123")
PASS db.objectStoreNames is ['test123']
PASS db.objectStoreNames.length is 1
PASS db.objectStoreNames.contains('') is false
PASS db.objectStoreNames.contains('test456') is false
PASS db.objectStoreNames.contains('test123') is true
db.close()
request = indexedDB.open(dbname, 2)
db = event.target.result
PASS db.version is 2
PASS db.name is "database-basics.html"
PASS db.objectStoreNames is ['test123']
PASS db.objectStoreNames.length is 1
PASS db.objectStoreNames.contains('') is false
PASS db.objectStoreNames.contains('test456') is false
PASS db.objectStoreNames.contains('test123') is true
db.createObjectStore("test456")
setVersionTrans = event.target.transaction
PASS setVersionTrans is non-null.
setVersionTrans.abort()
PASS db.version is 1
PASS db.objectStoreNames is ['test123']
PASS db.objectStoreNames.length is 1
PASS db.objectStoreNames.contains('') is false
PASS db.objectStoreNames.contains('test456') is false
PASS db.objectStoreNames.contains('test123') is true
db.close()
Now that the connection is closed, transaction creation should fail
Expecting exception from db.transaction('test123')
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Call twice, make sure it's harmless
db.close()
PASS successfullyParsed is true

TEST COMPLETE

