Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / storage / indexeddb / resources / cursor-added-bug.js
blob840df0575e77f7b82f7d5e4452bddfd7649d76fd
1 if (this.importScripts) {
2     importScripts('../../../resources/js-test.js');
3     importScripts('shared.js');
6 description("Test IndexedDB cursor iterates correctly over values added during iteration.");
8 indexedDBTest(prepareDatabase, openCursor);
9 function prepareDatabase()
11     db = event.target.result;
12     trans = evalAndLog("trans = event.target.transaction");
13     shouldBeNonNull("trans");
14     trans.onabort = unexpectedAbortCallback;
16     var objectStore = evalAndLog("objectStore = db.createObjectStore('test')");
17     evalAndLog("objectStore.add(1, 1)");
18     evalAndLog("objectStore.add(2, 2)");
19     evalAndLog("objectStore.add(3, 3)");
22 function openCursor()
24     evalAndLog("trans = db.transaction(['test'], 'readwrite')");
25     trans.onabort = finishJSTest;
26     trans.oncomplete = finishJSTest;
27     request = evalAndLog("trans.objectStore('test').openCursor()");
28     request.onsuccess = cursorSuccess;
29     request.onerror = unexpectedErrorCallback;
30     counter = 0;
33 function cursorSuccess()
35     if (event.target.result == null) {
36       shouldBe("counter", "6");
37       return;
38     }
40     counter = counter + 1;
42     shouldBe("event.target.result.key", String(counter));
43     if (event.target.result.key == 1) {
44       evalAndLog("trans.objectStore('test').add(6, 6)");
45     }
46     if (event.target.result.key == 2) {
47       evalAndLog("trans.objectStore('test').add(5, 5)");
48     }
49     if (event.target.result.key == 3) {
50       evalAndLog("trans.objectStore('test').add(4, 4)");
51     }
53     evalAndLog("event.target.result.continue()");