blob: a5f9551f0a5869f8081a1fe0eb8aab0351133191 [file] [log] [blame]
Test IndexedDB's IDBObjectStore.count().
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
dbname = "objectstore-count.html"
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
store = db.createObjectStore('storeName', null)
adding 0 ... 99
verifying count without range
trans = db.transaction('storeName', 'readonly')
PASS trans is non-null.
store = trans.objectStore('storeName')
PASS store is non-null.
request = store.count()
PASS typeof request.result is "number"
PASS request.result is 100
verifying count with range
trans = db.transaction('storeName', 'readonly')
PASS trans is non-null.
store = trans.objectStore('storeName')
PASS store is non-null.
test = {"lower":0,"lowerOpen":false,"upper":99,"upperOpen":false,"expected":100}
request = store.count(IDBKeyRange.bound(test.lower, test.upper, test.lowerOpen, test.upperOpen))
PASS typeof request.result is "number"
PASS request.result is 100
test = {"lower":0,"lowerOpen":true,"upper":99,"upperOpen":false,"expected":99}
request = store.count(IDBKeyRange.bound(test.lower, test.upper, test.lowerOpen, test.upperOpen))
PASS typeof request.result is "number"
PASS request.result is 99
test = {"lower":0,"lowerOpen":false,"upper":99,"upperOpen":true,"expected":99}
request = store.count(IDBKeyRange.bound(test.lower, test.upper, test.lowerOpen, test.upperOpen))
PASS typeof request.result is "number"
PASS request.result is 99
test = {"lower":0,"lowerOpen":true,"upper":99,"upperOpen":true,"expected":98}
request = store.count(IDBKeyRange.bound(test.lower, test.upper, test.lowerOpen, test.upperOpen))
PASS typeof request.result is "number"
PASS request.result is 98
test = {"lower":0,"lowerOpen":false,"upper":100,"upperOpen":false,"expected":100}
request = store.count(IDBKeyRange.bound(test.lower, test.upper, test.lowerOpen, test.upperOpen))
PASS typeof request.result is "number"
PASS request.result is 100
test = {"lower":0,"lowerOpen":false,"upper":100,"upperOpen":false,"expected":100}
request = store.count(IDBKeyRange.bound(test.lower, test.upper, test.lowerOpen, test.upperOpen))
PASS typeof request.result is "number"
PASS request.result is 100
test = {"lower":10,"lowerOpen":false,"upper":100,"upperOpen":false,"expected":90}
request = store.count(IDBKeyRange.bound(test.lower, test.upper, test.lowerOpen, test.upperOpen))
PASS typeof request.result is "number"
PASS request.result is 90
test = {"lower":0,"lowerOpen":false,"upper":0,"upperOpen":false,"expected":1}
request = store.count(IDBKeyRange.bound(test.lower, test.upper, test.lowerOpen, test.upperOpen))
PASS typeof request.result is "number"
PASS request.result is 1
test = {"lower":500,"lowerOpen":false,"upper":500,"upperOpen":false,"expected":0}
request = store.count(IDBKeyRange.bound(test.lower, test.upper, test.lowerOpen, test.upperOpen))
PASS typeof request.result is "number"
PASS request.result is 0
verifying count with key
trans = db.transaction('storeName', 'readonly')
PASS trans is non-null.
store = trans.objectStore('storeName')
PASS store is non-null.
Expecting exception from store.count(NaN)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'count' on 'IDBObjectStore': The parameter is not a valid key.
Expecting exception from store.count({})
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'count' on 'IDBObjectStore': The parameter is not a valid key.
Expecting exception from store.count(/regex/)
PASS Exception was thrown.
PASS code is 0
PASS ename is 'DataError'
Exception message: Failed to execute 'count' on 'IDBObjectStore': The parameter is not a valid key.
test = {"key":0,"expected":1}
request = store.count(test.key)
PASS typeof request.result is "number"
PASS request.result is 1
test = {"key":100,"expected":0}
request = store.count(test.key)
PASS typeof request.result is "number"
PASS request.result is 0
test = {"key":null,"expected":100}
request = store.count(test.key)
PASS typeof request.result is "number"
PASS request.result is 100
PASS successfullyParsed is true
TEST COMPLETE