| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| function emptyCursorSuccess() |
| { |
| debug('Empty cursor opened successfully.'); |
| done(); |
| } |
| |
| function openEmptyCursor() |
| { |
| debug('Opening an empty cursor.'); |
| keyRange = IDBKeyRange.lowerBound('InexistentKey'); |
| request = objectStore.openCursor(keyRange); |
| request.onsuccess = emptyCursorSuccess; |
| request.onerror = unexpectedErrorCallback; |
| } |
| |
| function cursorSuccess() |
| { |
| var cursor = event.target.result; |
| if (cursor === null) { |
| debug('Cursor reached end of range.'); |
| openEmptyCursor(); |
| return; |
| } |
| |
| debug('Cursor opened successfully.'); |
| shouldBe("event.target.result.direction", "'next'"); |
| shouldBe("event.target.result.key", "3.14"); |
| shouldBe("event.target.result.value", "'myValue'"); |
| |
| cursor.continue(); |
| } |
| |
| function openCursor(objectStore) |
| { |
| debug('Opening cursor'); |
| var keyRange = IDBKeyRange.lowerBound(3.12); |
| var request = objectStore.openCursor(keyRange); |
| request.onsuccess = cursorSuccess; |
| request.onerror = unexpectedErrorCallback; |
| } |
| |
| function dataAddedSuccess() |
| { |
| debug('Data added'); |
| openCursor(objectStore); |
| } |
| |
| function populateObjectStore() |
| { |
| debug('Populating object store'); |
| db = event.target.result; |
| deleteAllObjectStores(db); |
| window.objectStore = db.createObjectStore('test'); |
| var request = objectStore.add('myValue', 3.14); |
| request.onsuccess = dataAddedSuccess; |
| request.onerror = unexpectedErrorCallback; |
| } |
| |
| function test() { |
| indexedDBTest(populateObjectStore); |
| } |