This test checks basic functionality walking a "next" and "prev" cursor on an object store with some records.

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)
Initial upgrade needed: Old version - 0 New version - 1
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 0
Cursor value is: Record 0
Cursor primary key is: 0
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 1
Cursor value is: Record 1
Cursor primary key is: 1
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 2
Cursor value is: Record 2
Cursor primary key is: 2
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 3
Cursor value is: Record 3
Cursor primary key is: 3
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 4
Cursor value is: Record 4
Cursor primary key is: 4
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 5
Cursor value is: Record 5
Cursor primary key is: 5
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 6
Cursor value is: Record 6
Cursor primary key is: 6
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 7
Cursor value is: Record 7
Cursor primary key is: 7
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 8
Cursor value is: Record 8
Cursor primary key is: 8
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 9
Cursor value is: Record 9
Cursor primary key is: 9
Success iterating next cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: next
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: foo
Cursor value is: [object Object]
Cursor primary key is: foo
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: foo
Cursor value is: [object Object]
Cursor primary key is: foo
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 9
Cursor value is: Record 9
Cursor primary key is: 9
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 8
Cursor value is: Record 8
Cursor primary key is: 8
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 7
Cursor value is: Record 7
Cursor primary key is: 7
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 6
Cursor value is: Record 6
Cursor primary key is: 6
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 5
Cursor value is: Record 5
Cursor primary key is: 5
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 4
Cursor value is: Record 4
Cursor primary key is: 4
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 3
Cursor value is: Record 3
Cursor primary key is: 3
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 2
Cursor value is: Record 2
Cursor primary key is: 2
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 1
Cursor value is: Record 1
Cursor primary key is: 1
Success iterating prev cursor
Cursor is: [object IDBCursorWithValue]
Cursor direction is: prev
Cursor source is: [object IDBObjectStore] (TestObjectStore)
Cursor key is: 0
Cursor value is: Record 0
Cursor primary key is: 0
Initial upgrade versionchange transaction complete
PASS successfullyParsed is true

TEST COMPLETE

