diff options
Diffstat (limited to 'LayoutTests/storage/indexeddb/script-tests/objectstore-basics.js')
-rw-r--r-- | LayoutTests/storage/indexeddb/script-tests/objectstore-basics.js | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/LayoutTests/storage/indexeddb/script-tests/objectstore-basics.js b/LayoutTests/storage/indexeddb/script-tests/objectstore-basics.js new file mode 100644 index 0000000..9869579 --- /dev/null +++ b/LayoutTests/storage/indexeddb/script-tests/objectstore-basics.js @@ -0,0 +1,83 @@ +description("Test the basics of IndexedDB's IDBObjectStore."); +if (window.layoutTestController) + layoutTestController.waitUntilDone(); + +function test() +{ + result = evalAndLog("indexedDB.open('name', 'description')"); + verifyResult(result); + result.onsuccess = openSuccess; + result.onerror = unexpectedErrorCallback; +} + +function openSuccess() +{ + debug("openSuccess():"); + verifySuccessEvent(event); + db = evalAndLog("db = event.result"); + + // FIXME: remove any previously created object stores. + // This requires IDBDatabaseRequest::removeObjectStore to be implemented. + + result = evalAndLog("db.createObjectStore('storeName', null)"); + verifyResult(result); + result.onsuccess = createSuccess; + result.onerror = unexpectedErrorCallback; +} + +function createSuccess() +{ + debug("createSuccess():"); + verifySuccessEvent(event); + var store = evalAndLog("store = event.result"); + var storeNames = evalAndLog("storeNames = db.objectStores"); + + shouldBeEqualToString("store.name", "storeName"); + shouldBeNull("store.keyPath"); + shouldBe("storeNames.contains('storeName')", "true"); + shouldBe("storeNames.length", "1"); + // FIXME: test store.indexNames, as well as all object store's methods. + + result = evalAndLog("store.add('value', 'key')"); + verifyResult(result); + result.onsuccess = addSuccess; + result.onerror = unexpectedErrorCallback; +} + +function addSuccess() +{ + debug("addSuccess():"); + verifySuccessEvent(event); + shouldBeEqualToString("event.result", "key"); + var store = evalAndLog("store = event.source"); + + result = evalAndLog("store.get('key')"); + verifyResult(result); + result.onsuccess = getSuccess; + result.onerror = unexpectedErrorCallback; +} + +function getSuccess() +{ + debug("getSuccess():"); + verifySuccessEvent(event); + shouldBeEqualToString("event.result", "value"); + var store = evalAndLog("store = event.source"); + + result = evalAndLog("store.remove('key')"); + verifyResult(result); + result.onsuccess = removeSuccess; + result.onerror = unexpectedErrorCallback; +} + +function removeSuccess() +{ + debug("removeSuccess():"); + verifySuccessEvent(event); + shouldBeNull("event.result"); + done(); +} + +test(); + +var successfullyParsed = true; |