| if (this.importScripts) { |
| importScripts('../../../resources/js-test.js'); |
| importScripts('shared.js'); |
| } |
| |
| description("Test IndexedDB undefined as record value"); |
| |
| indexedDBTest(prepareDatabase); |
| function prepareDatabase() |
| { |
| db = event.target.result; |
| event.target.transaction.onabort = unexpectedAbortCallback; |
| |
| objectStore = evalAndLog("objectStore = db.createObjectStore('foo');"); |
| result = evalAndLog("result = objectStore.add(undefined, Infinity);"); |
| result.onerror = unexpectedErrorCallback; |
| result.onsuccess = getValue; |
| } |
| |
| function getValue() |
| { |
| result = evalAndLog("result = objectStore.get(Infinity);"); |
| result.onerror = unexpectedErrorCallback; |
| result.onsuccess = checkValue; |
| } |
| |
| function checkValue() |
| { |
| value = evalAndLog("value = event.target.result;"); |
| shouldBe("value", "undefined"); |
| result = evalAndLog("result = objectStore.openCursor();"); |
| result.onerror = unexpectedErrorCallback; |
| result.onsuccess = checkCursor; |
| } |
| |
| function checkCursor() |
| { |
| cursor = evalAndLog("cursor = event.target.result;"); |
| if (cursor) { |
| shouldBe("cursor.key", "Infinity"); |
| shouldBe("cursor.value", "undefined"); |
| } else { |
| testFailed("cursor is null"); |
| } |
| finishJSTest(); |
| } |