254 lines
10 KiB
Plaintext
254 lines
10 KiB
Plaintext
Test IndexedDB cursor.advance().
|
|
|
|
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)
|
|
|
|
prepareDatabase():
|
|
objectStore = db.createObjectStore(objectStoreName);
|
|
Now create the indexes.
|
|
objectStore.createIndex(indexData[i].name, indexData[i].keyPath, indexData[i].options);
|
|
objectStore.createIndex(indexData[i].name, indexData[i].keyPath, indexData[i].options);
|
|
objectStore.createIndex(indexData[i].name, indexData[i].keyPath, indexData[i].options);
|
|
trans = db.transaction(objectStoreName, 'readwrite')
|
|
objectStore = trans.objectStore(objectStoreName)
|
|
First, add all our data to the object store.
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
|
|
testSimple()
|
|
trans = db.transaction(objectStoreName)
|
|
store = trans.objectStore(objectStoreName)
|
|
request = store.openCursor()
|
|
cursor.advance(1)
|
|
PASS expected is "{\"key\":\"237-23-7733\",\"value\":{\"name\":\"Ann\",\"height\":52,\"weight\":110},\"primaryKey\":\"237-23-7733\"}"
|
|
testContinueThenAdvance()
|
|
trans = db.transaction(objectStoreName)
|
|
store = trans.objectStore(objectStoreName)
|
|
request = store.openCursor()
|
|
cursor.continue();
|
|
cursor.continue();
|
|
cursor.continue();
|
|
cursor.advance(1)
|
|
PASS expected is "{\"key\":\"237-23-7736\",\"value\":{\"name\":\"Joe\",\"height\":65,\"weight\":150},\"primaryKey\":\"237-23-7736\"}"
|
|
testAdvanceMultiple()
|
|
trans = db.transaction(objectStoreName)
|
|
store = trans.objectStore(objectStoreName)
|
|
request = store.openCursor()
|
|
cursor.advance(3)
|
|
PASS expected is "{\"key\":\"237-23-7735\",\"value\":{\"name\":\"Sue\",\"height\":58,\"weight\":130},\"primaryKey\":\"237-23-7735\"}"
|
|
testAdvanceIndex()
|
|
trans = db.transaction(objectStoreName)
|
|
store = trans.objectStore(objectStoreName)
|
|
request = store.openCursor()
|
|
cursor.advance(3)
|
|
PASS expected is "{\"key\":\"Jef\",\"value\":{\"name\":\"Jef\",\"height\":65,\"weight\":120},\"primaryKey\":\"237-23-7739\"}"
|
|
testAdvanceIndexNoDupe()
|
|
trans = db.transaction(objectStoreName)
|
|
store = trans.objectStore(objectStoreName)
|
|
request = store.openCursor(null, 'nextunique')
|
|
cursor.advance(3)
|
|
PASS expected is "{\"key\":130,\"value\":{\"name\":\"Sue\",\"height\":58,\"weight\":130},\"primaryKey\":\"237-23-7735\"}"
|
|
testAdvanceIndexPrev()
|
|
trans = db.transaction(objectStoreName)
|
|
store = trans.objectStore(objectStoreName)
|
|
request = store.openCursor(null, 'prev')
|
|
cursor.advance(3)
|
|
PASS expected is "{\"key\":150,\"value\":{\"name\":\"Joe\",\"height\":65,\"weight\":150},\"primaryKey\":\"237-23-7736\"}"
|
|
testAdvanceIndexPrevNoDupe()
|
|
trans = db.transaction(objectStoreName)
|
|
store = trans.objectStore(objectStoreName)
|
|
request = store.openCursor(null, 'prevunique')
|
|
cursor.advance(3)
|
|
PASS expected is "{\"key\":120,\"value\":{\"name\":\"Bob\",\"height\":60,\"weight\":120},\"primaryKey\":\"237-23-7732\"}"
|
|
testAdvanceToEnd()
|
|
trans = db.transaction(objectStoreName)
|
|
store = trans.objectStore(objectStoreName)
|
|
request = store.openCursor()
|
|
cursor.advance(100)
|
|
PASS expected is "null"
|
|
testPrefetchInRange()
|
|
trans = db.transaction(objectStoreName)
|
|
objectStore = trans.objectStore(objectStoreName)
|
|
request = objectStore.openCursor()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7732\",\"value\":{\"name\":\"Bob\",\"height\":60,\"weight\":120},\"primaryKey\":\"237-23-7732\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7733\",\"value\":{\"name\":\"Ann\",\"height\":52,\"weight\":110},\"primaryKey\":\"237-23-7733\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7734\",\"value\":{\"name\":\"Ron\",\"height\":73,\"weight\":180},\"primaryKey\":\"237-23-7734\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7735\",\"value\":{\"name\":\"Sue\",\"height\":58,\"weight\":130},\"primaryKey\":\"237-23-7735\"}"
|
|
cursor.advance(2)
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7737\",\"value\":{\"name\":\"Pat\",\"height\":65,\"weight\":100},\"primaryKey\":\"237-23-7737\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7738\",\"value\":{\"name\":\"Leo\",\"height\":65,\"weight\":180},\"primaryKey\":\"237-23-7738\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7739\",\"value\":{\"name\":\"Jef\",\"height\":65,\"weight\":120},\"primaryKey\":\"237-23-7739\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7740\",\"value\":{\"name\":\"Sam\",\"height\":71,\"weight\":110},\"primaryKey\":\"237-23-7740\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7741\",\"value\":{\"name\":\"Bug\",\"height\":63,\"weight\":100},\"primaryKey\":\"237-23-7741\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7742\",\"value\":{\"name\":\"Tub\",\"height\":69,\"weight\":180},\"primaryKey\":\"237-23-7742\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7743\",\"value\":{\"name\":\"Rug\",\"height\":77,\"weight\":120},\"primaryKey\":\"237-23-7743\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7744\",\"value\":{\"name\":\"Pug\",\"height\":66,\"weight\":110},\"primaryKey\":\"237-23-7744\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
testPrefetchOutOfRange()
|
|
trans = db.transaction(objectStoreName)
|
|
objectStore = trans.objectStore(objectStoreName)
|
|
request = objectStore.openCursor()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7732\",\"value\":{\"name\":\"Bob\",\"height\":60,\"weight\":120},\"primaryKey\":\"237-23-7732\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7733\",\"value\":{\"name\":\"Ann\",\"height\":52,\"weight\":110},\"primaryKey\":\"237-23-7733\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7734\",\"value\":{\"name\":\"Ron\",\"height\":73,\"weight\":180},\"primaryKey\":\"237-23-7734\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7735\",\"value\":{\"name\":\"Sue\",\"height\":58,\"weight\":130},\"primaryKey\":\"237-23-7735\"}"
|
|
cursor.advance(7)
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7742\",\"value\":{\"name\":\"Tub\",\"height\":69,\"weight\":180},\"primaryKey\":\"237-23-7742\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7743\",\"value\":{\"name\":\"Rug\",\"height\":77,\"weight\":120},\"primaryKey\":\"237-23-7743\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
PASS expected is "{\"key\":\"237-23-7744\",\"value\":{\"name\":\"Pug\",\"height\":66,\"weight\":110},\"primaryKey\":\"237-23-7744\"}"
|
|
cursor.continue()
|
|
|
|
prefetch():
|
|
testBadAdvance()
|
|
trans = db.transaction(objectStoreName, 'readwrite')
|
|
objectStore = trans.objectStore(objectStoreName)
|
|
request = objectStore.openCursor()
|
|
|
|
advanceBadly():
|
|
Expecting TypeError exception from cursor.advance(0)
|
|
PASS Exception was thrown.
|
|
PASS cursor.advance(0) threw TypeError: Failed to execute 'advance' on 'IDBCursor': A count argument with value 0 (zero) was supplied, must be greater than 0.
|
|
Expecting TypeError exception from cursor.advance(-1)
|
|
PASS Exception was thrown.
|
|
PASS cursor.advance(-1) threw TypeError: Value -1 is outside the range [0, 4294967295]
|
|
Expecting TypeError exception from cursor.advance(0x100000000)
|
|
PASS Exception was thrown.
|
|
PASS cursor.advance(0x100000000) threw TypeError: Value 4294967296 is outside the range [0, 4294967295]
|
|
Expecting TypeError exception from cursor.advance(0x20000000000000)
|
|
PASS Exception was thrown.
|
|
PASS cursor.advance(0x20000000000000) threw TypeError: Value 9007199254740992 is outside the range [0, 4294967295]
|
|
|
|
testEdges():
|
|
trans = db.transaction(objectStoreName, 'readonly')
|
|
objectStore = trans.objectStore(objectStoreName)
|
|
request = objectStore.openCursor()
|
|
|
|
onSuccess():
|
|
cursor = event.target.result
|
|
PASS cursor is non-null.
|
|
cursor.advance(0xffffffff)
|
|
|
|
onSuccess():
|
|
cursor = event.target.result
|
|
PASS cursor is null
|
|
testDelete()
|
|
trans = db.transaction(objectStoreName, 'readwrite')
|
|
objectStore = trans.objectStore(objectStoreName)
|
|
request = objectStore.openCursor()
|
|
|
|
deleteSecond():
|
|
PASS expected is "{\"key\":\"237-23-7732\",\"value\":{\"name\":\"Bob\",\"height\":60,\"weight\":120},\"primaryKey\":\"237-23-7732\"}"
|
|
cursor.advance(1)
|
|
|
|
deleteSecond():
|
|
PASS expected is "{\"key\":\"237-23-7733\",\"value\":{\"name\":\"Ann\",\"height\":52,\"weight\":110},\"primaryKey\":\"237-23-7733\"}"
|
|
cursor.advance(1)
|
|
|
|
deleteSecond():
|
|
PASS expected is "{\"key\":\"237-23-7734\",\"value\":{\"name\":\"Ron\",\"height\":73,\"weight\":180},\"primaryKey\":\"237-23-7734\"}"
|
|
cursor.delete()
|
|
|
|
deleteSecond():
|
|
PASS expected is "{\"key\":\"237-23-7738\",\"value\":{\"name\":\"Leo\",\"height\":65,\"weight\":180},\"primaryKey\":\"237-23-7738\"}"
|
|
cursor.advance(1)
|
|
|
|
deleteSecond():
|
|
PASS expected is "{\"key\":\"237-23-7739\",\"value\":{\"name\":\"Jef\",\"height\":65,\"weight\":120},\"primaryKey\":\"237-23-7739\"}"
|
|
cursor.advance(1)
|
|
|
|
deleteSecond():
|
|
PASS expected is "{\"key\":\"237-23-7740\",\"value\":{\"name\":\"Sam\",\"height\":71,\"weight\":110},\"primaryKey\":\"237-23-7740\"}"
|
|
cursor.advance(1)
|
|
|
|
deleteSecond():
|
|
PASS expected is "{\"key\":\"237-23-7741\",\"value\":{\"name\":\"Bug\",\"height\":63,\"weight\":100},\"primaryKey\":\"237-23-7741\"}"
|
|
cursor.advance(1)
|
|
|
|
deleteSecond():
|
|
PASS expected is "{\"key\":\"237-23-7742\",\"value\":{\"name\":\"Tub\",\"height\":69,\"weight\":180},\"primaryKey\":\"237-23-7742\"}"
|
|
cursor.advance(1)
|
|
|
|
deleteSecond():
|
|
PASS expected is "{\"key\":\"237-23-7743\",\"value\":{\"name\":\"Rug\",\"height\":77,\"weight\":120},\"primaryKey\":\"237-23-7743\"}"
|
|
cursor.advance(1)
|
|
|
|
deleteSecond():
|
|
PASS expected is "{\"key\":\"237-23-7744\",\"value\":{\"name\":\"Pug\",\"height\":66,\"weight\":110},\"primaryKey\":\"237-23-7744\"}"
|
|
cursor.advance(1)
|
|
|
|
deleteSecond():
|
|
PASS successfullyParsed is true
|
|
|
|
TEST COMPLETE
|
|
|