blob: 0b14642d41e2c004d30b062958cbc279977e9ebd [file] [log] [blame]
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;
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'
Exception message: Failed to execute 'transaction' on 'IDBDatabase': A version change transaction is running.
PASS db.version is 1
PASS db.name is "database-basics-private.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
PASS db.objectStoreNames.contains() threw exception TypeError: Not enough arguments.
db.close()
request = indexedDB.open(dbname, 2)
db = event.target.result
PASS db.version is 2
PASS db.name is "database-basics-private.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
PASS db.objectStoreNames.contains() threw exception TypeError: Not enough arguments.
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
PASS db.objectStoreNames.contains() threw exception TypeError: Not enough arguments.
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'
Exception message: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
Call twice, make sure it's harmless
db.close()
PASS successfullyParsed is true
TEST COMPLETE