From 81bc750723a18f21cd17d1b173cd2a4dda9cea6e Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Tue, 24 May 2011 11:24:40 +0100 Subject: Merge WebKit at r80534: Intial merge by Git Change-Id: Ia7a83357124c9e1cdb1debf55d9661ec0bd09a61 --- .../createDocument-with-used-doctype-expected.txt | 1 + .../createDocument-with-used-doctype.html | 5 +- .../encoding/dumpAsText/utf-16-no-bom-expected.txt | 5 + .../fast/encoding/dumpAsText/utf-16-no-bom.xml | Bin 0 -> 236 bytes LayoutTests/fast/encoding/utf-16-no-bom.xml | Bin 236 -> 0 bytes .../appcache/online-fallback-layering-expected.txt | 10 + .../tests/appcache/online-fallback-layering.html | 97 + .../fallbacknamespace-fallback-resource.txt | 1 + ...mespace-networknamespace-existing-resource.html | 9 + .../resources/online-fallback-layering.manifest | 7 + .../resources/absolute-url-strip-whitespace.js | 1 + LayoutTests/storage/close-during-stress-test.html | 2 +- LayoutTests/storage/indexeddb/basics-expected.txt | 56 +- LayoutTests/storage/indexeddb/basics.html | 57 +- .../create-and-remove-object-store-expected.txt | 61 +- .../indexeddb/create-and-remove-object-store.html | 60 +- .../create-object-store-options-expected.txt | 15 +- .../indexeddb/create-object-store-options.html | 24 +- .../storage/indexeddb/cursor-continue-expected.txt | 79 + LayoutTests/storage/indexeddb/cursor-continue.html | 183 ++ .../storage/indexeddb/cursor-delete-expected.txt | 123 +- LayoutTests/storage/indexeddb/cursor-delete.html | 78 +- .../indexeddb/cursor-index-delete-expected.txt | 123 +- .../storage/indexeddb/cursor-index-delete.html | 80 +- .../indexeddb/cursor-skip-deleted-expected.txt | 54 +- .../storage/indexeddb/cursor-skip-deleted.html | 40 +- .../storage/indexeddb/cursor-update-expected.txt | 289 +- LayoutTests/storage/indexeddb/cursor-update.html | 147 +- .../storage/indexeddb/data-corruption-expected.txt | 56 +- LayoutTests/storage/indexeddb/data-corruption.html | 39 +- .../storage/indexeddb/database-basics-expected.txt | 92 +- LayoutTests/storage/indexeddb/database-basics.html | 56 +- .../storage/indexeddb/database-quota-expected.txt | 64 +- LayoutTests/storage/indexeddb/database-quota.html | 37 +- .../storage/indexeddb/duplicates-expected.txt | 564 +--- LayoutTests/storage/indexeddb/duplicates.html | 167 +- .../error-causes-abort-by-default-expected.txt | 71 +- .../indexeddb/error-causes-abort-by-default.html | 54 +- .../exception-in-event-aborts-expected.txt | 61 + .../indexeddb/exception-in-event-aborts.html | 133 + .../storage/indexeddb/index-basics-expected.txt | 327 +- LayoutTests/storage/indexeddb/index-basics.html | 214 +- .../storage/indexeddb/index-cursor-expected.txt | 3231 ++++++++++---------- LayoutTests/storage/indexeddb/index-cursor.html | 35 +- .../storage/indexeddb/keyrange-expected.txt | 32 +- LayoutTests/storage/indexeddb/keyrange.html | 2 +- .../objectstore-autoincrement-expected.txt | 156 +- .../indexeddb/objectstore-autoincrement.html | 121 +- .../indexeddb/objectstore-basics-expected.txt | 181 +- .../storage/indexeddb/objectstore-basics.html | 120 +- .../indexeddb/objectstore-clear-expected.txt | 132 +- .../storage/indexeddb/objectstore-clear.html | 81 +- .../indexeddb/objectstore-cursor-expected.txt | 1127 +++---- .../storage/indexeddb/objectstore-cursor.html | 49 +- .../objectstore-removeobjectstore-expected.txt | 110 +- .../indexeddb/objectstore-removeobjectstore.html | 66 +- .../storage/indexeddb/open-cursor-expected.txt | 83 +- LayoutTests/storage/indexeddb/open-cursor.html | 66 +- .../storage/indexeddb/queued-commands-expected.txt | 88 +- LayoutTests/storage/indexeddb/queued-commands.html | 49 +- .../request-event-propagation-expected.txt | 54 +- .../indexeddb/request-event-propagation.html | 61 +- LayoutTests/storage/indexeddb/resources/shared.js | 75 +- .../indexeddb/set_version_blocked-expected.txt | 20 + .../storage/indexeddb/set_version_blocked.html | 74 + .../indexeddb/set_version_queue-expected.txt | 73 + .../storage/indexeddb/set_version_queue.html | 140 + .../indexeddb/transaction-abort-expected.txt | 42 + .../storage/indexeddb/transaction-abort.html | 103 + .../indexeddb/transaction-after-close-expected.txt | 78 +- .../storage/indexeddb/transaction-after-close.html | 44 +- .../transaction-and-objectstore-calls-expected.txt | 26 +- .../transaction-and-objectstore-calls.html | 22 +- .../indexeddb/transaction-basics-expected.txt | 142 +- .../storage/indexeddb/transaction-basics.html | 81 +- .../transaction-crash-on-abort-expected.txt | 20 +- .../indexeddb/transaction-crash-on-abort.html | 10 +- .../transaction-event-propagation-expected.txt | 26 +- .../indexeddb/transaction-event-propagation.html | 37 +- .../indexeddb/transaction-read-only-expected.txt | 38 +- .../storage/indexeddb/transaction-read-only.html | 30 +- LayoutTests/storage/indexeddb/tutorial.html | 33 +- 82 files changed, 4409 insertions(+), 6091 deletions(-) create mode 100644 LayoutTests/fast/encoding/dumpAsText/utf-16-no-bom-expected.txt create mode 100644 LayoutTests/fast/encoding/dumpAsText/utf-16-no-bom.xml delete mode 100644 LayoutTests/fast/encoding/utf-16-no-bom.xml create mode 100644 LayoutTests/http/tests/appcache/online-fallback-layering-expected.txt create mode 100644 LayoutTests/http/tests/appcache/online-fallback-layering.html create mode 100644 LayoutTests/http/tests/appcache/resources/fallbacknamespace-fallback-resource.txt create mode 100644 LayoutTests/http/tests/appcache/resources/fallbacknamespace-networknamespace-existing-resource.html create mode 100644 LayoutTests/http/tests/appcache/resources/online-fallback-layering.manifest create mode 100644 LayoutTests/http/tests/resources/absolute-url-strip-whitespace.js create mode 100644 LayoutTests/storage/indexeddb/cursor-continue-expected.txt create mode 100644 LayoutTests/storage/indexeddb/cursor-continue.html create mode 100644 LayoutTests/storage/indexeddb/exception-in-event-aborts-expected.txt create mode 100644 LayoutTests/storage/indexeddb/exception-in-event-aborts.html create mode 100644 LayoutTests/storage/indexeddb/set_version_blocked-expected.txt create mode 100644 LayoutTests/storage/indexeddb/set_version_blocked.html create mode 100644 LayoutTests/storage/indexeddb/set_version_queue-expected.txt create mode 100644 LayoutTests/storage/indexeddb/set_version_queue.html create mode 100644 LayoutTests/storage/indexeddb/transaction-abort-expected.txt create mode 100644 LayoutTests/storage/indexeddb/transaction-abort.html (limited to 'LayoutTests') diff --git a/LayoutTests/fast/dom/DOMImplementation/createDocument-with-used-doctype-expected.txt b/LayoutTests/fast/dom/DOMImplementation/createDocument-with-used-doctype-expected.txt index 7ef22e9..69cfc5a 100644 --- a/LayoutTests/fast/dom/DOMImplementation/createDocument-with-used-doctype-expected.txt +++ b/LayoutTests/fast/dom/DOMImplementation/createDocument-with-used-doctype-expected.txt @@ -1 +1,2 @@ PASS + diff --git a/LayoutTests/fast/dom/DOMImplementation/createDocument-with-used-doctype.html b/LayoutTests/fast/dom/DOMImplementation/createDocument-with-used-doctype.html index ae4a7ae..95990cf 100644 --- a/LayoutTests/fast/dom/DOMImplementation/createDocument-with-used-doctype.html +++ b/LayoutTests/fast/dom/DOMImplementation/createDocument-with-used-doctype.html @@ -1,5 +1,4 @@ - +
FAIL
+ diff --git a/LayoutTests/fast/encoding/dumpAsText/utf-16-no-bom-expected.txt b/LayoutTests/fast/encoding/dumpAsText/utf-16-no-bom-expected.txt new file mode 100644 index 0000000..4aea68a --- /dev/null +++ b/LayoutTests/fast/encoding/dumpAsText/utf-16-no-bom-expected.txt @@ -0,0 +1,5 @@ +This XML file does not appear to have any style information associated with it. The document tree is shown below. + +Should be "CYRILLIC SMALL LETTER IO" (like e with diaeresis): ё + + diff --git a/LayoutTests/fast/encoding/dumpAsText/utf-16-no-bom.xml b/LayoutTests/fast/encoding/dumpAsText/utf-16-no-bom.xml new file mode 100644 index 0000000..17f9367 Binary files /dev/null and b/LayoutTests/fast/encoding/dumpAsText/utf-16-no-bom.xml differ diff --git a/LayoutTests/fast/encoding/utf-16-no-bom.xml b/LayoutTests/fast/encoding/utf-16-no-bom.xml deleted file mode 100644 index 17f9367..0000000 Binary files a/LayoutTests/fast/encoding/utf-16-no-bom.xml and /dev/null differ diff --git a/LayoutTests/http/tests/appcache/online-fallback-layering-expected.txt b/LayoutTests/http/tests/appcache/online-fallback-layering-expected.txt new file mode 100644 index 0000000..00b913c --- /dev/null +++ b/LayoutTests/http/tests/appcache/online-fallback-layering-expected.txt @@ -0,0 +1,10 @@ +Test that a network namespace trumps a fallback namespace where they overlap. + +Sanity check the presence of the fallback namespace, should get the fallback resource. +Getting a network namespace resource that exists on the server, should succeed. +Getting a network namespace resource that does not exist on the server, should get a 404. +Creating two iframes for an existing and non-existing page, one should say "hello" the other should 404. +- hello heard +- 404 detected +PASS + diff --git a/LayoutTests/http/tests/appcache/online-fallback-layering.html b/LayoutTests/http/tests/appcache/online-fallback-layering.html new file mode 100644 index 0000000..bc607ee --- /dev/null +++ b/LayoutTests/http/tests/appcache/online-fallback-layering.html @@ -0,0 +1,97 @@ + + + + + + +

Test that a network namespace trumps a fallback namespace where they overlap.

+
+ + diff --git a/LayoutTests/http/tests/appcache/resources/fallbacknamespace-fallback-resource.txt b/LayoutTests/http/tests/appcache/resources/fallbacknamespace-fallback-resource.txt new file mode 100644 index 0000000..c8beda4 --- /dev/null +++ b/LayoutTests/http/tests/appcache/resources/fallbacknamespace-fallback-resource.txt @@ -0,0 +1 @@ +This is the fallback resource used for the fallbacknamespace in the online-fallback-layering.html test. diff --git a/LayoutTests/http/tests/appcache/resources/fallbacknamespace-networknamespace-existing-resource.html b/LayoutTests/http/tests/appcache/resources/fallbacknamespace-networknamespace-existing-resource.html new file mode 100644 index 0000000..42362dc --- /dev/null +++ b/LayoutTests/http/tests/appcache/resources/fallbacknamespace-networknamespace-existing-resource.html @@ -0,0 +1,9 @@ + + + +hello + + + diff --git a/LayoutTests/http/tests/appcache/resources/online-fallback-layering.manifest b/LayoutTests/http/tests/appcache/resources/online-fallback-layering.manifest new file mode 100644 index 0000000..d6507ff --- /dev/null +++ b/LayoutTests/http/tests/appcache/resources/online-fallback-layering.manifest @@ -0,0 +1,7 @@ +CACHE MANIFEST + +FALLBACK: +fallbacknamespace- fallbacknamespace-fallback-resource.txt + +NETWORK: +fallbacknamespace-networknamespace- diff --git a/LayoutTests/http/tests/resources/absolute-url-strip-whitespace.js b/LayoutTests/http/tests/resources/absolute-url-strip-whitespace.js new file mode 100644 index 0000000..252a630 --- /dev/null +++ b/LayoutTests/http/tests/resources/absolute-url-strip-whitespace.js @@ -0,0 +1 @@ +document.getElementById("test").innerHTML = "PASS"; diff --git a/LayoutTests/storage/close-during-stress-test.html b/LayoutTests/storage/close-during-stress-test.html index 2183e2f..5cc52fd 100644 --- a/LayoutTests/storage/close-during-stress-test.html +++ b/LayoutTests/storage/close-during-stress-test.html @@ -2,7 +2,6 @@

Should not crash or cause an assertion failure.

A JavaScript failure on the console is expected, however, as the global object is cleared when closing a frame. It actually helps to cause database activity by throwing an exception from a callback.

- + diff --git a/LayoutTests/storage/indexeddb/basics-expected.txt b/LayoutTests/storage/indexeddb/basics-expected.txt index cae16d8..fce5423 100644 --- a/LayoutTests/storage/indexeddb/basics-expected.txt +++ b/LayoutTests/storage/indexeddb/basics-expected.txt @@ -5,23 +5,49 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE PASS 'webkitIndexedDB' in window is true PASS webkitIndexedDB == null is false -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true +PASS 'webkitIDBCursor' in window is true +PASS webkitIDBCursor == null is false +webkitIndexedDB.open('basics') +PASS 'result' in request is true +Expecting exception from request.result +PASS Exception was thrown. +PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR +PASS 'errorCode' in request is true +Expecting exception from request.errorCode +PASS Exception was thrown. +PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR +PASS 'webkitErrorMessage' in request is true +Expecting exception from request.webkitErrorMessage +PASS Exception was thrown. +PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR +PASS 'source' in request is true +PASS request.source is webkitIndexedDB +PASS 'transaction' in request is true +PASS request.transaction is null +PASS 'readyState' in request is true +PASS request.readyState is webkitIDBRequest.LOADING +PASS 'onsuccess' in request is true +PASS request.onsuccess is null +PASS 'onerror' in request is true +PASS request.onerror is null +PASS request.LOADING is 1 +PASS request.DONE is 2 +PASS 'result' in event.target is true +PASS !!event.target.result is true +PASS 'errorCode' in event.target is true +PASS event.target.errorCode is 0 +PASS 'webkitErrorMessage' in event.target is true +PASS event.target.webkitErrorMessage is undefined. +PASS 'source' in event.target is true +PASS request.source is webkitIndexedDB +PASS 'transaction' in event.target is true +PASS event.target.transaction is null +PASS 'readyState' in request is true +PASS event.target.readyState is webkitIDBRequest.DONE PASS 'onsuccess' in event.target is true PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - +PASS event.target.LOADING is 1 +PASS event.target.DONE is 2 PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/basics.html b/LayoutTests/storage/indexeddb/basics.html index 2415070..593046d 100644 --- a/LayoutTests/storage/indexeddb/basics.html +++ b/LayoutTests/storage/indexeddb/basics.html @@ -19,20 +19,53 @@ function test() shouldBeTrue("'webkitIndexedDB' in window"); shouldBeFalse("webkitIndexedDB == null"); - // FIXME: Verify other IndexedDatabaseRequest constructors, once they're implemented. - - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openCallback; - result.onerror = unexpectedErrorCallback; -} - -function openCallback() -{ - verifySuccessEvent(event); - done(); + shouldBeTrue("'webkitIDBCursor' in window"); + shouldBeFalse("webkitIDBCursor == null"); + + request = evalAndLog("webkitIndexedDB.open('basics')"); + shouldBeTrue("'result' in request"); + evalAndExpectException("request.result", "webkitIDBDatabaseException.NOT_ALLOWED_ERR"); + shouldBeTrue("'errorCode' in request"); + evalAndExpectException("request.errorCode", "webkitIDBDatabaseException.NOT_ALLOWED_ERR"); + shouldBeTrue("'webkitErrorMessage' in request"); + evalAndExpectException("request.webkitErrorMessage", "webkitIDBDatabaseException.NOT_ALLOWED_ERR"); + shouldBeTrue("'source' in request"); + shouldBe("request.source", "webkitIndexedDB"); + shouldBeTrue("'transaction' in request"); + shouldBeNull("request.transaction"); + shouldBeTrue("'readyState' in request"); + shouldBe("request.readyState", "webkitIDBRequest.LOADING"); + shouldBeTrue("'onsuccess' in request"); + shouldBeNull("request.onsuccess"); + shouldBeTrue("'onerror' in request"); + shouldBeNull("request.onerror"); + shouldBe("request.LOADING", "1"); + shouldBe("request.DONE", "2"); + request.onsuccess = openCallback; + request.onerror = unexpectedErrorCallback; } +function openCallback() +{ + shouldBeTrue("'result' in event.target"); + shouldBeTrue("!!event.target.result"); + shouldBeTrue("'errorCode' in event.target"); + shouldBe("event.target.errorCode", "0"); + shouldBeTrue("'webkitErrorMessage' in event.target"); + shouldBeUndefined("event.target.webkitErrorMessage"); + shouldBeTrue("'source' in event.target"); + shouldBe("request.source", "webkitIndexedDB"); + shouldBeTrue("'transaction' in event.target"); + shouldBeNull("event.target.transaction"); + shouldBeTrue("'readyState' in request"); + shouldBe("event.target.readyState", "webkitIDBRequest.DONE"); + shouldBeTrue("'onsuccess' in event.target"); + shouldBeTrue("'onerror' in event.target"); + shouldBe("event.target.LOADING", "1"); + shouldBe("event.target.DONE", "2"); + + done(); +} test(); diff --git a/LayoutTests/storage/indexeddb/create-and-remove-object-store-expected.txt b/LayoutTests/storage/indexeddb/create-and-remove-object-store-expected.txt index 21f7d8d..528ba89 100644 --- a/LayoutTests/storage/indexeddb/create-and-remove-object-store-expected.txt +++ b/LayoutTests/storage/indexeddb/create-and-remove-object-store-expected.txt @@ -3,68 +3,41 @@ Test IndexedDB's create and removeObjectStore On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -PASS 'webkitIndexedDB' in window is true -PASS webkitIndexedDB == null is false -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +webkitIndexedDB.open('create-and-remove-object-store') openSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +db = event.target.result Trying create +Expecting exception from db.createObjectStore("some os") +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR Trying remove +Expecting exception from db.createObjectStore("some os") +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR result = db.setVersion('version 1') Trying create +Expecting exception from db.createObjectStore("some os") +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR Trying remove +Expecting exception from db.createObjectStore("some os") +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - Deleted all object stores. db.createObjectStore('tmp') -Adding 'tmp' again +Expecting exception from db.createObjectStore('tmp') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.CONSTRAINT_ERR trans = db.transaction({mode: webkitIDBTransaction.READ_WRITE}) trans.objectStore('tmp').get(0) -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is undefined +PASS event.target.result is undefined. Trying create +Expecting exception from db.createObjectStore("some os") +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR Trying remove +Expecting exception from db.createObjectStore("some os") +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR PASS successfullyParsed is true diff --git a/LayoutTests/storage/indexeddb/create-and-remove-object-store.html b/LayoutTests/storage/indexeddb/create-and-remove-object-store.html index 7bde468..43c1fe1 100644 --- a/LayoutTests/storage/indexeddb/create-and-remove-object-store.html +++ b/LayoutTests/storage/indexeddb/create-and-remove-object-store.html @@ -16,74 +16,46 @@ if (window.layoutTestController) function test() { - shouldBeTrue("'webkitIndexedDB' in window"); - shouldBeFalse("webkitIndexedDB == null"); - - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('create-and-remove-object-store')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { debug("openSuccess():"); - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); + window.db = evalAndLog("db = event.target.result"); testCreateAndRemove(); - result = evalAndLog("result = db.setVersion('version 1')"); - result.onsuccess = cleanDatabase; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("result = db.setVersion('version 1')"); + request.onsuccess = cleanDatabase; + request.onerror = unexpectedErrorCallback; testCreateAndRemove(); } function testCreateAndRemove() { debug("Trying create"); - try { - db.createObjectStore("some os"); - testFailed("No exception thrown!"); - } catch (e) { - code = e.code; - shouldBe("code", "webkitIDBDatabaseException.NOT_ALLOWED_ERR"); - } + evalAndExpectException('db.createObjectStore("some os")', "webkitIDBDatabaseException.NOT_ALLOWED_ERR"); debug("Trying remove"); - try { - db.createObjectStore("some os"); - testFailed("No exception thrown!"); - } catch (e) { - code = e.code; - shouldBe("code", "webkitIDBDatabaseException.NOT_ALLOWED_ERR"); - } + evalAndExpectException('db.createObjectStore("some os")', "webkitIDBDatabaseException.NOT_ALLOWED_ERR"); } function cleanDatabase() { - verifySuccessEvent(event); - deleteAllObjectStores(db, cleaned); -} + deleteAllObjectStores(db); -function cleaned() -{ os = evalAndLog("db.createObjectStore('tmp')"); - debug("Adding 'tmp' again"); - try { - db.createObjectStore('tmp'); - testFailed("No exception thrown!"); - } catch (e) { - code = e.code; - shouldBe("code", "webkitIDBDatabaseException.CONSTRAINT_ERR"); - } + evalAndExpectException("db.createObjectStore('tmp')", "webkitIDBDatabaseException.CONSTRAINT_ERR"); + trans = evalAndLog("trans = db.transaction({mode: webkitIDBTransaction.READ_WRITE})"); - req = evalAndLog("trans.objectStore('tmp').get(0)"); - req.onsuccess = tryOnceMore; - req.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('tmp').get(0)"); + request.onsuccess = tryOnceMore; + request.onerror = unexpectedErrorCallback; } function tryOnceMore() { - verifySuccessEvent(event); - shouldBe("event.result", "undefined"); + shouldBeUndefined("event.target.result"); testCreateAndRemove(); diff --git a/LayoutTests/storage/indexeddb/create-object-store-options-expected.txt b/LayoutTests/storage/indexeddb/create-object-store-options-expected.txt index 5519508..5f0e94d 100644 --- a/LayoutTests/storage/indexeddb/create-object-store-options-expected.txt +++ b/LayoutTests/storage/indexeddb/create-object-store-options-expected.txt @@ -5,14 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE PASS 'webkitIndexedDB' in window is true PASS webkitIndexedDB == null is false -webkitIndexedDB.open('name', 'description') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -db = event.result -result = db.setVersion('version 1') +webkitIndexedDB.open('create-object-store-options', 'description') +db = event.target.result +request = db.setVersion('version 1') Deleted all object stores. db.createObjectStore('a', {keyPath: 'a'}) db.createObjectStore('b') @@ -22,9 +17,9 @@ PASS trans.mode is webkitIDBTransaction.READ_WRITE trans.objectStore('a').put({'a': 0}) trans.objectStore('b').put({'a': 0}, 0) trans.objectStore('a').get(0) -PASS event.result.a is {a: 0} +PASS event.target.result.a is {a: 0} trans.objectStore('b').get(0) -PASS event.result.a is {a: 0} +PASS event.target.result.a is {a: 0} PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/create-object-store-options.html b/LayoutTests/storage/indexeddb/create-object-store-options.html index 6709e58..bf600d7 100644 --- a/LayoutTests/storage/indexeddb/create-object-store-options.html +++ b/LayoutTests/storage/indexeddb/create-object-store-options.html @@ -19,28 +19,24 @@ function test() shouldBeTrue("'webkitIndexedDB' in window"); shouldBeFalse("webkitIndexedDB == null"); - result = evalAndLog("webkitIndexedDB.open('name', 'description')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('create-object-store-options', 'description')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { - db = evalAndLog("db = event.result"); + db = evalAndLog("db = event.target.result"); - result = evalAndLog("result = db.setVersion('version 1')"); - result.onsuccess = cleanDatabase; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("request = db.setVersion('version 1')"); + request.onsuccess = cleanDatabase; + request.onerror = unexpectedErrorCallback; } function cleanDatabase() { - deleteAllObjectStores(db, cleaned); -} + deleteAllObjectStores(db); -function cleaned() -{ evalAndLog("db.createObjectStore('a', {keyPath: 'a'})"); evalAndLog("db.createObjectStore('b')"); @@ -71,7 +67,7 @@ function getA() function getB() { - shouldBe("event.result.a", "{a: 0}"); + shouldBe("event.target.result.a", "{a: 0}"); req = evalAndLog("trans.objectStore('b').get(0)"); req.onsuccess = checkB; @@ -80,7 +76,7 @@ function getB() function checkB() { - shouldBe("event.result.a", "{a: 0}"); + shouldBe("event.target.result.a", "{a: 0}"); done(); } diff --git a/LayoutTests/storage/indexeddb/cursor-continue-expected.txt b/LayoutTests/storage/indexeddb/cursor-continue-expected.txt new file mode 100644 index 0000000..80a338c --- /dev/null +++ b/LayoutTests/storage/indexeddb/cursor-continue-expected.txt @@ -0,0 +1,79 @@ +Test IndexedDB's IDBCursor.continue() with a key parameter. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +webkitIndexedDB.open('cursor-continue') +db = event.target.result +db.setVersion('new version') +trans = event.target.result +PASS trans !== null is true +Deleted all object stores. +db.createObjectStore('someObjectStore') +objectStore.createIndex('someIndex', 'x') +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) +objectStore.add({'x': testData[nextToAdd]}, nextToAdd) + +indexObject.openKeyCursor(null, webkitIDBCursor.NEXT) +PASS event.target.result.primaryKey is 0 +event.target.result.continue(3.14159) +PASS event.target.result.primaryKey is 3 +event.target.result.continue(3.14159) +PASS event.target.result.primaryKey is 4 +event.target.result.continue(3.14159) +PASS event.target.result.primaryKey is 5 +event.target.result.continue(12) +PASS event.target.result.primaryKey is 7 +event.target.result.continue(date) +PASS event.target.result.primaryKey is 9 +event.target.result.continue(date) +PASS event.target.result.primaryKey is 10 +event.target.result.continue(date) +PASS event.target.result.primaryKey is 11 +event.target.result.continue('A bit1') +PASS event.target.result.primaryKey is 14 +event.target.result.continue('A bit3') +PASS event.target.result.primaryKey is 16 +event.target.result.continue('the BIGGEST string') +PASS event.target.result.primaryKey is 17 +event.target.result.continue('the BIGGEST string') +PASS event.target.result is null + +indexObject.openKeyCursor(null, webkitIDBCursor.PREV) +PASS event.target.result.primaryKey is 17 +event.target.result.continue('A bit2') +PASS event.target.result.primaryKey is 15 +event.target.result.continue('A bit2') +PASS event.target.result.primaryKey is 14 +event.target.result.continue(date) +PASS event.target.result.primaryKey is 10 +event.target.result.continue(date) +PASS event.target.result.primaryKey is 9 +event.target.result.continue(1) +PASS event.target.result.primaryKey is 2 +event.target.result.continue(1) +PASS event.target.result.primaryKey is 1 +event.target.result.continue(1) +PASS event.target.result.primaryKey is 0 +event.target.result.continue(1) +PASS event.target.result is null +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/LayoutTests/storage/indexeddb/cursor-continue.html b/LayoutTests/storage/indexeddb/cursor-continue.html new file mode 100644 index 0000000..ce4d436 --- /dev/null +++ b/LayoutTests/storage/indexeddb/cursor-continue.html @@ -0,0 +1,183 @@ + + + + + + + + +

+
+ + + diff --git a/LayoutTests/storage/indexeddb/cursor-delete-expected.txt b/LayoutTests/storage/indexeddb/cursor-delete-expected.txt index 525ced7..edda620 100644 --- a/LayoutTests/storage/indexeddb/cursor-delete-expected.txt +++ b/LayoutTests/storage/indexeddb/cursor-delete-expected.txt @@ -3,43 +3,11 @@ Test IndexedDB's openCursor. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('cursor-delete') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. objectStore = db.createObjectStore('test') @@ -50,83 +18,30 @@ objectStore.add('myValue4', 'myKey4') openCursor1 trans = db.transaction(['test'], webkitIDBTransaction.READ_WRITE) trans.objectStore('test').openCursor({range: keyRange}) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -event.result.delete() -PASS event.result.value is "myValue1" -event.result.continue() -event.result.delete() -PASS event.result.value is "myValue2" -event.result.continue() -event.result.delete() -PASS event.result.value is "myValue3" -event.result.continue() -event.result.delete() -PASS event.result.value is "myValue4" -event.result.continue() +event.target.result.delete() +PASS event.target.result.value is "myValue1" +event.target.result.continue() +event.target.result.delete() +PASS event.target.result.value is "myValue2" +event.target.result.continue() +event.target.result.delete() +PASS event.target.result.value is "myValue3" +event.target.result.continue() +event.target.result.delete() +PASS event.target.result.value is "myValue4" +event.target.result.continue() PASS counter is 5 trans.objectStore('test').openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is null +PASS event.target.result is null trans = db.transaction(['test'], webkitIDBTransaction.READ_WRITE) objectStore = trans.objectStore('test') objectStore.add('myValue1', 'myKey1') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - openCursor2 objectStore.openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS [object IDBCursor] is non-null. -event.result.delete() +PASS [object IDBCursorWithValue] is non-null. +event.target.result.delete() objectStore.get('myKey1') -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is undefined +PASS event.target.result is undefined PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/cursor-delete.html b/LayoutTests/storage/indexeddb/cursor-delete.html index bb0102f..6b5da9e 100644 --- a/LayoutTests/storage/indexeddb/cursor-delete.html +++ b/LayoutTests/storage/indexeddb/cursor-delete.html @@ -18,37 +18,30 @@ test(); function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('cursor-delete')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { - verifySuccessEvent(event); - var db = evalAndLog("db = event.result"); + var db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; trans.oncomplete = openCursor; - deleteAllObjectStores(db, createAndPopulateObjectStore); -} + deleteAllObjectStores(db); -function createAndPopulateObjectStore() -{ var objectStore = evalAndLog("objectStore = db.createObjectStore('test')"); evalAndLog("objectStore.add('myValue1', 'myKey1')"); evalAndLog("objectStore.add('myValue2', 'myKey2')"); @@ -61,32 +54,29 @@ function openCursor() debug("openCursor1"); evalAndLog("trans = db.transaction(['test'], webkitIDBTransaction.READ_WRITE)"); keyRange = webkitIDBKeyRange.lowerBound("myKey1"); - result = evalAndLog("trans.objectStore('test').openCursor({range: keyRange})"); - verifyResult(result); - result.onsuccess = cursorSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('test').openCursor({range: keyRange})"); + request.onsuccess = cursorSuccess; + request.onerror = unexpectedErrorCallback; counter = 1; } function cursorSuccess() { - if (event.result == null) { + if (event.target.result == null) { shouldBe("counter", "5"); - result = evalAndLog("trans.objectStore('test').openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = cursorEmpty; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('test').openCursor(keyRange)"); + request.onsuccess = cursorEmpty; + request.onerror = unexpectedErrorCallback; return; } - evalAndLog("event.result.delete()"); - shouldBeEqualToString("event.result.value", "myValue" + counter++); - evalAndLog("event.result.continue()"); + evalAndLog("event.target.result.delete()"); + shouldBeEqualToString("event.target.result.value", "myValue" + counter++); + evalAndLog("event.target.result.continue()"); } function cursorEmpty() { - verifySuccessEvent(event); - shouldBeNull("event.result"); + shouldBeNull("event.target.result"); trans.oncomplete = addObject; } @@ -94,35 +84,31 @@ function addObject() { evalAndLog("trans = db.transaction(['test'], webkitIDBTransaction.READ_WRITE)"); objectStore = evalAndLog("objectStore = trans.objectStore('test')"); - result = evalAndLog("objectStore.add('myValue1', 'myKey1')"); - verifyResult(result); - result.onsuccess = openCursor2; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("objectStore.add('myValue1', 'myKey1')"); + request.onsuccess = openCursor2; + request.onerror = unexpectedErrorCallback; } function openCursor2() { debug("openCursor2"); - result = evalAndLog("objectStore.openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = deleteObject; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("objectStore.openCursor(keyRange)"); + request.onsuccess = deleteObject; + request.onerror = unexpectedErrorCallback; } function deleteObject() { - verifySuccessEvent(event); - shouldBeNonNull(event.result); - evalAndLog("event.result.delete()"); - result = evalAndLog("objectStore.get('myKey1')"); - result.onsuccess = verifyObjectDeleted; - result.onerror = unexpectedErrorCallback; + shouldBeNonNull(event.target.result); + evalAndLog("event.target.result.delete()"); + request = evalAndLog("objectStore.get('myKey1')"); + request.onsuccess = verifyObjectDeleted; + request.onerror = unexpectedErrorCallback; } function verifyObjectDeleted() { - verifySuccessEvent(event); - shouldBe("event.result", "undefined"); + shouldBe("event.target.result", "undefined"); done(); } diff --git a/LayoutTests/storage/indexeddb/cursor-index-delete-expected.txt b/LayoutTests/storage/indexeddb/cursor-index-delete-expected.txt index a477a25..b7d16d3 100644 --- a/LayoutTests/storage/indexeddb/cursor-index-delete-expected.txt +++ b/LayoutTests/storage/indexeddb/cursor-index-delete-expected.txt @@ -3,43 +3,11 @@ Test IndexedDB's openCursor. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('cursor-index-delete') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. objectStore = db.createObjectStore('test') @@ -51,83 +19,30 @@ objectStore.add({x: 4}, 'myKey4') openCursor1 trans = db.transaction(['test'], webkitIDBTransaction.READ_WRITE) trans.objectStore('test').index('testIndex').openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -event.result.delete() -PASS event.result.key is counter++ -event.result.continue() -event.result.delete() -PASS event.result.key is counter++ -event.result.continue() -event.result.delete() -PASS event.result.key is counter++ -event.result.continue() -event.result.delete() -PASS event.result.key is counter++ -event.result.continue() +event.target.result.delete() +PASS event.target.result.key is counter++ +event.target.result.continue() +event.target.result.delete() +PASS event.target.result.key is counter++ +event.target.result.continue() +event.target.result.delete() +PASS event.target.result.key is counter++ +event.target.result.continue() +event.target.result.delete() +PASS event.target.result.key is counter++ +event.target.result.continue() PASS counter is 5 trans.objectStore('test').index('testIndex').openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is null +PASS event.target.result is null trans = db.transaction(['test'], webkitIDBTransaction.READ_WRITE) objectStore = trans.objectStore('test') objectStore.add({x: 1}, 'myKey1') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - openCursor2 -index = event.source.index('testIndex') +index = event.target.source.index('testIndex') index.openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS [object IDBCursor] is non-null. -event.result.delete() +PASS [object IDBCursorWithValue] is non-null. +event.target.result.delete() index.get(1) -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - event.preventDefault() PASS successfullyParsed is true diff --git a/LayoutTests/storage/indexeddb/cursor-index-delete.html b/LayoutTests/storage/indexeddb/cursor-index-delete.html index 852a7eb..e4df903 100644 --- a/LayoutTests/storage/indexeddb/cursor-index-delete.html +++ b/LayoutTests/storage/indexeddb/cursor-index-delete.html @@ -18,37 +18,30 @@ test(); function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('cursor-index-delete')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { - verifySuccessEvent(event); - var db = evalAndLog("db = event.result"); + var db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; trans.oncomplete = openCursor; - deleteAllObjectStores(db, createAndPopulateObjectStoreAndIndex); -} + deleteAllObjectStores(db); -function createAndPopulateObjectStoreAndIndex() -{ objectStore = evalAndLog("objectStore = db.createObjectStore('test')"); evalAndLog("objectStore.createIndex('testIndex', 'x')"); @@ -63,33 +56,30 @@ function openCursor() debug("openCursor1"); evalAndLog("trans = db.transaction(['test'], webkitIDBTransaction.READ_WRITE)"); keyRange = webkitIDBKeyRange.lowerBound(1); - result = evalAndLog("trans.objectStore('test').index('testIndex').openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = cursorSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('test').index('testIndex').openCursor(keyRange)"); + request.onsuccess = cursorSuccess; + request.onerror = unexpectedErrorCallback; counter = 1; } function cursorSuccess() { - if (event.result == null) { + if (event.target.result == null) { shouldBe("counter", "5"); - result = evalAndLog("trans.objectStore('test').index('testIndex').openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = cursorEmpty; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('test').index('testIndex').openCursor(keyRange)"); + request.onsuccess = cursorEmpty; + request.onerror = unexpectedErrorCallback; return; } - var deleteResult = evalAndLog("event.result.delete()"); - deleteResult.onerror = unexpectedErrorCallback; - shouldBe("event.result.key", "counter++"); - evalAndLog("event.result.continue()"); + var deleteRequest = evalAndLog("event.target.result.delete()"); + deleteRequest.onerror = unexpectedErrorCallback; + shouldBe("event.target.result.key", "counter++"); + evalAndLog("event.target.result.continue()"); } function cursorEmpty() { - verifySuccessEvent(event); - shouldBeNull("event.result"); + shouldBeNull("event.target.result"); trans.oncomplete = addObject; } @@ -97,35 +87,31 @@ function addObject() { evalAndLog("trans = db.transaction(['test'], webkitIDBTransaction.READ_WRITE)"); objectStore = evalAndLog("objectStore = trans.objectStore('test')"); - result = evalAndLog("objectStore.add({x: 1}, 'myKey1')"); - verifyResult(result); - result.onsuccess = openCursor2; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("objectStore.add({x: 1}, 'myKey1')"); + request.onsuccess = openCursor2; + request.onerror = unexpectedErrorCallback; } function openCursor2() { debug("openCursor2"); - evalAndLog("index = event.source.index('testIndex')"); - result = evalAndLog("index.openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = deleteObject; - result.onerror = unexpectedErrorCallback; + evalAndLog("index = event.target.source.index('testIndex')"); + request = evalAndLog("index.openCursor(keyRange)"); + request.onsuccess = deleteObject; + request.onerror = unexpectedErrorCallback; } function deleteObject() { - verifySuccessEvent(event); - shouldBeNonNull(event.result); - evalAndLog("event.result.delete()"); - result = evalAndLog("index.get(1)"); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = verifyObjectDeleted; + shouldBeNonNull(event.target.result); + evalAndLog("event.target.result.delete()"); + request = evalAndLog("index.get(1)"); + request.onsuccess = unexpectedSuccessCallback; + request.onerror = verifyObjectDeleted; } function verifyObjectDeleted() { - verifyErrorEvent(event); evalAndLog("event.preventDefault()"); done(); } diff --git a/LayoutTests/storage/indexeddb/cursor-skip-deleted-expected.txt b/LayoutTests/storage/indexeddb/cursor-skip-deleted-expected.txt index f1bb3f7..317c925 100644 --- a/LayoutTests/storage/indexeddb/cursor-skip-deleted-expected.txt +++ b/LayoutTests/storage/indexeddb/cursor-skip-deleted-expected.txt @@ -3,46 +3,13 @@ Test IndexedDB's cursor skips deleted entries. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('cursor-skip-deleted') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. -createAndPopulateObjectStore(): objectStore = db.createObjectStore('store', {keyPath: 'id'}) objectStore.createIndex('nameIndex', 'name') @@ -53,11 +20,6 @@ trans = db.transaction([], webkitIDBTransaction.READ_WRITE) testCursor(): trans.objectStore('store').openCursor(webkitIDBKeyRange.lowerBound(0)) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - 0: Alpha 1: Bravo request = trans.objectStore('store').delete(0) @@ -97,11 +59,6 @@ reverseCursorTest(): testCursor(): trans.objectStore('store').openCursor(webkitIDBKeyRange.lowerBound(0), webkitIDBCursor.PREV) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - 25: Zulu 24: Yankee request = trans.objectStore('store').delete(25) @@ -141,11 +98,6 @@ indexCursorTest(): testCursor(): trans.objectStore('store').index('nameIndex').openCursor(webkitIDBKeyRange.lowerBound('Alpha')) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - 0: Alpha 1: Bravo request = trans.objectStore('store').delete(0) diff --git a/LayoutTests/storage/indexeddb/cursor-skip-deleted.html b/LayoutTests/storage/indexeddb/cursor-skip-deleted.html index a97c4af..a3bb0d9 100644 --- a/LayoutTests/storage/indexeddb/cursor-skip-deleted.html +++ b/LayoutTests/storage/indexeddb/cursor-skip-deleted.html @@ -23,38 +23,29 @@ test(); function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('cursor-skip-deleted')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { - verifySuccessEvent(event); - var db = evalAndLog("db = event.result"); + var db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; trans.oncomplete = basicCursorTest; - deleteAllObjectStores(db, createAndPopulateObjectStore); -} - -function createAndPopulateObjectStore() -{ - debug("createAndPopulateObjectStore():"); + deleteAllObjectStores(db); var objectStore = evalAndLog("objectStore = db.createObjectStore('store', {keyPath: 'id'})"); evalAndLog("objectStore.createIndex('nameIndex', 'name')"); @@ -100,11 +91,10 @@ function testCursor(deleteList, createCursorCommand, callback) // Create the cursor. request = evalAndLog(createCursorCommand); - verifyResult(request); request.onerror = unexpectedErrorCallback; request.onsuccess = function () { - if (event.result == null) { + if (event.target.result == null) { // Make sure we have seen every non-deleted item. for (var i = 0; i < names.length; i++) { if (contains(deleted, i)) @@ -125,16 +115,16 @@ function testCursor(deleteList, createCursorCommand, callback) return; } - cursor = event.result; - debug(event.result.value.id + ": " + event.result.value.name); - seen.push(event.result.value.id); + cursor = event.target.result; + debug(event.target.result.value.id + ": " + event.target.result.value.name); + seen.push(event.target.result.value.id); // Make sure we don't see any deleted items. - if (contains(deleted, event.result.value.id)) + if (contains(deleted, event.target.result.value.id)) testFailed("Cursor hit previously deleted element."); for (var i = 0; i < deleteList.length; i++) { - if (event.result.value.id == deleteList[i].id) { + if (event.target.result.value.id == deleteList[i].id) { // Delete objects targeted by this id. var targets = deleteList[i].targets; for (var j = 0; j < targets.length; j++) { diff --git a/LayoutTests/storage/indexeddb/cursor-update-expected.txt b/LayoutTests/storage/indexeddb/cursor-update-expected.txt index 4f2e659..955bcf9 100644 --- a/LayoutTests/storage/indexeddb/cursor-update-expected.txt +++ b/LayoutTests/storage/indexeddb/cursor-update-expected.txt @@ -3,46 +3,13 @@ Test IndexedDB's cursor update. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('cursor-update') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. -createAndPopulateObjectStore(): objectStore = db.createObjectStore('basicStore') objectStore.add('myValue1', 'myKey1').onerror = unexpectedErrorCallback objectStore.add('myValue2', 'myKey2').onerror = unexpectedErrorCallback @@ -61,218 +28,150 @@ objectStore.add({number: 3, id: 3}).onerror = unexpectedErrorCallback objectStore.add({number: 4, id: 4}).onerror = unexpectedErrorCallback openBasicCursor() trans = db.transaction([], webkitIDBTransaction.READ_WRITE) -trans.objectStore('basicStore').openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +trans.objectStore('basicStore') +objectStore.openCursor(keyRange) basicUpdateCursor() -event.result.update('myUpdatedValue' + counter++) -event.source.continue() +PASS event.target.source is objectStore +event.target.result.update('myUpdatedValue' + counter++) +event.target.source.continue() basicUpdateCursor() -event.result.update('myUpdatedValue' + counter++) -event.source.continue() +PASS event.target.source is objectStore +event.target.result.update('myUpdatedValue' + counter++) +event.target.source.continue() basicUpdateCursor() -event.result.update('myUpdatedValue' + counter++) -event.source.continue() +PASS event.target.source is objectStore +event.target.result.update('myUpdatedValue' + counter++) +event.target.source.continue() basicUpdateCursor() -event.result.update('myUpdatedValue' + counter++) -event.source.continue() +PASS event.target.source is objectStore +event.target.result.update('myUpdatedValue' + counter++) +event.target.source.continue() basicUpdateCursor() +PASS event.target.source is objectStore PASS counter is 5 trans.objectStore('basicStore').openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - basicCheckCursor() -PASS event.result.key is "myKey1" -PASS event.result.value is "myUpdatedValue1" -event.result.continue() +PASS event.target.result.key is "myKey1" +PASS event.target.result.value is "myUpdatedValue1" +event.target.result.continue() basicCheckCursor() -PASS event.result.key is "myKey2" -PASS event.result.value is "myUpdatedValue2" -event.result.continue() +PASS event.target.result.key is "myKey2" +PASS event.target.result.value is "myUpdatedValue2" +event.target.result.continue() basicCheckCursor() -PASS event.result.key is "myKey3" -PASS event.result.value is "myUpdatedValue3" -event.result.continue() +PASS event.target.result.key is "myKey3" +PASS event.target.result.value is "myUpdatedValue3" +event.target.result.continue() basicCheckCursor() -PASS event.result.key is "myKey4" -PASS event.result.value is "myUpdatedValue4" -event.result.continue() +PASS event.target.result.key is "myKey4" +PASS event.target.result.value is "myUpdatedValue4" +event.target.result.continue() basicCheckCursor() PASS counter is 5 trans.objectStore('autoIncrementStore').openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - autoIncrementUpdateCursor() -event.result.update('myUpdatedFoo' + counter++) -event.source.continue() +event.target.result.update('myUpdatedFoo' + counter++) +event.target.source.continue() autoIncrementUpdateCursor() -event.result.update('myUpdatedFoo' + counter++) -event.source.continue() +event.target.result.update('myUpdatedFoo' + counter++) +event.target.source.continue() autoIncrementUpdateCursor() -event.result.update('myUpdatedFoo' + counter++) -event.source.continue() +event.target.result.update('myUpdatedFoo' + counter++) +event.target.source.continue() autoIncrementUpdateCursor() -event.result.update('myUpdatedFoo' + counter++) -event.source.continue() +event.target.result.update('myUpdatedFoo' + counter++) +event.target.source.continue() autoIncrementUpdateCursor() PASS counter is 5 trans.objectStore('autoIncrementStore').openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - autoIncrementCheckCursor() -PASS event.result.key is counter -PASS event.result.value is "myUpdatedFoo1" -event.result.continue() +PASS event.target.result.key is counter +PASS event.target.result.value is "myUpdatedFoo1" +event.target.result.continue() autoIncrementCheckCursor() -PASS event.result.key is counter -PASS event.result.value is "myUpdatedFoo2" -event.result.continue() +PASS event.target.result.key is counter +PASS event.target.result.value is "myUpdatedFoo2" +event.target.result.continue() autoIncrementCheckCursor() -PASS event.result.key is counter -PASS event.result.value is "myUpdatedFoo3" -event.result.continue() +PASS event.target.result.key is counter +PASS event.target.result.value is "myUpdatedFoo3" +event.target.result.continue() autoIncrementCheckCursor() -PASS event.result.key is counter -PASS event.result.value is "myUpdatedFoo4" -event.result.continue() +PASS event.target.result.key is counter +PASS event.target.result.value is "myUpdatedFoo4" +event.target.result.continue() autoIncrementCheckCursor() PASS counter is 5 trans.objectStore('keyPathStore').openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - keyPathUpdateCursor() -event.result.update({id: 100 + counter, number: 100 + counter}) -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.DATA_ERR +event.target.result.update({id: 100 + counter, number: 100 + counter}) +PASS event.target.errorCode is webkitIDBDatabaseException.DATA_ERR event.preventDefault() -event.source.update({id: counter, number: 100 + counter++}) -event.source.continue() +event.target.source.update({id: counter, number: 100 + counter++}) +event.target.source.continue() keyPathUpdateCursor() -event.result.update({id: 100 + counter, number: 100 + counter}) -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.DATA_ERR +event.target.result.update({id: 100 + counter, number: 100 + counter}) +PASS event.target.errorCode is webkitIDBDatabaseException.DATA_ERR event.preventDefault() -event.source.update({id: counter, number: 100 + counter++}) -event.source.continue() +event.target.source.update({id: counter, number: 100 + counter++}) +event.target.source.continue() keyPathUpdateCursor() -event.result.update({id: 100 + counter, number: 100 + counter}) -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.DATA_ERR +event.target.result.update({id: 100 + counter, number: 100 + counter}) +PASS event.target.errorCode is webkitIDBDatabaseException.DATA_ERR event.preventDefault() -event.source.update({id: counter, number: 100 + counter++}) -event.source.continue() +event.target.source.update({id: counter, number: 100 + counter++}) +event.target.source.continue() keyPathUpdateCursor() -event.result.update({id: 100 + counter, number: 100 + counter}) -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.DATA_ERR +event.target.result.update({id: 100 + counter, number: 100 + counter}) +PASS event.target.errorCode is webkitIDBDatabaseException.DATA_ERR event.preventDefault() -event.source.update({id: counter, number: 100 + counter++}) -event.source.continue() +event.target.source.update({id: counter, number: 100 + counter++}) +event.target.source.continue() keyPathUpdateCursor() PASS counter is 5 trans.objectStore('keyPathStore').openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - keyPathCheckCursor() -PASS event.result.key is counter -PASS event.result.value.id is counter -PASS event.result.value.number is 101 -event.result.continue() +PASS event.target.result.key is counter +PASS event.target.result.value.id is counter +PASS event.target.result.value.number is 101 +event.target.result.continue() keyPathCheckCursor() -PASS event.result.key is counter -PASS event.result.value.id is counter -PASS event.result.value.number is 102 -event.result.continue() +PASS event.target.result.key is counter +PASS event.target.result.value.id is counter +PASS event.target.result.value.number is 102 +event.target.result.continue() keyPathCheckCursor() -PASS event.result.key is counter -PASS event.result.value.id is counter -PASS event.result.value.number is 103 -event.result.continue() +PASS event.target.result.key is counter +PASS event.target.result.value.id is counter +PASS event.target.result.value.number is 103 +event.target.result.continue() keyPathCheckCursor() -PASS event.result.key is counter -PASS event.result.value.id is counter -PASS event.result.value.number is 104 -event.result.continue() +PASS event.target.result.key is counter +PASS event.target.result.value.id is counter +PASS event.target.result.value.number is 104 +event.target.result.continue() keyPathCheckCursor() PASS counter is 5 trans.objectStore('keyPathStore').index('numberIndex').openKeyCursor(keyRange) keyCursor() -PASS event.result.key is counter + 100 -PASS event.result.value is counter -event.result.update({id: counter, number: counter + 200}) +PASS event.target.result.key is counter + 100 +PASS event.target.result.primaryKey is counter +event.target.result.update({id: counter, number: counter + 200}) PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR keyCursor() -PASS event.result.key is counter + 100 -PASS event.result.value is counter -event.result.update({id: counter, number: counter + 200}) +PASS event.target.result.key is counter + 100 +PASS event.target.result.primaryKey is counter +event.target.result.update({id: counter, number: counter + 200}) PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR keyCursor() -PASS event.result.key is counter + 100 -PASS event.result.value is counter -event.result.update({id: counter, number: counter + 200}) +PASS event.target.result.key is counter + 100 +PASS event.target.result.primaryKey is counter +event.target.result.update({id: counter, number: counter + 200}) PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR keyCursor() -PASS event.result.key is counter + 100 -PASS event.result.value is counter -event.result.update({id: counter, number: counter + 200}) +PASS event.target.result.key is counter + 100 +PASS event.target.result.primaryKey is counter +event.target.result.update({id: counter, number: counter + 200}) PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR keyCursor() PASS counter is 5 diff --git a/LayoutTests/storage/indexeddb/cursor-update.html b/LayoutTests/storage/indexeddb/cursor-update.html index 0a80b84..783a88c 100644 --- a/LayoutTests/storage/indexeddb/cursor-update.html +++ b/LayoutTests/storage/indexeddb/cursor-update.html @@ -18,38 +18,30 @@ test(); function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('cursor-update')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { - verifySuccessEvent(event); - var db = evalAndLog("db = event.result"); + var db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; trans.oncomplete = openBasicCursor; - deleteAllObjectStores(db, createAndPopulateObjectStore); -} + deleteAllObjectStores(db); -function createAndPopulateObjectStore() -{ - debug("createAndPopulateObjectStore():"); var objectStore = evalAndLog("objectStore = db.createObjectStore('basicStore')"); evalAndLog("objectStore.add('myValue1', 'myKey1').onerror = unexpectedErrorCallback"); evalAndLog("objectStore.add('myValue2', 'myKey2').onerror = unexpectedErrorCallback"); @@ -78,154 +70,149 @@ function openBasicCursor() trans.oncomplete = transactionComplete; keyRange = webkitIDBKeyRange.lowerBound("myKey1"); - result = evalAndLog("trans.objectStore('basicStore').openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = basicUpdateCursor; - result.onerror = unexpectedErrorCallback; + window.objectStore = evalAndLog("trans.objectStore('basicStore')"); + request = evalAndLog("objectStore.openCursor(keyRange)"); + request.onsuccess = basicUpdateCursor; + request.onerror = unexpectedErrorCallback; counter = 1; } function basicUpdateCursor() { debug("basicUpdateCursor()"); - if (event.result == null) { + shouldBe("event.target.source", "objectStore"); + if (event.target.result == null) { shouldBe("counter", "5"); counter = 1; - result = evalAndLog("trans.objectStore('basicStore').openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = basicCheckCursor; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('basicStore').openCursor(keyRange)"); + request.onsuccess = basicCheckCursor; + request.onerror = unexpectedErrorCallback; return; } - result = evalAndLog("event.result.update('myUpdatedValue' + counter++)"); - result.onsuccess = function() { evalAndLog("event.source.continue()"); } - result.onerror = unexpectedErrorCallback; + request = evalAndLog("event.target.result.update('myUpdatedValue' + counter++)"); + request.onsuccess = function() { evalAndLog("event.target.source.continue()"); } + request.onerror = unexpectedErrorCallback; } function basicCheckCursor() { debug("basicCheckCursor()"); - if (event.result == null) { + if (event.target.result == null) { shouldBe("counter", "5"); counter = 1; keyRange = webkitIDBKeyRange.lowerBound(1); - result = evalAndLog("trans.objectStore('autoIncrementStore').openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = autoIncrementUpdateCursor; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('autoIncrementStore').openCursor(keyRange)"); + request.onsuccess = autoIncrementUpdateCursor; + request.onerror = unexpectedErrorCallback; return; } - shouldBeEqualToString("event.result.key", "myKey" + counter); - shouldBeEqualToString("event.result.value", "myUpdatedValue" + counter++); - evalAndLog("event.result.continue()"); + shouldBeEqualToString("event.target.result.key", "myKey" + counter); + shouldBeEqualToString("event.target.result.value", "myUpdatedValue" + counter++); + evalAndLog("event.target.result.continue()"); } function autoIncrementUpdateCursor() { debug("autoIncrementUpdateCursor()"); - if (event.result == null) { + if (event.target.result == null) { shouldBe("counter", "5"); counter = 1; - result = evalAndLog("trans.objectStore('autoIncrementStore').openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = autoIncrementCheckCursor; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('autoIncrementStore').openCursor(keyRange)"); + request.onsuccess = autoIncrementCheckCursor; + request.onerror = unexpectedErrorCallback; return; } - result = evalAndLog("event.result.update('myUpdatedFoo' + counter++)"); - result.onsuccess = function() { evalAndLog("event.source.continue()"); } - result.onerror = unexpectedErrorCallback; + request = evalAndLog("event.target.result.update('myUpdatedFoo' + counter++)"); + request.onsuccess = function() { evalAndLog("event.target.source.continue()"); } + request.onerror = unexpectedErrorCallback; } function autoIncrementCheckCursor() { debug("autoIncrementCheckCursor()"); - if (event.result == null) { + if (event.target.result == null) { shouldBe("counter", "5"); counter = 1; keyRange = webkitIDBKeyRange.lowerBound(1); - result = evalAndLog("trans.objectStore('keyPathStore').openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = keyPathUpdateCursor; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('keyPathStore').openCursor(keyRange)"); + request.onsuccess = keyPathUpdateCursor; + request.onerror = unexpectedErrorCallback; return; } - shouldBe("event.result.key", "counter"); - shouldBeEqualToString("event.result.value", "myUpdatedFoo" + counter++); - evalAndLog("event.result.continue()"); + shouldBe("event.target.result.key", "counter"); + shouldBeEqualToString("event.target.result.value", "myUpdatedFoo" + counter++); + evalAndLog("event.target.result.continue()"); } function keyPathUpdateCursor() { debug("keyPathUpdateCursor()"); - if (event.result == null) { + if (event.target.result == null) { shouldBe("counter", "5"); counter = 1; - result = evalAndLog("trans.objectStore('keyPathStore').openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = keyPathCheckCursor; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('keyPathStore').openCursor(keyRange)"); + request.onsuccess = keyPathCheckCursor; + request.onerror = unexpectedErrorCallback; return; } - result = evalAndLog("event.result.update({id: 100 + counter, number: 100 + counter})"); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = function() { - verifyErrorEvent(event); - shouldBe("event.code", "webkitIDBDatabaseException.DATA_ERR"); + request = evalAndLog("event.target.result.update({id: 100 + counter, number: 100 + counter})"); + request.onsuccess = unexpectedSuccessCallback; + request.onerror = function() { + shouldBe("event.target.errorCode", "webkitIDBDatabaseException.DATA_ERR"); evalAndLog("event.preventDefault()"); - result = evalAndLog("event.source.update({id: counter, number: 100 + counter++})"); - result.onsuccess = function() { evalAndLog("event.source.continue()") }; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("event.target.source.update({id: counter, number: 100 + counter++})"); + request.onsuccess = function() { evalAndLog("event.target.source.continue()") }; + request.onerror = unexpectedErrorCallback; } } function keyPathCheckCursor() { debug("keyPathCheckCursor()"); - if (event.result == null) { + if (event.target.result == null) { shouldBe("counter", "5"); counter = 1; keyRange = webkitIDBKeyRange.lowerBound(101); - result = evalAndLog("trans.objectStore('keyPathStore').index('numberIndex').openKeyCursor(keyRange)"); - result.onsuccess = keyCursor; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("trans.objectStore('keyPathStore').index('numberIndex').openKeyCursor(keyRange)"); + request.onsuccess = keyCursor; + request.onerror = unexpectedErrorCallback; return; } - shouldBe("event.result.key", "counter"); - shouldBe("event.result.value.id", "counter"); - shouldBe("event.result.value.number", (counter + 100).toString()); + shouldBe("event.target.result.key", "counter"); + shouldBe("event.target.result.value.id", "counter"); + shouldBe("event.target.result.value.number", (counter + 100).toString()); counter++; - evalAndLog("event.result.continue()"); + evalAndLog("event.target.result.continue()"); } function keyCursor() { debug("keyCursor()"); - if (event.result == null) { + if (event.target.result == null) { shouldBe("counter", "5"); return; } - shouldBe("event.result.key", "counter + 100"); - shouldBe("event.result.value", "counter"); + shouldBe("event.target.result.key", "counter + 100"); + shouldBe("event.target.result.primaryKey", "counter"); try { - debug("event.result.update({id: counter, number: counter + 200})"); - event.result.update({id: counter, number: counter + 200}); + debug("event.target.result.update({id: counter, number: counter + 200})"); + event.target.result.update({id: counter, number: counter + 200}); testFailed("Expected exception."); } catch (e) { code = e.code; @@ -233,7 +220,7 @@ function keyCursor() } counter++; - event.result.continue(); + event.target.result.continue(); } function transactionComplete() diff --git a/LayoutTests/storage/indexeddb/data-corruption-expected.txt b/LayoutTests/storage/indexeddb/data-corruption-expected.txt index ac7116a..a02b54c 100644 --- a/LayoutTests/storage/indexeddb/data-corruption-expected.txt +++ b/LayoutTests/storage/indexeddb/data-corruption-expected.txt @@ -3,66 +3,22 @@ Test that data inserted into IndexedDB does not get corrupted on disk. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +webkitIndexedDB.open('data-corruption') openSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. -createObjectStore(): db.createObjectStore('storeName') addData(): transaction = db.transaction([], webkitIDBTransaction.READ_WRITE) -result = transaction.objectStore('storeName').add({x: testDate}, 'key') +request = transaction.objectStore('storeName').add({x: testDate}, 'key') addData(): transaction = db.transaction([], webkitIDBTransaction.READ_ONLY) -result = transaction.objectStore('storeName').get('key') -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result.x.toString() == testDate.toString() is true +request = transaction.objectStore('storeName').get('key') +PASS event.target.result.x.toString() == testDate.toString() is true PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/data-corruption.html b/LayoutTests/storage/indexeddb/data-corruption.html index 664ff6d..ea7928b 100644 --- a/LayoutTests/storage/indexeddb/data-corruption.html +++ b/LayoutTests/storage/indexeddb/data-corruption.html @@ -16,39 +16,31 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('data-corruption')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { debug("openSuccess():"); - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); + window.db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; trans.oncomplete = addData; - deleteAllObjectStores(db, createObjectStore); -} + deleteAllObjectStores(db); -function createObjectStore() -{ - debug("createObjectStore():"); evalAndLog("db.createObjectStore('storeName')"); } @@ -58,8 +50,8 @@ function addData() { debug("addData():"); var transaction = evalAndLog("transaction = db.transaction([], webkitIDBTransaction.READ_WRITE)"); - var result = evalAndLog("result = transaction.objectStore('storeName').add({x: testDate}, 'key')"); - result.onerror = unexpectedErrorCallback; + var request = evalAndLog("request = transaction.objectStore('storeName').add({x: testDate}, 'key')"); + request.onerror = unexpectedErrorCallback; transaction.oncomplete = getData; } @@ -67,15 +59,14 @@ function getData() { debug("addData():"); var transaction = evalAndLog("transaction = db.transaction([], webkitIDBTransaction.READ_ONLY)"); - var result = evalAndLog("result = transaction.objectStore('storeName').get('key')"); - result.onerror = unexpectedErrorCallback; - result.onsuccess = doCheck; + var request = evalAndLog("request = transaction.objectStore('storeName').get('key')"); + request.onerror = unexpectedErrorCallback; + request.onsuccess = doCheck; } function doCheck() { - verifySuccessEvent(event); - shouldBeTrue("event.result.x.toString() == testDate.toString()"); + shouldBeTrue("event.target.result.x.toString() == testDate.toString()"); done(); } diff --git a/LayoutTests/storage/indexeddb/database-basics-expected.txt b/LayoutTests/storage/indexeddb/database-basics-expected.txt index f1fa5ad..e1af11e 100644 --- a/LayoutTests/storage/indexeddb/database-basics-expected.txt +++ b/LayoutTests/storage/indexeddb/database-basics-expected.txt @@ -3,82 +3,18 @@ Test the basics of IndexedDB's IDBDatabase. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('database-basics') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. Testing setVersion. db.setVersion("version a") -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - db.setVersion("version b") -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - PASS db.version is "version b" -PASS db.name is "name" +PASS db.name is "database-basics" PASS db.objectStoreNames is [] PASS db.objectStoreNames.length is 0 PASS db.objectStoreNames.contains('') is false @@ -91,31 +27,15 @@ PASS db.objectStoreNames.contains('') is false PASS db.objectStoreNames.contains('test456') is false PASS db.objectStoreNames.contains('test123') is true db.setVersion("version c") -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - PASS db.version is "version c" -PASS db.name is "name" +PASS db.name is "database-basics" PASS db.objectStoreNames is ['test123'] PASS db.objectStoreNames.length is 1 PASS db.objectStoreNames.contains('') is false PASS db.objectStoreNames.contains('test456') is false PASS db.objectStoreNames.contains('test123') is true db.createObjectStore("test456") -setVersionTrans = event.result +setVersionTrans = event.target.result PASS setVersionTrans !== null is true PASS db.version is "version b" PASS db.objectStoreNames is ['test123'] diff --git a/LayoutTests/storage/indexeddb/database-basics.html b/LayoutTests/storage/indexeddb/database-basics.html index b070de0..a14a60d 100644 --- a/LayoutTests/storage/indexeddb/database-basics.html +++ b/LayoutTests/storage/indexeddb/database-basics.html @@ -16,58 +16,46 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('database-basics')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); + window.db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; - deleteAllObjectStores(db, testSetVersion); -} + deleteAllObjectStores(db); -function testSetVersion() -{ debug("Testing setVersion."); - result = evalAndLog('db.setVersion("version a")'); - verifyResult(result); - result.onsuccess = setVersionAgain; - result.onerror = unexpectedErrorCallback; + request = evalAndLog('db.setVersion("version a")'); + request.onsuccess = setVersionAgain; + request.onerror = unexpectedErrorCallback; } function setVersionAgain() { - verifySuccessEvent(event); - - result = evalAndLog('db.setVersion("version b")'); - verifyResult(result); - result.onsuccess = createObjectStore; - result.onerror = unexpectedErrorCallback; + request = evalAndLog('db.setVersion("version b")'); + request.onsuccess = createObjectStore; + request.onerror = unexpectedErrorCallback; } function createObjectStore() { - verifySuccessEvent(event); shouldBeEqualToString("db.version", "version b"); - shouldBeEqualToString("db.name", "name"); + shouldBeEqualToString("db.name", "database-basics"); shouldBe("db.objectStoreNames", "[]"); shouldBe("db.objectStoreNames.length", "0"); shouldBe("db.objectStoreNames.contains('')", "false"); @@ -95,21 +83,19 @@ function commitAndContinue() function testSetVersionAbort() { - result = evalAndLog('db.setVersion("version c")'); - verifyResult(result); - result.onsuccess = createAnotherObjectStore; - result.onerror = unexpectedErrorCallback; + request = evalAndLog('db.setVersion("version c")'); + request.onsuccess = createAnotherObjectStore; + request.onerror = unexpectedErrorCallback; } function createAnotherObjectStore() { - verifySuccessEvent(event); shouldBeEqualToString("db.version", "version c"); - shouldBeEqualToString("db.name", "name"); + shouldBeEqualToString("db.name", "database-basics"); checkObjectStore(); objectStore = evalAndLog('db.createObjectStore("test456")'); - var setVersionTrans = evalAndLog("setVersionTrans = event.result"); + var setVersionTrans = evalAndLog("setVersionTrans = event.target.result"); shouldBeTrue("setVersionTrans !== null"); setVersionTrans.oncomplete = unexpectedCompleteCallback; setVersionTrans.onabort = checkMetadata; diff --git a/LayoutTests/storage/indexeddb/database-quota-expected.txt b/LayoutTests/storage/indexeddb/database-quota-expected.txt index 876d412..15aa075 100644 --- a/LayoutTests/storage/indexeddb/database-quota-expected.txt +++ b/LayoutTests/storage/indexeddb/database-quota-expected.txt @@ -3,58 +3,15 @@ Tests IndexedDB's quota enforcing mechanism. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('database-quota') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - PASS db.version is "new version" -PASS db.name is "name" +PASS db.name is "database-quota" PASS db.objectStoreNames is [] PASS db.objectStoreNames.length is 0 PASS db.objectStoreNames.contains('') is false @@ -68,18 +25,7 @@ trans = db.transaction([], webkitIDBTransaction.READ_WRITE) Creating 'data' which contains 64K of data PASS data.length is 65536 store = trans.objectStore('test123') -Error function called: (1) Error writing data to stable storage. -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - +Error function called: (undefined) undefined event.preventDefault() PASS Adding data failed due to quota error. Data added was about 5 MB PASS successfullyParsed is true diff --git a/LayoutTests/storage/indexeddb/database-quota.html b/LayoutTests/storage/indexeddb/database-quota.html index b447505..038e8d8 100644 --- a/LayoutTests/storage/indexeddb/database-quota.html +++ b/LayoutTests/storage/indexeddb/database-quota.html @@ -16,39 +16,31 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('database-quota')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); + window.db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; - deleteAllObjectStores(db, createNewObjectStore); -} + deleteAllObjectStores(db); -function createNewObjectStore() -{ - verifySuccessEvent(event); shouldBeEqualToString("db.version", "new version"); - shouldBeEqualToString("db.name", "name"); + shouldBeEqualToString("db.name", "database-quota"); shouldBe("db.objectStoreNames", "[]"); shouldBe("db.objectStoreNames.length", "0"); shouldBe("db.objectStoreNames.contains('')", "false"); @@ -91,22 +83,21 @@ function addData() { if (dataAdded < 5 * 1024 * 1024) { if (dataAdded > 0) - store = event.source; + store = event.target.source; } else { testFailed("added more than quota"); done(); return; } dataAdded += 65536; - result = store.add({x: data}, dataAdded); - result.onsuccess = addData; - result.onerror = logError; + request = store.add({x: data}, dataAdded); + request.onsuccess = addData; + request.onerror = logError; } function logError() { debug("Error function called: (" + event.code + ") " + event.message); - verifyErrorEvent(event); evalAndLog("event.preventDefault()"); } diff --git a/LayoutTests/storage/indexeddb/duplicates-expected.txt b/LayoutTests/storage/indexeddb/duplicates-expected.txt index 551b0bb..84cb3b4 100644 --- a/LayoutTests/storage/indexeddb/duplicates-expected.txt +++ b/LayoutTests/storage/indexeddb/duplicates-expected.txt @@ -3,542 +3,94 @@ Verify that you can put the same data in 2 different databases without uniquenes On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('duplicates-1') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. db.createObjectStore('storeName', null) store.createIndex('indexName', 'x') store.add({x: 'value', y: 'zzz'}, 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -event.source.add({x: 'value2', y: 'zzz2'}, 'key2') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - +event.target.source.add({x: 'value2', y: 'zzz2'}, 'key2') indexObject.getKey('value') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is "key" +PASS event.target.result is "key" indexObject.get('value') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result.x is "value" -PASS event.result.y is "zzz" +PASS event.target.result.x is "value" +PASS event.target.result.y is "zzz" indexObject.getKey('does not exist') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.NOT_FOUND_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.NOT_FOUND_ERR event.preventDefault() indexObject.get('does not exist') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.NOT_FOUND_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.NOT_FOUND_ERR event.preventDefault() indexObject.openKeyCursor() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value" -PASS event.result.value is "key" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value2" -PASS event.result.value is "key2" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is true +PASS event.target.result === null is false +PASS event.target.result.key is "value" +PASS event.target.result.primaryKey is "key" +event.target.result.continue() +PASS event.target.result === null is false +PASS event.target.result.key is "value2" +PASS event.target.result.primaryKey is "key2" +event.target.result.continue() +PASS event.target.result === null is true indexObject.openCursor() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value" -PASS event.result.value.x is "value" -PASS event.result.value.y is "zzz" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value2" -PASS event.result.value.x is "value2" -PASS event.result.value.y is "zzz2" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is true -webkitIndexedDB.open('name2') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +PASS event.target.result === null is false +PASS event.target.result.key is "value" +PASS event.target.result.value.x is "value" +PASS event.target.result.value.y is "zzz" +event.target.result.continue() +PASS event.target.result === null is false +PASS event.target.result.key is "value2" +PASS event.target.result.value.x is "value2" +PASS event.target.result.value.y is "zzz2" +event.target.result.continue() +PASS event.target.result === null is true +webkitIndexedDB.open('duplicates-2') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. db.createObjectStore('storeName', null) store.createIndex('indexName', 'x') store.add({x: 'value', y: 'zzz'}, 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -event.source.add({x: 'value2', y: 'zzz2'}, 'key2') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - +event.target.source.add({x: 'value2', y: 'zzz2'}, 'key2') indexObject.getKey('value') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is "key" +PASS event.target.result is "key" indexObject.get('value') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result.x is "value" -PASS event.result.y is "zzz" +PASS event.target.result.x is "value" +PASS event.target.result.y is "zzz" indexObject.getKey('does not exist') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.NOT_FOUND_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.NOT_FOUND_ERR event.preventDefault() indexObject.get('does not exist') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.NOT_FOUND_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.NOT_FOUND_ERR event.preventDefault() indexObject.openKeyCursor() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value" -PASS event.result.value is "key" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value2" -PASS event.result.value is "key2" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is true +PASS event.target.result === null is false +PASS event.target.result.key is "value" +PASS event.target.result.primaryKey is "key" +event.target.result.continue() +PASS event.target.result === null is false +PASS event.target.result.key is "value2" +PASS event.target.result.primaryKey is "key2" +event.target.result.continue() +PASS event.target.result === null is true indexObject.openCursor() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value" -PASS event.result.value.x is "value" -PASS event.result.value.y is "zzz" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value2" -PASS event.result.value.x is "value2" -PASS event.result.value.y is "zzz2" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is true +PASS event.target.result === null is false +PASS event.target.result.key is "value" +PASS event.target.result.value.x is "value" +PASS event.target.result.value.y is "zzz" +event.target.result.continue() +PASS event.target.result === null is false +PASS event.target.result.key is "value2" +PASS event.target.result.value.x is "value2" +PASS event.target.result.value.y is "zzz2" +event.target.result.continue() +PASS event.target.result === null is true PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/duplicates.html b/LayoutTests/storage/indexeddb/duplicates.html index cdfdcaa..bf04a2f 100644 --- a/LayoutTests/storage/indexeddb/duplicates.html +++ b/LayoutTests/storage/indexeddb/duplicates.html @@ -18,38 +18,31 @@ testCount = 0; function test() { if (testCount++ == 0) - result = evalAndLog("webkitIndexedDB.open('name')"); + request = evalAndLog("webkitIndexedDB.open('duplicates-1')"); else - result = evalAndLog("webkitIndexedDB.open('name2')"); - verifyResult(result); - result.onsuccess = setVersion; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('duplicates-2')"); + request.onsuccess = setVersion; + request.onerror = unexpectedErrorCallback; } function setVersion() { - verifySuccessEvent(event); - db = evalAndLog("db = event.result"); + db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = deleteExisting; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = deleteExisting; + request.onerror = unexpectedErrorCallback; } function deleteExisting() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; - deleteAllObjectStores(db, createIndex); -} + deleteAllObjectStores(db); -function createIndex() -{ window.store = evalAndLog("db.createObjectStore('storeName', null)"); window.indexObject = evalAndLog("store.createIndex('indexName', 'x')"); addData(); @@ -57,150 +50,124 @@ function createIndex() function addData() { - result = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); - verifyResult(result); - result.onsuccess = addMore; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); + request.onsuccess = addMore; + request.onerror = unexpectedErrorCallback; } function addMore() { - verifySuccessEvent(event); - - result = evalAndLog("event.source.add({x: 'value2', y: 'zzz2'}, 'key2')"); - verifyResult(result); - result.onsuccess = getData; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("event.target.source.add({x: 'value2', y: 'zzz2'}, 'key2')"); + request.onsuccess = getData; + request.onerror = unexpectedErrorCallback; } function getData() { - verifySuccessEvent(event); - - result = evalAndLog("indexObject.getKey('value')"); - verifyResult(result); - result.onsuccess = getObjectData; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("indexObject.getKey('value')"); + request.onsuccess = getObjectData; + request.onerror = unexpectedErrorCallback; } function getObjectData() { - verifySuccessEvent(event); - shouldBeEqualToString("event.result", "key"); + shouldBeEqualToString("event.target.result", "key"); - result = evalAndLog("indexObject.get('value')"); - verifyResult(result); - result.onsuccess = getDataFail; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("indexObject.get('value')"); + request.onsuccess = getDataFail; + request.onerror = unexpectedErrorCallback; } function getDataFail() { - verifySuccessEvent(event); - shouldBeEqualToString("event.result.x", "value"); - shouldBeEqualToString("event.result.y", "zzz"); + shouldBeEqualToString("event.target.result.x", "value"); + shouldBeEqualToString("event.target.result.y", "zzz"); - result = evalAndLog("indexObject.getKey('does not exist')"); - verifyResult(result); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = getObjectDataFail; + request = evalAndLog("indexObject.getKey('does not exist')"); + request.onsuccess = unexpectedSuccessCallback; + request.onerror = getObjectDataFail; } function getObjectDataFail() { - verifyErrorEvent(event); - shouldBe("event.code", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + shouldBe("event.target.errorCode", "webkitIDBDatabaseException.NOT_FOUND_ERR"); evalAndLog("event.preventDefault()"); - result = evalAndLog("indexObject.get('does not exist')"); - verifyResult(result); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = openKeyCursor; + request = evalAndLog("indexObject.get('does not exist')"); + request.onsuccess = unexpectedSuccessCallback; + request.onerror = openKeyCursor; } function openKeyCursor() { - verifyErrorEvent(event); - shouldBe("event.code", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + shouldBe("event.target.errorCode", "webkitIDBDatabaseException.NOT_FOUND_ERR"); evalAndLog("event.preventDefault()"); - window.result = evalAndLog("indexObject.openKeyCursor()"); - verifyResult(result); - result.onsuccess = cursor1Continue; - result.onerror = unexpectedErrorCallback; + window.request = evalAndLog("indexObject.openKeyCursor()"); + request.onsuccess = cursor1Continue; + request.onerror = unexpectedErrorCallback; } function cursor1Continue() { - verifySuccessEvent(event); - shouldBeFalse("event.result === null"); - shouldBeEqualToString("event.result.key", "value"); - shouldBeEqualToString("event.result.value", "key"); + shouldBeFalse("event.target.result === null"); + shouldBeEqualToString("event.target.result.key", "value"); + shouldBeEqualToString("event.target.result.primaryKey", "key"); - // We re-use the last result object. - evalAndLog("event.result.continue()"); - verifyResult(window.result); - window.result.onsuccess = cursor1Continue2; + // We re-use the last request object. + evalAndLog("event.target.result.continue()"); + window.request.onsuccess = cursor1Continue2; } function cursor1Continue2() { - verifySuccessEvent(event); - shouldBeFalse("event.result === null"); - shouldBeEqualToString("event.result.key", "value2"); - shouldBeEqualToString("event.result.value", "key2"); + shouldBeFalse("event.target.result === null"); + shouldBeEqualToString("event.target.result.key", "value2"); + shouldBeEqualToString("event.target.result.primaryKey", "key2"); - // We re-use the last result object. - evalAndLog("event.result.continue()"); - verifyResult(window.result); - window.result.onsuccess = openObjectCursor; + // We re-use the last request object. + evalAndLog("event.target.result.continue()"); + window.request.onsuccess = openObjectCursor; } function openObjectCursor() { - verifySuccessEvent(event); - shouldBeTrue("event.result === null"); + shouldBeTrue("event.target.result === null"); - window.result = evalAndLog("indexObject.openCursor()"); - verifyResult(result); - result.onsuccess = cursor2Continue; - result.onerror = unexpectedErrorCallback; + window.request = evalAndLog("indexObject.openCursor()"); + request.onsuccess = cursor2Continue; + request.onerror = unexpectedErrorCallback; } function cursor2Continue() { - verifySuccessEvent(event); - shouldBeFalse("event.result === null"); - shouldBeEqualToString("event.result.key", "value"); - shouldBeEqualToString("event.result.value.x", "value"); - shouldBeEqualToString("event.result.value.y", "zzz"); + shouldBeFalse("event.target.result === null"); + shouldBeEqualToString("event.target.result.key", "value"); + shouldBeEqualToString("event.target.result.value.x", "value"); + shouldBeEqualToString("event.target.result.value.y", "zzz"); - // We re-use the last result object. - evalAndLog("event.result.continue()"); - verifyResult(window.result); - window.result.onsuccess = cursor2Continue2; + // We re-use the last request object. + evalAndLog("event.target.result.continue()"); + window.request.onsuccess = cursor2Continue2; } function cursor2Continue2() { - verifySuccessEvent(event); - shouldBeFalse("event.result === null"); - shouldBeEqualToString("event.result.key", "value2"); - shouldBeEqualToString("event.result.value.x", "value2"); - shouldBeEqualToString("event.result.value.y", "zzz2"); + shouldBeFalse("event.target.result === null"); + shouldBeEqualToString("event.target.result.key", "value2"); + shouldBeEqualToString("event.target.result.value.x", "value2"); + shouldBeEqualToString("event.target.result.value.y", "zzz2"); - // We re-use the last result object. - evalAndLog("event.result.continue()"); - verifyResult(window.result); - window.result.onsuccess = last; + // We re-use the last request object. + evalAndLog("event.target.result.continue()"); + window.request.onsuccess = last; } function last() { - verifySuccessEvent(event); - shouldBeTrue("event.result === null"); + shouldBeTrue("event.target.result === null"); if (testCount == 1) test(); diff --git a/LayoutTests/storage/indexeddb/error-causes-abort-by-default-expected.txt b/LayoutTests/storage/indexeddb/error-causes-abort-by-default-expected.txt index dd8fd61..96f4b65 100644 --- a/LayoutTests/storage/indexeddb/error-causes-abort-by-default-expected.txt +++ b/LayoutTests/storage/indexeddb/error-causes-abort-by-default-expected.txt @@ -3,43 +3,11 @@ Verify that a transaction with an error aborts unless preventDefault() is called On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('error-causes-abort-by-default') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true trans.oncomplete = addData Deleted all object stores. @@ -49,28 +17,7 @@ trans.onabort = unexpectedAbortCallback trans.oncomplete = transactionCompleted store = trans.objectStore('storeName') store.add({x: 'value', y: 'zzz'}, 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -event.source.add({x: 'value', y: 'zzz'}, 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +event.target.source.add({x: 'value', y: 'zzz'}, 'key') event.preventDefault() PASS Transaction completed @@ -80,11 +27,6 @@ trans.onabort = transactionAborted1 trans.oncomplete = unexpectedCompleteCallback store = trans.objectStore('storeName') store.add({x: 'value', y: 'zzz'}, 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - Doing nothing to prevent the default action... PASS Transaction aborted @@ -94,11 +36,6 @@ trans.onabort = transactionAborted2 trans.oncomplete = unexpectedCompleteCallback store = trans.objectStore('storeName') store.add({x: 'value', y: 'zzz'}, 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - Omitting an onerror handler PASS Transaction aborted PASS successfullyParsed is true diff --git a/LayoutTests/storage/indexeddb/error-causes-abort-by-default.html b/LayoutTests/storage/indexeddb/error-causes-abort-by-default.html index ab4c58a..8ce6d07 100644 --- a/LayoutTests/storage/indexeddb/error-causes-abort-by-default.html +++ b/LayoutTests/storage/indexeddb/error-causes-abort-by-default.html @@ -16,37 +16,30 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = setVersion; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('error-causes-abort-by-default')"); + request.onsuccess = setVersion; + request.onerror = unexpectedErrorCallback; } function setVersion() { - verifySuccessEvent(event); - db = evalAndLog("db = event.result"); + db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = deleteExisting; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = deleteExisting; + request.onerror = unexpectedErrorCallback; } function deleteExisting() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; evalAndLog("trans.oncomplete = addData"); - deleteAllObjectStores(db, createObjectStore); -} + deleteAllObjectStores(db); -function createObjectStore() -{ evalAndLog("db.createObjectStore('storeName', null)"); } @@ -56,20 +49,17 @@ function addData() evalAndLog("trans.onabort = unexpectedAbortCallback"); evalAndLog("trans.oncomplete = transactionCompleted"); store = evalAndLog("store = trans.objectStore('storeName')"); - result = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); - verifyResult(result); - result.onsuccess = addMore; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); + request.onsuccess = addMore; + request.onerror = unexpectedErrorCallback; } function addMore() { - verifySuccessEvent(event); - - result = evalAndLog("event.source.add({x: 'value', y: 'zzz'}, 'key')"); - verifyResult(result); - result.onsuccess = unexpectedSuccessCallback; - result.addEventListener("error", preventTheDefault); + + request = evalAndLog("event.target.source.add({x: 'value', y: 'zzz'}, 'key')"); + request.onsuccess = unexpectedSuccessCallback; + request.addEventListener("error", preventTheDefault); } function preventTheDefault() @@ -86,10 +76,9 @@ function transactionCompleted() evalAndLog("trans.onabort = transactionAborted1"); evalAndLog("trans.oncomplete = unexpectedCompleteCallback"); store = evalAndLog("store = trans.objectStore('storeName')"); - result = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); - verifyResult(result); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = allowDefault; + request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); + request.onsuccess = unexpectedSuccessCallback; + request.onerror = allowDefault; } function allowDefault() @@ -106,9 +95,8 @@ function transactionAborted1() evalAndLog("trans.onabort = transactionAborted2"); evalAndLog("trans.oncomplete = unexpectedCompleteCallback"); store = evalAndLog("store = trans.objectStore('storeName')"); - result = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); - verifyResult(result); - result.onsuccess = unexpectedSuccessCallback; + request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); + request.onsuccess = unexpectedSuccessCallback; debug("Omitting an onerror handler"); } diff --git a/LayoutTests/storage/indexeddb/exception-in-event-aborts-expected.txt b/LayoutTests/storage/indexeddb/exception-in-event-aborts-expected.txt new file mode 100644 index 0000000..25c91e2 --- /dev/null +++ b/LayoutTests/storage/indexeddb/exception-in-event-aborts-expected.txt @@ -0,0 +1,61 @@ +CONSOLE MESSAGE: line 65: Uncaught this exception is expected +CONSOLE MESSAGE: line 65: Uncaught this exception is expected +Test exceptions in IDBRequest handlers cause aborts. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +webkitIndexedDB.open('exception-in-event-aborts') +db = event.target.result +db.setVersion('new version') +setVersionSuccess(): +trans = event.target.result +PASS trans !== null is true +trans.oncomplete = startTest +Deleted all object stores. +store = db.createObjectStore('storeName', null) +store.add({x: 'value', y: 'zzz'}, 'key') + +trans = db.transaction([], webkitIDBTransaction.READ_WRITE) +trans.onabort = transactionAborted1 +trans.oncomplete = unexpectedCompleteCallback +store = trans.objectStore('storeName') +store.add({x: 'value2', y: 'zzz2'}, 'key2') + +event.preventDefault() +Throwing + +PASS The transaction was aborted. +trans = db.transaction([], webkitIDBTransaction.READ_WRITE) +trans.onabort = transactionAborted2 +trans.oncomplete = unexpectedCompleteCallback +store = trans.objectStore('storeName') +store.add({x: 'value', y: 'zzz'}, 'key') + +event.preventDefault() +Throwing + +PASS The transaction was aborted. +trans = db.transaction([], webkitIDBTransaction.READ_WRITE) +trans.onabort = unexpectedAbortCallback +trans.oncomplete = transactionCompleted1 +store = trans.objectStore('storeName') +store.add({x: 'value3', y: 'zzz3'}, 'key3') + +event.preventDefault() +Throwing within a try block + +PASS The transaction completed. +trans = db.transaction([], webkitIDBTransaction.READ_WRITE) +trans.onabort = unexpectedAbortCallback +trans.oncomplete = transactionCompleted2 +store = trans.objectStore('storeName') +store.add({x: 'value4', y: 'zzz4'}, 'key4') +FAIL Success function called unexpectedly. + +PASS The transaction completed. + +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/LayoutTests/storage/indexeddb/exception-in-event-aborts.html b/LayoutTests/storage/indexeddb/exception-in-event-aborts.html new file mode 100644 index 0000000..b49da56 --- /dev/null +++ b/LayoutTests/storage/indexeddb/exception-in-event-aborts.html @@ -0,0 +1,133 @@ + + + + + + + + +

+
+ + + diff --git a/LayoutTests/storage/indexeddb/index-basics-expected.txt b/LayoutTests/storage/indexeddb/index-basics-expected.txt index d18a09a..5cf1c9b 100644 --- a/LayoutTests/storage/indexeddb/index-basics-expected.txt +++ b/LayoutTests/storage/indexeddb/index-basics-expected.txt @@ -3,43 +3,11 @@ Test the basics of IndexedDB's webkitIDBIndex. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('index-basics') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. db.createObjectStore('storeName', null) @@ -48,8 +16,8 @@ store.createIndex('indexName2', 'y', false) store.createIndex('zIndex', 'z', true) PASS 'name' in indexObject is true PASS indexObject.name is "indexName" -PASS 'storeName' in indexObject is true -PASS indexObject.storeName is "storeName" +PASS 'objectStore' in indexObject is true +PASS indexObject.objectStore.name is "storeName" PASS 'keyPath' in indexObject is true PASS indexObject.keyPath is "x" PASS 'unique' in indexObject is true @@ -59,268 +27,49 @@ PASS 'openCursor' in indexObject is true PASS 'getKey' in indexObject is true PASS 'get' in indexObject is true store.add({x: 'value', y: 'zzz', z: 2.72}, 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -event.source.add({x: 'value2', y: 'zzz2', z: 2.71}, 'key2') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - +event.target.source.add({x: 'value2', y: 'zzz2', z: 2.71}, 'key2') +store.createIndex('indexWhileAddIsInFlight', 'x') indexObject.getKey('value') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is "key" +PASS event.target.result is "key" indexObject2.getKey('zzz') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is "key" +PASS event.target.result is "key" indexObject3.get(2.71) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result.x is "value2" +PASS event.target.result.x is "value2" indexObject.get('value') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result.x is "value" -PASS event.result.y is "zzz" +PASS event.target.result.x is "value" +PASS event.target.result.y is "zzz" indexObject.getKey('does not exist') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.NOT_FOUND_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.NOT_FOUND_ERR event.preventDefault() indexObject.get('does not exist') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.NOT_FOUND_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.NOT_FOUND_ERR event.preventDefault() +indexObject4.getKey('value2') +PASS event.target.result is "key2" indexObject.openKeyCursor() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value" -PASS event.result.value is "key" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value2" -PASS event.result.value is "key2" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is true +PASS event.target.source is indexObject +PASS event.target.result === null is false +PASS event.target.result.key is "value" +PASS event.target.result.primaryKey is "key" +event.target.result.continue() +PASS event.target.result === null is false +PASS event.target.result.key is "value2" +PASS event.target.result.primaryKey is "key2" +event.target.result.continue() +PASS event.target.result === null is true indexObject.openCursor() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value" -PASS event.result.value.x is "value" -PASS event.result.value.y is "zzz" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is false -PASS event.result.key is "value2" -PASS event.result.value.x is "value2" -PASS event.result.value.y is "zzz2" -event.result.continue() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result === null is true +PASS event.target.source is indexObject +PASS event.target.result === null is false +PASS event.target.result.key is "value" +PASS event.target.result.value.x is "value" +PASS event.target.result.value.y is "zzz" +event.target.result.continue() +PASS event.target.result === null is false +PASS event.target.result.key is "value2" +PASS event.target.result.value.x is "value2" +PASS event.target.result.value.y is "zzz2" +event.target.result.continue() +PASS event.target.result === null is true Passing an invalid key into indexObject.get(). PASS Caught exception: Error: TYPE_MISMATCH_ERR: DOM Exception 17 Passing an invalid key into indexObject.getKey(). diff --git a/LayoutTests/storage/indexeddb/index-basics.html b/LayoutTests/storage/indexeddb/index-basics.html index 863566a..128f364 100644 --- a/LayoutTests/storage/indexeddb/index-basics.html +++ b/LayoutTests/storage/indexeddb/index-basics.html @@ -16,36 +16,29 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = setVersion; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('index-basics')"); + request.onsuccess = setVersion; + request.onerror = unexpectedErrorCallback; } function setVersion() { - verifySuccessEvent(event); - db = evalAndLog("db = event.result"); + db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = deleteExisting; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = deleteExisting; + request.onerror = unexpectedErrorCallback; } function deleteExisting() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; - deleteAllObjectStores(db, createIndex); -} + deleteAllObjectStores(db); -function createIndex() -{ window.store = evalAndLog("db.createObjectStore('storeName', null)"); window.indexObject = evalAndLog("store.createIndex('indexName', 'x')"); window.indexObject2 = evalAndLog("store.createIndex('indexName2', 'y', false)"); @@ -57,8 +50,8 @@ function addData() { shouldBeTrue("'name' in indexObject"); shouldBeEqualToString("indexObject.name", "indexName"); - shouldBeTrue("'storeName' in indexObject"); - shouldBeEqualToString("indexObject.storeName", "storeName"); + shouldBeTrue("'objectStore' in indexObject"); + shouldBeEqualToString("indexObject.objectStore.name", "storeName"); shouldBeTrue("'keyPath' in indexObject"); shouldBeEqualToString("indexObject.keyPath", "x"); shouldBeTrue("'unique' in indexObject"); @@ -68,172 +61,153 @@ function addData() shouldBeTrue("'getKey' in indexObject"); shouldBeTrue("'get' in indexObject"); - result = evalAndLog("store.add({x: 'value', y: 'zzz', z: 2.72}, 'key')"); - verifyResult(result); - result.onsuccess = addMore; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({x: 'value', y: 'zzz', z: 2.72}, 'key')"); + request.onsuccess = addMore; + request.onerror = unexpectedErrorCallback; } function addMore() { - verifySuccessEvent(event); - - result = evalAndLog("event.source.add({x: 'value2', y: 'zzz2', z: 2.71}, 'key2')"); - verifyResult(result); - result.onsuccess = getData; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("event.target.source.add({x: 'value2', y: 'zzz2', z: 2.71}, 'key2')"); + request.onsuccess = getData; + request.onerror = unexpectedErrorCallback; + window.indexObject4 = evalAndLog("store.createIndex('indexWhileAddIsInFlight', 'x')"); } function getData() { - verifySuccessEvent(event); - - result = evalAndLog("indexObject.getKey('value')"); - verifyResult(result); - result.onsuccess = getObjectData; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("indexObject.getKey('value')"); + request.onsuccess = getObjectData; + request.onerror = unexpectedErrorCallback; } function getObjectData() { - verifySuccessEvent(event); - shouldBeEqualToString("event.result", "key"); + shouldBeEqualToString("event.target.result", "key"); - result = evalAndLog("indexObject2.getKey('zzz')"); - verifyResult(result); - result.onsuccess = getObjectData2; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("indexObject2.getKey('zzz')"); + request.onsuccess = getObjectData2; + request.onerror = unexpectedErrorCallback; } function getObjectData2() { - verifySuccessEvent(event); - shouldBeEqualToString("event.result", "key"); + shouldBeEqualToString("event.target.result", "key"); - result = evalAndLog("indexObject3.get(2.71)"); - verifyResult(result); - result.onsuccess = getObjectData3; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("indexObject3.get(2.71)"); + request.onsuccess = getObjectData3; + request.onerror = unexpectedErrorCallback; } function getObjectData3() { - verifySuccessEvent(event); - shouldBeEqualToString("event.result.x", "value2"); + shouldBeEqualToString("event.target.result.x", "value2"); - result = evalAndLog("indexObject.get('value')"); - verifyResult(result); - result.onsuccess = getDataFail; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("indexObject.get('value')"); + request.onsuccess = getDataFail; + request.onerror = unexpectedErrorCallback; } function getDataFail() { - verifySuccessEvent(event); - shouldBeEqualToString("event.result.x", "value"); - shouldBeEqualToString("event.result.y", "zzz"); - - result = evalAndLog("indexObject.getKey('does not exist')"); - verifyResult(result); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = getObjectDataFail; + shouldBeEqualToString("event.target.result.x", "value"); + shouldBeEqualToString("event.target.result.y", "zzz"); + + request = evalAndLog("indexObject.getKey('does not exist')"); + request.onsuccess = unexpectedSuccessCallback; + request.onerror = getObjectDataFail; } function getObjectDataFail() { - verifyErrorEvent(event); - shouldBe("event.code", "webkitIDBDatabaseException.NOT_FOUND_ERR"); + shouldBe("event.target.errorCode", "webkitIDBDatabaseException.NOT_FOUND_ERR"); evalAndLog("event.preventDefault()"); - result = evalAndLog("indexObject.get('does not exist')"); - verifyResult(result); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = openKeyCursor; + request = evalAndLog("indexObject.get('does not exist')"); + request.onsuccess = unexpectedSuccessCallback; + request.onerror = getObjectData4; } -function openKeyCursor() +function getObjectData4() { - verifyErrorEvent(event); - shouldBe("event.code", "webkitIDBDatabaseException.NOT_FOUND_ERR"); - + shouldBe("event.target.errorCode", "webkitIDBDatabaseException.NOT_FOUND_ERR"); evalAndLog("event.preventDefault()"); - window.result = evalAndLog("indexObject.openKeyCursor()"); - verifyResult(result); - result.onsuccess = cursor1Continue; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("indexObject4.getKey('value2')"); + request.onsuccess = openKeyCursor; + request.onerror = unexpectedErrorCallback; +} + +function openKeyCursor() +{ + shouldBeEqualToString("event.target.result", "key2"); + + window.request = evalAndLog("indexObject.openKeyCursor()"); + request.onsuccess = cursor1Continue; + request.onerror = unexpectedErrorCallback; } function cursor1Continue() { - verifySuccessEvent(event); - shouldBeFalse("event.result === null"); - shouldBeEqualToString("event.result.key", "value"); - shouldBeEqualToString("event.result.value", "key"); - - // We re-use the last result object. - evalAndLog("event.result.continue()"); - verifyResult(window.result); - window.result.onsuccess = cursor1Continue2; + shouldBe("event.target.source", "indexObject"); + shouldBeFalse("event.target.result === null"); + shouldBeEqualToString("event.target.result.key", "value"); + shouldBeEqualToString("event.target.result.primaryKey", "key"); + + // We re-use the last request object. + evalAndLog("event.target.result.continue()"); + window.request.onsuccess = cursor1Continue2; } function cursor1Continue2() { - verifySuccessEvent(event); - shouldBeFalse("event.result === null"); - shouldBeEqualToString("event.result.key", "value2"); - shouldBeEqualToString("event.result.value", "key2"); - - // We re-use the last result object. - evalAndLog("event.result.continue()"); - verifyResult(window.result); - window.result.onsuccess = openObjectCursor; + shouldBeFalse("event.target.result === null"); + shouldBeEqualToString("event.target.result.key", "value2"); + shouldBeEqualToString("event.target.result.primaryKey", "key2"); + + // We re-use the last request object. + evalAndLog("event.target.result.continue()"); + window.request.onsuccess = openObjectCursor; } function openObjectCursor() { - verifySuccessEvent(event); - shouldBeTrue("event.result === null"); + shouldBeTrue("event.target.result === null"); - window.result = evalAndLog("indexObject.openCursor()"); - verifyResult(result); - result.onsuccess = cursor2Continue; - result.onerror = unexpectedErrorCallback; + window.request = evalAndLog("indexObject.openCursor()"); + request.onsuccess = cursor2Continue; + request.onerror = unexpectedErrorCallback; } function cursor2Continue() { - verifySuccessEvent(event); - shouldBeFalse("event.result === null"); - shouldBeEqualToString("event.result.key", "value"); - shouldBeEqualToString("event.result.value.x", "value"); - shouldBeEqualToString("event.result.value.y", "zzz"); - - // We re-use the last result object. - evalAndLog("event.result.continue()"); - verifyResult(window.result); - window.result.onsuccess = cursor2Continue2; + shouldBe("event.target.source", "indexObject"); + shouldBeFalse("event.target.result === null"); + shouldBeEqualToString("event.target.result.key", "value"); + shouldBeEqualToString("event.target.result.value.x", "value"); + shouldBeEqualToString("event.target.result.value.y", "zzz"); + + // We re-use the last request object. + evalAndLog("event.target.result.continue()"); + window.request.onsuccess = cursor2Continue2; } function cursor2Continue2() { - verifySuccessEvent(event); - shouldBeFalse("event.result === null"); - shouldBeEqualToString("event.result.key", "value2"); - shouldBeEqualToString("event.result.value.x", "value2"); - shouldBeEqualToString("event.result.value.y", "zzz2"); - - // We re-use the last result object. - evalAndLog("event.result.continue()"); - verifyResult(window.result); - window.result.onsuccess = last; + shouldBeFalse("event.target.result === null"); + shouldBeEqualToString("event.target.result.key", "value2"); + shouldBeEqualToString("event.target.result.value.x", "value2"); + shouldBeEqualToString("event.target.result.value.y", "zzz2"); + + // We re-use the last request object. + evalAndLog("event.target.result.continue()"); + window.request.onsuccess = last; } function last() { - verifySuccessEvent(event); - shouldBeTrue("event.result === null"); + shouldBeTrue("event.target.result === null"); try { debug("Passing an invalid key into indexObject.get()."); diff --git a/LayoutTests/storage/indexeddb/index-cursor-expected.txt b/LayoutTests/storage/indexeddb/index-cursor-expected.txt index 159fbd7..67f141d 100644 --- a/LayoutTests/storage/indexeddb/index-cursor-expected.txt +++ b/LayoutTests/storage/indexeddb/index-cursor-expected.txt @@ -3,2099 +3,1950 @@ Test IndexedDB's webkitIDBIndex.openCursor + the cursor it produces in depth. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('someDB') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('index-cursor') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. db.createObjectStore('someObjectStore') objectStore.createIndex('someIndex', 'x') objectStore.add({'x': testData[nextToAdd]}, nextToAdd) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add({'x': testData[nextToAdd]}, nextToAdd) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add({'x': testData[nextToAdd]}, nextToAdd) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add({'x': testData[nextToAdd]}, nextToAdd) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add({'x': testData[nextToAdd]}, nextToAdd) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add({'x': testData[nextToAdd]}, nextToAdd) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add({'x': testData[nextToAdd]}, nextToAdd) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add({'x': testData[nextToAdd]}, nextToAdd) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - Scheduling tests... Running tests... Next test: lower open bound is 0; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 0; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: upper open bound is 0; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: upper bound is 0; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: lower open bound is 0; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 0; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper open bound is 0; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: upper bound is 0; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 0; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 0; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 0; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 0; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 0; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 0; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 0; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower bound is 0; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 0; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 0; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 0; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 0; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 0; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 0; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 0; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower bound is 0; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 1; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 1; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: upper open bound is 1; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: upper bound is 1; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: lower open bound is 1; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 1; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper open bound is 1; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: upper bound is 1; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 1; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 1; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 1; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 1; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 1; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 1; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 1; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower bound is 1; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 1; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 1; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 1; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 1; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 1; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 1; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 1; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower bound is 1; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 2; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 2; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: upper open bound is 2; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: upper bound is 2; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: lower open bound is 2; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 2; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: upper open bound is 2; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 2; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 2; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 2; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 2; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 2; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 2; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower open bound is 2; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 2; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 2; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 2; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 2; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 2; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 2; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 2; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower open bound is 2; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 2; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 2; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 3; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 3; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: upper open bound is 3; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: upper bound is 3; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: lower open bound is 3; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 3; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: upper open bound is 3; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 3; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 3; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 3; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 3; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 3; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 3; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower open bound is 3; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 3; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 3; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 3; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 3; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 3; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 3; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 3; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower open bound is 3; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 3; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 3; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 4; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 4; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: upper open bound is 4; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: upper bound is 4; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower open bound is 4; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 4; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: upper open bound is 4; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 4; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 4; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 4; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 4; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 4; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 4; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 4; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 4; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 4; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower open bound is 4; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 4; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 4; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 4; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 4; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 4; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 4; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 4; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower open bound is 5; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 5; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: upper open bound is 5; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: upper bound is 5; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 5; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 5; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: upper open bound is 5; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 5; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 5; upper open bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 5; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 5; upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 5; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 5; upper open bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 5; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 5; upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 5; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 5; upper open bound is 7; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 5; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower bound is 5; upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 5; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 5; upper open bound is 7; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 5; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 5; upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 5; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: upper open bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: upper open bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 6; upper open bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 6; upper bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper open bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 6; upper open bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 6; upper bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper open bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 6; upper open bound is 7; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 6; upper bound is 7; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper open bound is 7; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 6; upper open bound is 7; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 6; upper bound is 7; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper open bound is 7; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 7; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: upper open bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 7; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: upper open bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 7; upper open bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 7; upper bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 7; upper open bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 7; upper bound is 6; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 7; upper open bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 7; upper bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 7; upper open bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 7; upper bound is 6; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 7; upper open bound is 7; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 7; upper bound is 7; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 7; upper open bound is 7; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 7; upper bound is 7; sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: lower open bound is 7; upper open bound is 7; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 7; upper bound is 7; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 7; upper open bound is 7; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 7; upper bound is 7; sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: null key path sorted ascending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result is null Next test: null key path sorted descending. -PASS event.result.value is expectedIndex -PASS event.result.key is testData[7] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[6] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[5] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[4] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[3] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[2] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[1] -PASS event.result.value is expectedIndex -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[7] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[6] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[5] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[4] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[3] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[2] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[1] +PASS event.target.result.primaryKey is expectedIndex +PASS event.target.result.key is testData[0] +PASS event.target.result is null PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/index-cursor.html b/LayoutTests/storage/indexeddb/index-cursor.html index 97985a4..77366a9 100644 --- a/LayoutTests/storage/indexeddb/index-cursor.html +++ b/LayoutTests/storage/indexeddb/index-cursor.html @@ -29,35 +29,28 @@ window.testData = [ function openDatabase() { - result = evalAndLog("webkitIndexedDB.open('someDB')"); - verifyResult(result); + result = evalAndLog("webkitIndexedDB.open('index-cursor')"); result.onsuccess = setVersion; result.onerror = unexpectedErrorCallback; } function setVersion() { - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); + window.db = evalAndLog("db = event.target.result"); result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); result.onsuccess = deleteExisting; result.onerror = unexpectedErrorCallback; } function deleteExisting() { - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; - deleteAllObjectStores(db, startAddingData); -} - -function startAddingData() -{ + deleteAllObjectStores(db); + window.objectStore = evalAndLog("db.createObjectStore('someObjectStore')"); window.indexObject = evalAndLog("objectStore.createIndex('someIndex', 'x')"); window.nextToAdd = 0; @@ -66,11 +59,7 @@ function startAddingData() function addData() { - if (window.nextToAdd > 0) - verifySuccessEvent(event); - result = evalAndLog("objectStore.add({'x': testData[nextToAdd]}, nextToAdd)"); - verifyResult(result); result.onsuccess = ++window.nextToAdd < testData.length ? addData : scheduleTests; result.onerror = unexpectedErrorCallback; } @@ -181,7 +170,7 @@ function runNextTest() var keyRange; if (lower !== null && upper !== null) - keyRange = webkitIDBKeyRange.bound(testData[lower], testData[upper], {lowerOpen: lowerIsOpen, upperOpen: upperIsOpen}); + keyRange = webkitIDBKeyRange.bound(testData[lower], testData[upper], lowerIsOpen, upperIsOpen); else if (lower !== null) keyRange = webkitIDBKeyRange.lowerBound(testData[lower], lowerIsOpen); else @@ -209,22 +198,22 @@ function testWithinBounds() function cursorIteration() { if (expectedIndex === null) { - shouldBeNull("event.result"); + shouldBeNull("event.target.result"); runNextTest(); return; } - if (event.result === null) { - testFailed("Event.result should not be null."); + if (event.target.result === null) { + testFailed("event.target.result should not be null."); runNextTest(); return; } - shouldBe("event.result.value", "expectedIndex"); - shouldBe("event.result.key", "testData[" + expectedIndex + "]"); + shouldBe("event.target.result.primaryKey", "expectedIndex"); + shouldBe("event.target.result.key", "testData[" + expectedIndex + "]"); window.expectedIndex = ascending ? expectedIndex + 1 : expectedIndex - 1; testWithinBounds(); - event.result.continue(); + event.target.result.continue(); } window.nullKeyRangeStep = 0; diff --git a/LayoutTests/storage/indexeddb/keyrange-expected.txt b/LayoutTests/storage/indexeddb/keyrange-expected.txt index cb5a380..3cd2990 100644 --- a/LayoutTests/storage/indexeddb/keyrange-expected.txt +++ b/LayoutTests/storage/indexeddb/keyrange-expected.txt @@ -127,82 +127,82 @@ PASS keyRange.upper is 'bc' PASS keyRange.upperOpen is false PASS keyRange.lower is null PASS keyRange.lowerOpen is false -webkitIDBKeyRange.bound(30,40, {lowerOpen: undefined, upperOpen:undefined}) +webkitIDBKeyRange.bound(30,40, undefined, undefined) PASS keyRange.lower is 30 PASS keyRange.upper is 40 PASS keyRange.lowerOpen is false PASS keyRange.upperOpen is false -webkitIDBKeyRange.bound(31,41, {lowerOpen: false, upperOpen:false}) +webkitIDBKeyRange.bound(31,41, false, false) PASS keyRange.lower is 31 PASS keyRange.upper is 41 PASS keyRange.lowerOpen is false PASS keyRange.upperOpen is false -webkitIDBKeyRange.bound(32,42, {lowerOpen: false, upperOpen:true}) +webkitIDBKeyRange.bound(32,42, false, true) PASS keyRange.lower is 32 PASS keyRange.upper is 42 PASS keyRange.lowerOpen is false PASS keyRange.upperOpen is true -webkitIDBKeyRange.bound(33,43, {lowerOpen: true, upperOpen:false}) +webkitIDBKeyRange.bound(33,43, true, false) PASS keyRange.lower is 33 PASS keyRange.upper is 43 PASS keyRange.lowerOpen is true PASS keyRange.upperOpen is false -webkitIDBKeyRange.bound(34,44, {lowerOpen: true, upperOpen:true}) +webkitIDBKeyRange.bound(34,44, true, true) PASS keyRange.lower is 34 PASS keyRange.upper is 44 PASS keyRange.lowerOpen is true PASS keyRange.upperOpen is true -webkitIDBKeyRange.bound(30.1,40.2, {lowerOpen: undefined, upperOpen:undefined}) +webkitIDBKeyRange.bound(30.1,40.2, undefined, undefined) PASS keyRange.lower is 30.1 PASS keyRange.upper is 40.2 PASS keyRange.lowerOpen is false PASS keyRange.upperOpen is false -webkitIDBKeyRange.bound(31.3,41.4, {lowerOpen: false, upperOpen:false}) +webkitIDBKeyRange.bound(31.3,41.4, false, false) PASS keyRange.lower is 31.3 PASS keyRange.upper is 41.4 PASS keyRange.lowerOpen is false PASS keyRange.upperOpen is false -webkitIDBKeyRange.bound(32.5,42.6, {lowerOpen: false, upperOpen:true}) +webkitIDBKeyRange.bound(32.5,42.6, false, true) PASS keyRange.lower is 32.5 PASS keyRange.upper is 42.6 PASS keyRange.lowerOpen is false PASS keyRange.upperOpen is true -webkitIDBKeyRange.bound(33.7,43.8, {lowerOpen: true, upperOpen:false}) +webkitIDBKeyRange.bound(33.7,43.8, true, false) PASS keyRange.lower is 33.7 PASS keyRange.upper is 43.8 PASS keyRange.lowerOpen is true PASS keyRange.upperOpen is false -webkitIDBKeyRange.bound(34.9,44, {lowerOpen: true, upperOpen:true}) +webkitIDBKeyRange.bound(34.9,44, true, true) PASS keyRange.lower is 34.9 PASS keyRange.upper is 44 PASS keyRange.lowerOpen is true PASS keyRange.upperOpen is true -webkitIDBKeyRange.bound('aaa','aba', {lowerOpen: false, upperOpen:false}) +webkitIDBKeyRange.bound('aaa','aba', false, false) PASS keyRange.lower is 'aaa' PASS keyRange.upper is 'aba' PASS keyRange.lowerOpen is false PASS keyRange.upperOpen is false -webkitIDBKeyRange.bound('aab','abb', {lowerOpen: undefined, upperOpen:undefined}) +webkitIDBKeyRange.bound('aab','abb', undefined, undefined) PASS keyRange.lower is 'aab' PASS keyRange.upper is 'abb' PASS keyRange.lowerOpen is false PASS keyRange.upperOpen is false -webkitIDBKeyRange.bound('aac','abc', {lowerOpen: false, upperOpen:false}) +webkitIDBKeyRange.bound('aac','abc', false, false) PASS keyRange.lower is 'aac' PASS keyRange.upper is 'abc' PASS keyRange.lowerOpen is false PASS keyRange.upperOpen is false -webkitIDBKeyRange.bound('aad','abd', {lowerOpen: false, upperOpen:true}) +webkitIDBKeyRange.bound('aad','abd', false, true) PASS keyRange.lower is 'aad' PASS keyRange.upper is 'abd' PASS keyRange.lowerOpen is false PASS keyRange.upperOpen is true -webkitIDBKeyRange.bound('aae','abe', {lowerOpen: true, upperOpen:false}) +webkitIDBKeyRange.bound('aae','abe', true, false) PASS keyRange.lower is 'aae' PASS keyRange.upper is 'abe' PASS keyRange.lowerOpen is true PASS keyRange.upperOpen is false -webkitIDBKeyRange.bound('aaf','abf', {lowerOpen: true, upperOpen:true}) +webkitIDBKeyRange.bound('aaf','abf', true, true) PASS keyRange.lower is 'aaf' PASS keyRange.upper is 'abf' PASS keyRange.lowerOpen is true diff --git a/LayoutTests/storage/indexeddb/keyrange.html b/LayoutTests/storage/indexeddb/keyrange.html index 80850bc..5af2401 100644 --- a/LayoutTests/storage/indexeddb/keyrange.html +++ b/LayoutTests/storage/indexeddb/keyrange.html @@ -47,7 +47,7 @@ function checkUpperBoundKeyRange(value, open) function checkBoundKeyRange(lower, upper, lowerOpen, upperOpen) { - keyRange = evalAndLog("webkitIDBKeyRange.bound(" + lower + "," + upper + ", {lowerOpen: " + lowerOpen + ", upperOpen:" + upperOpen + "})"); + keyRange = evalAndLog("webkitIDBKeyRange.bound(" + lower + "," + upper + ", " + lowerOpen + ", " + upperOpen + ")"); shouldBe("keyRange.lower", "" + lower); shouldBe("keyRange.upper", "" + upper); if (lowerOpen === undefined) diff --git a/LayoutTests/storage/indexeddb/objectstore-autoincrement-expected.txt b/LayoutTests/storage/indexeddb/objectstore-autoincrement-expected.txt index 5ba278b..ff58fac 100644 --- a/LayoutTests/storage/indexeddb/objectstore-autoincrement-expected.txt +++ b/LayoutTests/storage/indexeddb/objectstore-autoincrement-expected.txt @@ -3,44 +3,12 @@ Test IndexedDB's IDBObjectStore auto-increment feature. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('Address Book') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +webkitIndexedDB.open('objectstore-autoincrement') openSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. createObjectStore(): @@ -60,125 +28,41 @@ store = trans.objectStore('StoreWithKeyPath') Insert into object store with auto increment and key path, with key in the object. store.add({name: 'Jeffersson', number: '7010', id: 3}) addJefferssonSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is 3 +PASS event.target.result is 3 Insert into object store with auto increment and key path, without key in the object. store.add({name: 'Lincoln', number: '7012'}) -addLincolnError(): -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.UNKNOWN_ERR -event.preventDefault() +addLincolnWithInjectKeySuccess(): +PASS event.target.result is 4 +store.get(4) +getLincolnAfterInjectedKeySuccess(): +PASS event.target.result.name is "Lincoln" +PASS event.target.result.number is "7012" +PASS event.target.result.id is 4 store = trans.objectStore('StoreWithAutoIncrement') Insert into object store with key gen using explicit key store.add({name: 'Lincoln', number: '7012'}, 5) -addLincolnSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is 5 +addLincolnWithExplicitKeySuccess(): +PASS event.target.result is 5 store.get(5) getLincolnSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result.name is "Lincoln" -PASS event.result.number is "7012" +PASS event.target.result.name is "Lincoln" +PASS event.target.result.number is "7012" store.put({name: 'Abraham', number: '2107'}) putAbrahamSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is 6 +PASS event.target.result is 6 store.get(6) getAbrahamSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result.name is "Abraham" -PASS event.result.number is "2107" +PASS event.target.result.name is "Abraham" +PASS event.target.result.number is "2107" store = trans.objectStore('PlainOldStore') Try adding with no key to object store without auto increment. store.add({name: 'Adam'}) addAdamError(): -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.DATA_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.DATA_ERR event.preventDefault() store.add({name: 'Adam'}, 1) addAdamSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is 1 +PASS event.target.result is 1 PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/objectstore-autoincrement.html b/LayoutTests/storage/indexeddb/objectstore-autoincrement.html index 0c0e9f5..3bfaacd 100644 --- a/LayoutTests/storage/indexeddb/objectstore-autoincrement.html +++ b/LayoutTests/storage/indexeddb/objectstore-autoincrement.html @@ -16,38 +16,31 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('Address Book')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('objectstore-autoincrement')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { debug("openSuccess():"); - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); + window.db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; trans.oncomplete = setVersionCompleted; - deleteAllObjectStores(db, createObjectStore); -} + deleteAllObjectStores(db); -function createObjectStore() -{ debug("createObjectStore():"); window.store = evalAndLog("store = db.createObjectStore('StoreWithKeyPath', {keyPath: 'id', autoIncrement: true})"); evalAndLog("db.createObjectStore('StoreWithAutoIncrement', {autoIncrement: true})"); @@ -75,104 +68,106 @@ function setVersionCompleted() window.store = evalAndLog("store = trans.objectStore('StoreWithKeyPath')"); debug("Insert into object store with auto increment and key path, with key in the object."); - result = evalAndLog("store.add({name: 'Jeffersson', number: '7010', id: 3})"); - result.onsuccess = addJefferssonSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({name: 'Jeffersson', number: '7010', id: 3})"); + request.onsuccess = addJefferssonSuccess; + request.onerror = unexpectedErrorCallback; } function addJefferssonSuccess() { debug("addJefferssonSuccess():"); - verifySuccessEvent(event); - shouldBe("event.result", "3"); + shouldBe("event.target.result", "3"); debug("Insert into object store with auto increment and key path, without key in the object."); - result = evalAndLog("store.add({name: 'Lincoln', number: '7012'})"); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = addLincolnError; + request = evalAndLog("store.add({name: 'Lincoln', number: '7012'})"); + request.onsuccess = addLincolnWithInjectKeySuccess; + request.onerror = unexpectedErrorCallback; } -function addLincolnError() +function addLincolnWithInjectKeySuccess() { - debug("addLincolnError():"); - verifyErrorEvent(event); - // FIXME: This should be implemented, but we make it an error for now. - shouldBe("event.code", "webkitIDBDatabaseException.UNKNOWN_ERR"); + debug("addLincolnWithInjectKeySuccess():"); + shouldBe("event.target.result", "4"); - evalAndLog("event.preventDefault()"); + result = evalAndLog("store.get(4)"); + result.onsuccess = getLincolnAfterInjectedKeySuccess; + result.onerror = unexpectedErrorCallback; +} + +function getLincolnAfterInjectedKeySuccess() +{ + debug("getLincolnAfterInjectedKeySuccess():"); + shouldBeEqualToString("event.target.result.name", "Lincoln"); + shouldBeEqualToString("event.target.result.number", "7012"); + shouldBe("event.target.result.id", "4"); window.store = evalAndLog("store = trans.objectStore('StoreWithAutoIncrement')"); debug("Insert into object store with key gen using explicit key"); - result = evalAndLog("store.add({name: 'Lincoln', number: '7012'}, 5)"); - result.onsuccess = addLincolnSuccess; + request = evalAndLog("store.add({name: 'Lincoln', number: '7012'}, 5)"); + request.onsuccess = addLincolnWithExplicitKeySuccess; + request.onerror = unexpectedErrorCallback; } -function addLincolnSuccess() +function addLincolnWithExplicitKeySuccess() { - debug("addLincolnSuccess():"); - verifySuccessEvent(event); - shouldBe("event.result", "5"); + debug("addLincolnWithExplicitKeySuccess():"); + shouldBe("event.target.result", "5"); - result = evalAndLog("store.get(5)"); - result.onsuccess = getLincolnSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.get(5)"); + request.onsuccess = getLincolnSuccess; + request.onerror = unexpectedErrorCallback; } function getLincolnSuccess() { debug("getLincolnSuccess():"); - verifySuccessEvent(event); - shouldBeEqualToString("event.result.name", "Lincoln"); - shouldBeEqualToString("event.result.number", "7012"); + shouldBeEqualToString("event.target.result.name", "Lincoln"); + shouldBeEqualToString("event.target.result.number", "7012"); - result = evalAndLog("store.put({name: 'Abraham', number: '2107'})"); - result.onsuccess = putAbrahamSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.put({name: 'Abraham', number: '2107'})"); + request.onsuccess = putAbrahamSuccess; + request.onerror = unexpectedErrorCallback; } function putAbrahamSuccess() { debug("putAbrahamSuccess():"); - verifySuccessEvent(event); - shouldBe("event.result", "6"); + shouldBe("event.target.result", "6"); - result = evalAndLog("store.get(6)"); - result.onsuccess = getAbrahamSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.get(6)"); + request.onsuccess = getAbrahamSuccess; + request.onerror = unexpectedErrorCallback; } function getAbrahamSuccess() { debug("getAbrahamSuccess():"); - verifySuccessEvent(event); - shouldBeEqualToString("event.result.name", "Abraham"); - shouldBeEqualToString("event.result.number", "2107"); + shouldBeEqualToString("event.target.result.name", "Abraham"); + shouldBeEqualToString("event.target.result.number", "2107"); window.store = evalAndLog("store = trans.objectStore('PlainOldStore')"); debug("Try adding with no key to object store without auto increment."); - result = evalAndLog("store.add({name: 'Adam'})"); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = addAdamError; + request = evalAndLog("store.add({name: 'Adam'})"); + request.onsuccess = unexpectedSuccessCallback; + request.onerror = addAdamError; } function addAdamError() { debug("addAdamError():"); - verifyErrorEvent(event); - shouldBe("event.code", "webkitIDBDatabaseException.DATA_ERR"); + shouldBe("event.target.errorCode", "webkitIDBDatabaseException.DATA_ERR"); evalAndLog("event.preventDefault()"); - result = evalAndLog("store.add({name: 'Adam'}, 1)"); - result.onsuccess = addAdamSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({name: 'Adam'}, 1)"); + request.onsuccess = addAdamSuccess; + request.onerror = unexpectedErrorCallback; } function addAdamSuccess() { debug("addAdamSuccess():"); - verifySuccessEvent(event); - shouldBe("event.result", "1"); + shouldBe("event.target.result", "1"); } test(); diff --git a/LayoutTests/storage/indexeddb/objectstore-basics-expected.txt b/LayoutTests/storage/indexeddb/objectstore-basics-expected.txt index cfbdbbf..b7bf521 100644 --- a/LayoutTests/storage/indexeddb/objectstore-basics-expected.txt +++ b/LayoutTests/storage/indexeddb/objectstore-basics-expected.txt @@ -3,44 +3,12 @@ Test the basics of IndexedDB's IDBObjectStore. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +webkitIndexedDB.open('objectstore-basics') openSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. createObjectStore(): @@ -53,6 +21,7 @@ PASS storeNames.length is 1 Ask for an index that doesn't exist: index = store.index('asdf') PASS Exception thrown. +PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR createIndex(): index = store.createIndex('indexName', 'x', {unique: true}) PASS index !== null is true @@ -62,25 +31,10 @@ PASS index !== null is true Ask for an index that doesn't exist: index = store.index('asdf') PASS Exception thrown. +PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR db.setVersion("version fail") -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - PASS db.version is "version fail" -setVersionTrans = event.result +setVersionTrans = event.target.result PASS setVersionTrans !== null is true store = setVersionTrans.objectStore('storeName') index = store.createIndex('indexFail', 'x') @@ -106,138 +60,37 @@ PASS code is DOMException.NOT_SUPPORTED_ERR Try to insert data where key path yields a Date key: store.add({x: testDateB, y: 'value'}, 'key') addSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is "key" -event.source.add({x: 'foo'}, 'zzz') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +PASS event.target.result is "key" +event.target.source.add({x: 'foo'}, 'zzz') addAgainFailure(): -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.UNKNOWN_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.UNKNOWN_ERR event.preventDefault() db.transaction([], webkitIDBTransaction.READ_WRITE) store = transaction.objectStore('storeName') store.add({x: 'othervalue'}, null) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - addWithNullKeyFailre(): -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.DATA_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.DATA_ERR event.preventDefault() db.transaction([], webkitIDBTransaction.READ_WRITE) store = transaction.objectStore('storeName') store.add({x: null}, 'validkey') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +PASS event.cancelable is true addWithNullIndexFailure(): -Error event fired: -PASS 'result' in event is false -PASS 'code' in event is true -PASS 'message' in event is true -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.code is webkitIDBDatabaseException.DATA_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.DATA_ERR event.preventDefault() db.transaction([], webkitIDBTransaction.READ_WRITE) store = transaction.objectStore('storeName') store.get('key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - getSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result.y is "value" -store = event.source +PASS event.target.result.y is "value" +store = event.target.source store.get(testDate) getSuccessDateKey(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result.x is "foo" +PASS event.target.result.x is "foo" store.delete('key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - removeSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is null -store = event.source +PASS event.target.result is null +store = event.target.source Passing an invalid key into store.get(). PASS Caught exception: Error: TYPE_MISMATCH_ERR: DOM Exception 17 Passing an invalid key into store.delete(). diff --git a/LayoutTests/storage/indexeddb/objectstore-basics.html b/LayoutTests/storage/indexeddb/objectstore-basics.html index 46b771e..7e4df75 100644 --- a/LayoutTests/storage/indexeddb/objectstore-basics.html +++ b/LayoutTests/storage/indexeddb/objectstore-basics.html @@ -16,37 +16,30 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('objectstore-basics')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { debug("openSuccess():"); - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); + window.db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; - deleteAllObjectStores(db, createObjectStore); -} + deleteAllObjectStores(db); -function createObjectStore() -{ debug("createObjectStore():"); window.store = evalAndLog("store = db.createObjectStore('storeName', null)"); var storeNames = evalAndLog("storeNames = db.objectStoreNames"); @@ -64,7 +57,8 @@ function createObjectStore() testFailed("Asking for a store that doesn't exist should have thrown."); } catch (err) { testPassed("Exception thrown."); - // FIXME: Verify the correct exception thrown. + code = err.code; + shouldBe("code", "webkitIDBDatabaseException.NOT_FOUND_ERR"); } createIndex(); @@ -86,7 +80,8 @@ function createIndex() testFailed("Asking for a store that doesn't exist should have thrown."); } catch (err) { testPassed("Exception thrown."); - // FIXME: Verify the correct exception thrown. + code = err.code + shouldBe("code", "webkitIDBDatabaseException.NOT_FOUND_ERR"); } commitAndContinue(); @@ -99,18 +94,16 @@ function commitAndContinue() function testSetVersionAbort() { - result = evalAndLog('db.setVersion("version fail")'); - verifyResult(result); - result.onsuccess = createAnotherIndex; - result.onerror = unexpectedErrorCallback; + request = evalAndLog('db.setVersion("version fail")'); + request.onsuccess = createAnotherIndex; + request.onerror = unexpectedErrorCallback; } function createAnotherIndex() { - verifySuccessEvent(event); shouldBeEqualToString("db.version", "version fail"); - var setVersionTrans = evalAndLog("setVersionTrans = event.result"); + var setVersionTrans = evalAndLog("setVersionTrans = event.target.result"); shouldBeTrue("setVersionTrans !== null"); setVersionTrans.oncomplete = unexpectedCompleteCallback; setVersionTrans.onabort = checkMetadata; @@ -146,9 +139,9 @@ function addData() window.store = evalAndLog("store = transaction.objectStore('storeName')"); debug("Try to insert data with a Date key:"); - result = evalAndLog("store.add({x: 'foo'}, testDate)"); - result.onsuccess = addDateSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({x: 'foo'}, testDate)"); + request.onsuccess = addDateSuccess; + request.onerror = unexpectedErrorCallback; } function addDateSuccess() @@ -165,29 +158,26 @@ function addDateSuccess() } debug("Try to insert data where key path yields a Date key:"); - result = evalAndLog("store.add({x: testDateB, y: 'value'}, 'key')"); - result.onsuccess = addSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({x: testDateB, y: 'value'}, 'key')"); + request.onsuccess = addSuccess; + request.onerror = unexpectedErrorCallback; } function addSuccess() { debug("addSuccess():"); - verifySuccessEvent(event); - shouldBeEqualToString("event.result", "key"); + shouldBeEqualToString("event.target.result", "key"); - result = evalAndLog("event.source.add({x: 'foo'}, 'zzz')"); - verifyResult(result); - result.onsuccess = unexpectedSuccessCallback; - result.addEventListener('error', addAgainFailure, false); + request = evalAndLog("event.target.source.add({x: 'foo'}, 'zzz')"); + request.onsuccess = unexpectedSuccessCallback; + request.addEventListener('error', addAgainFailure, false); } function addAgainFailure() { debug("addAgainFailure():"); - verifyErrorEvent(event); // FIXME: This error code needs to be specced. - shouldBe("event.code", "webkitIDBDatabaseException.UNKNOWN_ERR"); + shouldBe("event.target.errorCode", "webkitIDBDatabaseException.UNKNOWN_ERR"); evalAndLog("event.preventDefault()"); @@ -195,17 +185,15 @@ function addAgainFailure() transaction.onabort = unexpectedErrorCallback; var store = evalAndLog("store = transaction.objectStore('storeName')"); - result = evalAndLog("store.add({x: 'othervalue'}, null)"); - verifyResult(result); - result.onsuccess = unexpectedSuccessCallback; - result.addEventListener('error', addWithNullKeyFailure, true); + request = evalAndLog("store.add({x: 'othervalue'}, null)"); + request.onsuccess = unexpectedSuccessCallback; + request.addEventListener('error', addWithNullKeyFailure, true); } function addWithNullKeyFailure() { debug("addWithNullKeyFailre():"); - verifyErrorEvent(event); - shouldBe("event.code", "webkitIDBDatabaseException.DATA_ERR"); + shouldBe("event.target.errorCode", "webkitIDBDatabaseException.DATA_ERR"); evalAndLog("event.preventDefault()"); @@ -213,17 +201,16 @@ function addWithNullKeyFailure() transaction.onabort = unexpectedErrorCallback; var store = evalAndLog("store = transaction.objectStore('storeName')"); - result = evalAndLog("store.add({x: null}, 'validkey')"); - verifyResult(result); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = addWithNullIndexFailure; + request = evalAndLog("store.add({x: null}, 'validkey')"); + request.onsuccess = unexpectedSuccessCallback; + request.onerror = addWithNullIndexFailure; } function addWithNullIndexFailure() { + shouldBeTrue("event.cancelable"); debug("addWithNullIndexFailure():"); - verifyErrorEvent(event); - shouldBe("event.code", "webkitIDBDatabaseException.DATA_ERR"); + shouldBe("event.target.errorCode", "webkitIDBDatabaseException.DATA_ERR"); evalAndLog("event.preventDefault()"); @@ -231,42 +218,37 @@ function addWithNullIndexFailure() transaction.onabort = unexpectedErrorCallback; var store = evalAndLog("store = transaction.objectStore('storeName')"); - result = evalAndLog("store.get('key')"); - verifyResult(result); - result.addEventListener('success', getSuccess, true); - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.get('key')"); + request.addEventListener('success', getSuccess, true); + request.onerror = unexpectedErrorCallback; } function getSuccess() { debug("getSuccess():"); - verifySuccessEvent(event); - shouldBeEqualToString("event.result.y", "value"); + shouldBeEqualToString("event.target.result.y", "value"); - var store = evalAndLog("store = event.source"); - result = evalAndLog("store.get(testDate)"); - result.addEventListener('success', getSuccessDateKey, false); - result.onerror = unexpectedErrorCallback; + var store = evalAndLog("store = event.target.source"); + request = evalAndLog("store.get(testDate)"); + request.addEventListener('success', getSuccessDateKey, false); + request.onerror = unexpectedErrorCallback; } function getSuccessDateKey() { debug("getSuccessDateKey():"); - verifySuccessEvent(event); - shouldBeEqualToString("event.result.x", "foo"); + shouldBeEqualToString("event.target.result.x", "foo"); - result = evalAndLog("store.delete('key')"); - verifyResult(result); - result.onsuccess = removeSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.delete('key')"); + request.onsuccess = removeSuccess; + request.onerror = unexpectedErrorCallback; } function removeSuccess() { debug("removeSuccess():"); - verifySuccessEvent(event); - shouldBeNull("event.result"); - var store = evalAndLog("store = event.source"); + shouldBeNull("event.target.result"); + var store = evalAndLog("store = event.target.source"); try { debug("Passing an invalid key into store.get()."); diff --git a/LayoutTests/storage/indexeddb/objectstore-clear-expected.txt b/LayoutTests/storage/indexeddb/objectstore-clear-expected.txt index 5d99fcb..2875fd6 100644 --- a/LayoutTests/storage/indexeddb/objectstore-clear-expected.txt +++ b/LayoutTests/storage/indexeddb/objectstore-clear-expected.txt @@ -3,148 +3,30 @@ Test IndexedDB's webkitIDBObjectStore.clear(). On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('objectstore-clear') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. store = db.createObjectStore('storeName', null) store.createIndex('indexName', '') PASS store.indexNames.contains('indexName') is true store.add('value', 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - otherStore = db.createObjectStore('otherStoreName', null) otherStore.add('value', 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - store.clear() -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is undefined. +PASS event.target.result is undefined. store.openCursor() -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is null +PASS event.target.result is null index = store.index('indexName') index.openKeyCursor() openKeyCursorSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is null +PASS event.target.result is null db.transaction({mode: webkitIDBTransaction.READ_WRITE}) otherStore = transaction.objectStore('otherStoreName') otherStore.get('key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is "value" +PASS event.target.result is "value" PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/objectstore-clear.html b/LayoutTests/storage/indexeddb/objectstore-clear.html index 7f4034f..f18848b 100644 --- a/LayoutTests/storage/indexeddb/objectstore-clear.html +++ b/LayoutTests/storage/indexeddb/objectstore-clear.html @@ -16,108 +16,89 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = startSetVersion; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('objectstore-clear')"); + request.onsuccess = startSetVersion; + request.onerror = unexpectedErrorCallback; } function startSetVersion() { - verifySuccessEvent(event); - db = evalAndLog("db = event.result"); + db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = deleteExisting; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = deleteExisting; + request.onerror = unexpectedErrorCallback; } function deleteExisting() { - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); - deleteAllObjectStores(db, createObjectStoreAndAddValue); -} + deleteAllObjectStores(db); -function createObjectStoreAndAddValue() -{ store = evalAndLog("store = db.createObjectStore('storeName', null)"); window.index = evalAndLog("store.createIndex('indexName', '')"); shouldBeTrue("store.indexNames.contains('indexName')"); - result = evalAndLog("store.add('value', 'key')"); - verifyResult(result); - result.onsuccess = createSecondObjectStoreAndAddValue; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add('value', 'key')"); + request.onsuccess = createSecondObjectStoreAndAddValue; + request.onerror = unexpectedErrorCallback; } function createSecondObjectStoreAndAddValue() { - verifySuccessEvent(event); - otherStore = evalAndLog("otherStore = db.createObjectStore('otherStoreName', null)"); - result = evalAndLog("otherStore.add('value', 'key')"); - verifyResult(result); - result.onsuccess = clearObjectStore; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("otherStore.add('value', 'key')"); + request.onsuccess = clearObjectStore; + request.onerror = unexpectedErrorCallback; } function clearObjectStore() { - verifySuccessEvent(event); - - result = evalAndLog("store.clear()"); - verifyResult(result); - result.onsuccess = clearSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.clear()"); + request.onsuccess = clearSuccess; + request.onerror = unexpectedErrorCallback; } function clearSuccess() { - verifySuccessEvent(event); - shouldBeUndefined("event.result"); + shouldBeUndefined("event.target.result"); - result = evalAndLog("store.openCursor()"); - result.onsuccess = openCursorSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.openCursor()"); + request.onsuccess = openCursorSuccess; + request.onerror = unexpectedErrorCallback; } function openCursorSuccess() { - verifySuccessEvent(event); - shouldBeNull("event.result"); + shouldBeNull("event.target.result"); index = evalAndLog("index = store.index('indexName')"); - result = evalAndLog("index.openKeyCursor()"); - result.onsuccess = openKeyCursorSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("index.openKeyCursor()"); + request.onsuccess = openKeyCursorSuccess; + request.onerror = unexpectedErrorCallback; } function openKeyCursorSuccess() { debug("openKeyCursorSuccess():"); - verifySuccessEvent(event); - shouldBeNull("event.result"); + shouldBeNull("event.target.result"); transaction = evalAndLog("db.transaction({mode: webkitIDBTransaction.READ_WRITE})"); transaction.onabort = unexpectedErrorCallback; var otherStore = evalAndLog("otherStore = transaction.objectStore('otherStoreName')"); - result = evalAndLog("otherStore.get('key')"); - verifyResult(result); - result.onsuccess = getSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("otherStore.get('key')"); + request.onsuccess = getSuccess; + request.onerror = unexpectedErrorCallback; } function getSuccess() { - verifySuccessEvent(event); - shouldBeEqualToString("event.result", "value"); + shouldBeEqualToString("event.target.result", "value"); done(); } diff --git a/LayoutTests/storage/indexeddb/objectstore-cursor-expected.txt b/LayoutTests/storage/indexeddb/objectstore-cursor-expected.txt index ea789fa..22dedc4 100644 --- a/LayoutTests/storage/indexeddb/objectstore-cursor-expected.txt +++ b/LayoutTests/storage/indexeddb/objectstore-cursor-expected.txt @@ -3,877 +3,744 @@ Test IndexedDB's objectStore.openCursor + the cursor it produces in depth. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('someDB') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('objectstore-cursor') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. db.createObjectStore('someObjectStore') objectStore.add('', testData[nextToAdd]) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add('', testData[nextToAdd]) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add('', testData[nextToAdd]) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add('', testData[nextToAdd]) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add('', testData[nextToAdd]) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add('', testData[nextToAdd]) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - objectStore.add('', testData[nextToAdd]) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - Scheduling tests... Running tests... Next test: lower open bound is 0; sorted ascending. -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 0; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: upper open bound is 0; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: upper bound is 0; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 0; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: lower bound is 0; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper open bound is 0; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: upper bound is 0; sorted descending. -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 0; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 0; upper bound is 6; sorted ascending. -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 0; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 0; upper bound is 6; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 0; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: lower open bound is 0; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: lower bound is 0; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower bound is 0; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 1; sorted ascending. -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 1; sorted ascending. -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: upper open bound is 1; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 1; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: lower open bound is 1; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 1; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: upper open bound is 1; sorted descending. -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 1; sorted descending. -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 1; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 1; upper bound is 6; sorted ascending. -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 1; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 1; upper bound is 6; sorted ascending. -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 1; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 1; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 1; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: lower bound is 1; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: lower open bound is 2; sorted ascending. -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 2; sorted ascending. -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: upper open bound is 2; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result is null Next test: upper bound is 2; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 2; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: lower bound is 2; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: upper open bound is 2; sorted descending. -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 2; sorted descending. -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 2; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 2; upper bound is 6; sorted ascending. -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 2; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 2; upper bound is 6; sorted ascending. -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 2; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: lower open bound is 2; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: lower bound is 2; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower bound is 2; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: lower open bound is 3; sorted ascending. -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 3; sorted ascending. -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: upper open bound is 3; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result is null Next test: upper bound is 3; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: lower open bound is 3; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 3; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: upper open bound is 3; sorted descending. -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 3; sorted descending. -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 3; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 3; upper bound is 6; sorted ascending. -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 3; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 3; upper bound is 6; sorted ascending. -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 3; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower open bound is 3; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 3; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: lower bound is 3; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: lower open bound is 4; sorted ascending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 4; sorted ascending. -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: upper open bound is 4; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result is null Next test: upper bound is 4; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower open bound is 4; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 4; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: upper open bound is 4; sorted descending. -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 4; sorted descending. -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 4; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 4; upper bound is 6; sorted ascending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 4; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 4; upper bound is 6; sorted ascending. -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 4; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 4; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 4; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower bound is 4; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: lower open bound is 5; sorted ascending. -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 5; sorted ascending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: upper open bound is 5; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result is null Next test: upper bound is 5; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 5; sorted descending. -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 5; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: upper open bound is 5; sorted descending. -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 5; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 5; upper open bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 5; upper bound is 6; sorted ascending. -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 5; upper open bound is 6; sorted ascending. -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 5; upper bound is 6; sorted ascending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 5; upper open bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 5; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower bound is 5; upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower bound is 5; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: lower open bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; sorted ascending. -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: upper open bound is 6; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result is null Next test: upper bound is 6; sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: upper open bound is 6; sorted descending. -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null Next test: lower open bound is 6; upper open bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 6; upper bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper open bound is 6; sorted ascending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper bound is 6; sorted ascending. -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: lower open bound is 6; upper open bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower open bound is 6; upper bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper open bound is 6; sorted descending. -PASS event.result is null +PASS event.target.result is null Next test: lower bound is 6; upper bound is 6; sorted descending. -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: null key path sorted ascending. -PASS event.result.key is testData[0] -PASS event.result.key is testData[1] -PASS event.result.key is testData[2] -PASS event.result.key is testData[3] -PASS event.result.key is testData[4] -PASS event.result.key is testData[5] -PASS event.result.key is testData[6] -PASS event.result is null +PASS event.target.result.key is testData[0] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[6] +PASS event.target.result is null Next test: null key path sorted descending. -PASS event.result.key is testData[6] -PASS event.result.key is testData[5] -PASS event.result.key is testData[4] -PASS event.result.key is testData[3] -PASS event.result.key is testData[2] -PASS event.result.key is testData[1] -PASS event.result.key is testData[0] -PASS event.result is null +PASS event.target.result.key is testData[6] +PASS event.target.result.key is testData[5] +PASS event.target.result.key is testData[4] +PASS event.target.result.key is testData[3] +PASS event.target.result.key is testData[2] +PASS event.target.result.key is testData[1] +PASS event.target.result.key is testData[0] +PASS event.target.result is null PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/objectstore-cursor.html b/LayoutTests/storage/indexeddb/objectstore-cursor.html index bb7b65b..4f9e66f 100644 --- a/LayoutTests/storage/indexeddb/objectstore-cursor.html +++ b/LayoutTests/storage/indexeddb/objectstore-cursor.html @@ -28,35 +28,28 @@ window.testData = [ function openDatabase() { - result = evalAndLog("webkitIndexedDB.open('someDB')"); - verifyResult(result); - result.onsuccess = setVersion; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('objectstore-cursor')"); + request.onsuccess = setVersion; + request.onerror = unexpectedErrorCallback; } function setVersion() { - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); + window.db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = deleteExisting; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = deleteExisting; + request.onerror = unexpectedErrorCallback; } function deleteExisting() { - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; - deleteAllObjectStores(db, startAddingData); -} - -function startAddingData() -{ + deleteAllObjectStores(db); + window.objectStore = evalAndLog("db.createObjectStore('someObjectStore')"); window.nextToAdd = 0; addData(); @@ -64,13 +57,9 @@ function startAddingData() function addData() { - if (window.nextToAdd > 0) - verifySuccessEvent(event); - - result = evalAndLog("objectStore.add('', testData[nextToAdd])"); - verifyResult(result); - result.onsuccess = ++window.nextToAdd < testData.length ? addData : scheduleTests; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("objectStore.add('', testData[nextToAdd])"); + request.onsuccess = ++window.nextToAdd < testData.length ? addData : scheduleTests; + request.onerror = unexpectedErrorCallback; } function scheduleTests() @@ -159,7 +148,7 @@ function runNextTest() var keyRange; if (lower !== null && upper !== null) - keyRange = webkitIDBKeyRange.bound(testData[lower], testData[upper], {lowerOpen: lowerIsOpen, upperOpen: upperIsOpen}); + keyRange = webkitIDBKeyRange.bound(testData[lower], testData[upper], lowerIsOpen, upperIsOpen); else if (lower !== null) keyRange = webkitIDBKeyRange.lowerBound(testData[lower], lowerIsOpen); else @@ -187,21 +176,21 @@ function testWithinBounds() function cursorIteration() { if (expectedIndex === null) { - shouldBeNull("event.result"); + shouldBeNull("event.target.result"); runNextTest(); return; } - if (event.result === null) { - testFailed("Event.result should not be null."); + if (event.target.result === null) { + testFailed("event.target.result should not be null."); runNextTest(); return; } - shouldBe("event.result.key", "testData[" + expectedIndex + "]"); + shouldBe("event.target.result.key", "testData[" + expectedIndex + "]"); window.expectedIndex = ascending ? expectedIndex+1 : expectedIndex-1; testWithinBounds(); - event.result.continue(); + event.target.result.continue(); } window.nullKeyRangeStep = 0; diff --git a/LayoutTests/storage/indexeddb/objectstore-removeobjectstore-expected.txt b/LayoutTests/storage/indexeddb/objectstore-removeobjectstore-expected.txt index 45f0708..77ed01f 100644 --- a/LayoutTests/storage/indexeddb/objectstore-removeobjectstore-expected.txt +++ b/LayoutTests/storage/indexeddb/objectstore-removeobjectstore-expected.txt @@ -3,126 +3,30 @@ Test IndexedDB's webkitIDBObjectStore.deleteObjectStore(). On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('objectstore-removeobjectstore') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. store = db.createObjectStore('storeName', null) store.createIndex('indexName', '') PASS store.indexNames.contains('indexName') is true store.add('value', 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - db.transaction({mode: webkitIDBTransaction.READ_WRITE}) store = transaction.objectStore('storeName') store.get('key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is "value" +PASS event.target.result is "value" db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true db.deleteObjectStore('storeName') db.createObjectStore('storeName', null) db.transaction({mode: webkitIDBTransaction.READ_WRITE}) store = transaction.objectStore('storeName') store.get('key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result is undefined -PASS event.source.indexNames.contains('indexName') is false +PASS event.target.result is undefined +PASS event.target.source.indexNames.contains('indexName') is false PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/objectstore-removeobjectstore.html b/LayoutTests/storage/indexeddb/objectstore-removeobjectstore.html index f9b1e78..f44b27e 100644 --- a/LayoutTests/storage/indexeddb/objectstore-removeobjectstore.html +++ b/LayoutTests/storage/indexeddb/objectstore-removeobjectstore.html @@ -16,74 +16,60 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = startSetVersion; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('objectstore-removeobjectstore')"); + request.onsuccess = startSetVersion; + request.onerror = unexpectedErrorCallback; } function startSetVersion() { - verifySuccessEvent(event); - db = evalAndLog("db = event.result"); + db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = deleteExisting; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = deleteExisting; + request.onerror = unexpectedErrorCallback; } function deleteExisting() { - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); - deleteAllObjectStores(db, createObjectStoreAndAddValue); -} + deleteAllObjectStores(db); -function createObjectStoreAndAddValue() -{ store = evalAndLog("store = db.createObjectStore('storeName', null)"); window.index = evalAndLog("store.createIndex('indexName', '')"); shouldBeTrue("store.indexNames.contains('indexName')"); - result = evalAndLog("store.add('value', 'key')"); - verifyResult(result); - result.onsuccess = getValue; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add('value', 'key')"); + request.onsuccess = getValue; + request.onerror = unexpectedErrorCallback; } function getValue() { - verifySuccessEvent(event); - transaction = evalAndLog("db.transaction({mode: webkitIDBTransaction.READ_WRITE})"); transaction.onabort = unexpectedErrorCallback; var store = evalAndLog("store = transaction.objectStore('storeName')"); - result = evalAndLog("store.get('key')"); - verifyResult(result); - result.onsuccess = addIndex; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.get('key')"); + request.onsuccess = addIndex; + request.onerror = unexpectedErrorCallback; } function addIndex() { - verifySuccessEvent(event); - shouldBeEqualToString("event.result", "value"); + shouldBeEqualToString("event.target.result", "value"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = deleteObjectStore; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = deleteObjectStore; + request.onerror = unexpectedErrorCallback; } function deleteObjectStore() { - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; @@ -103,17 +89,15 @@ function getValueAgain() transaction.onabort = unexpectedErrorCallback; var store = evalAndLog("store = transaction.objectStore('storeName')"); - result = evalAndLog("store.get('key')"); - verifyResult(result); - result.onsuccess = verifyNotFound; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.get('key')"); + request.onsuccess = verifyNotFound; + request.onerror = unexpectedErrorCallback; } function verifyNotFound() { - verifySuccessEvent(event); - shouldBe("event.result", "undefined"); - shouldBeFalse("event.source.indexNames.contains('indexName')"); + shouldBe("event.target.result", "undefined"); + shouldBeFalse("event.target.source.indexNames.contains('indexName')"); done(); } diff --git a/LayoutTests/storage/indexeddb/open-cursor-expected.txt b/LayoutTests/storage/indexeddb/open-cursor-expected.txt index ddaa51a..c7d3052 100644 --- a/LayoutTests/storage/indexeddb/open-cursor-expected.txt +++ b/LayoutTests/storage/indexeddb/open-cursor-expected.txt @@ -3,97 +3,28 @@ Test IndexedDB's openCursor. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('open-cursor') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. objectStore = db.createObjectStore('test') objectStore.add('myValue', 'myKey') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - Opening cursor -event.source.openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +event.target.source.openCursor(keyRange) Cursor opened successfully. -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -PASS event.result.direction is 0 -PASS event.result.key is 'myKey' -PASS event.result.value is 'myValue' +PASS event.target.result.direction is 0 +PASS event.target.result.key is 'myKey' +PASS event.target.result.value is 'myValue' Passing an invalid key into .continue(). PASS Caught exception: Error: TYPE_MISMATCH_ERR: DOM Exception 17 Opening an empty cursor. objectStore.openCursor(keyRange) -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - Empty cursor opened successfully. -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/open-cursor.html b/LayoutTests/storage/indexeddb/open-cursor.html index 17ed9ab..7231280 100644 --- a/LayoutTests/storage/indexeddb/open-cursor.html +++ b/LayoutTests/storage/indexeddb/open-cursor.html @@ -17,7 +17,6 @@ if (window.layoutTestController) function emptyCursorSuccess() { debug("Empty cursor opened successfully.") - verifySuccessEvent(event); // FIXME: check that we can iterate the cursor. done(); } @@ -26,24 +25,22 @@ function openEmptyCursor() { debug("Opening an empty cursor."); keyRange = webkitIDBKeyRange.lowerBound("InexistentKey"); - result = evalAndLog("objectStore.openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = emptyCursorSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("objectStore.openCursor(keyRange)"); + request.onsuccess = emptyCursorSuccess; + request.onerror = unexpectedErrorCallback; } function cursorSuccess() { debug("Cursor opened successfully.") - verifySuccessEvent(event); // FIXME: check that we can iterate the cursor. - shouldBe("event.result.direction", "0"); - shouldBe("event.result.key", "'myKey'"); - shouldBe("event.result.value", "'myValue'"); + shouldBe("event.target.result.direction", "0"); + shouldBe("event.target.result.key", "'myKey'"); + shouldBe("event.target.result.value", "'myValue'"); debug(""); try { debug("Passing an invalid key into .continue()."); - event.result.continue([]); + event.target.result.continue([]); testFailed("No exception thrown"); } catch (e) { testPassed("Caught exception: " + e.toString()); @@ -56,49 +53,40 @@ function openCursor() { debug("Opening cursor"); keyRange = webkitIDBKeyRange.lowerBound("myKey"); - result = evalAndLog("event.source.openCursor(keyRange)"); - verifyResult(result); - result.onsuccess = cursorSuccess; - result.onerror = unexpectedErrorCallback; -} - -function createAndPopulateObjectStore() -{ - var objectStore = evalAndLog("objectStore = db.createObjectStore('test')"); - result = evalAndLog("objectStore.add('myValue', 'myKey')"); - verifyResult(result); - result.onsuccess = openCursor; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("event.target.source.openCursor(keyRange)"); + request.onsuccess = cursorSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; - deleteAllObjectStores(db, createAndPopulateObjectStore); -} + deleteAllObjectStores(db); + var objectStore = evalAndLog("objectStore = db.createObjectStore('test')"); + request = evalAndLog("objectStore.add('myValue', 'myKey')"); + request.onsuccess = openCursor; + request.onerror = unexpectedErrorCallback; +} + function openSuccess() { - verifySuccessEvent(event); - var db = evalAndLog("db = event.result"); - - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + var db = evalAndLog("db = event.target.result"); + + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } - + function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('open-cursor')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } test(); diff --git a/LayoutTests/storage/indexeddb/queued-commands-expected.txt b/LayoutTests/storage/indexeddb/queued-commands-expected.txt index 76c1074..916b588 100644 --- a/LayoutTests/storage/indexeddb/queued-commands-expected.txt +++ b/LayoutTests/storage/indexeddb/queued-commands-expected.txt @@ -3,100 +3,20 @@ Verify that queuing up several commands works (and they all fire). On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('queued-commands') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. -db.createObjectStore('storeName', null) +db.createObjectStore('storeName') store.createIndex('indexName', 'x') store.add({x: 'value', y: 'zzz'}, 'key') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - store.add({x: 'value2', y: 'zzz2'}, 'key2') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - store.put({x: 'valu2', y: 'zz2'}, 'ky2') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - PASS 0 is 0 -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - PASS 1 is 1 -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - PASS 2 is 2 PASS successfullyParsed is true diff --git a/LayoutTests/storage/indexeddb/queued-commands.html b/LayoutTests/storage/indexeddb/queued-commands.html index d48cb52..6c85c38 100644 --- a/LayoutTests/storage/indexeddb/queued-commands.html +++ b/LayoutTests/storage/indexeddb/queued-commands.html @@ -16,60 +16,49 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = setVersion; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('queued-commands')"); + request.onsuccess = setVersion; + request.onerror = unexpectedErrorCallback; } function setVersion() { - verifySuccessEvent(event); - db = evalAndLog("db = event.result"); + db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = deleteExisting; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = deleteExisting; + request.onerror = unexpectedErrorCallback; } function deleteExisting() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; - deleteAllObjectStores(db, createIndex); -} + deleteAllObjectStores(db); -function createIndex() -{ - window.store = evalAndLog("db.createObjectStore('storeName', null)"); + window.store = evalAndLog("db.createObjectStore('storeName')"); window.indexObject = evalAndLog("store.createIndex('indexName', 'x')"); - result = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); - verifyResult(result); - result.onsuccess = function() { verifyAdd(0); }; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); + request.onsuccess = function() { verifyAdd(0); }; + request.onerror = unexpectedErrorCallback; - result = evalAndLog("store.add({x: 'value2', y: 'zzz2'}, 'key2')"); - verifyResult(result); - result.onsuccess = function() { verifyAdd(1); }; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({x: 'value2', y: 'zzz2'}, 'key2')"); + request.onsuccess = function() { verifyAdd(1); }; + request.onerror = unexpectedErrorCallback; - result = evalAndLog("store.put({x: 'valu2', y: 'zz2'}, 'ky2')"); - verifyResult(result); - result.onsuccess = function() { verifyAdd(2); }; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.put({x: 'valu2', y: 'zz2'}, 'ky2')"); + request.onsuccess = function() { verifyAdd(2); }; + request.onerror = unexpectedErrorCallback; window.addCount = 0; } function verifyAdd(expected) { - verifySuccessEvent(event); shouldBe("" + addCount++, "" + expected); if (addCount == 3) diff --git a/LayoutTests/storage/indexeddb/request-event-propagation-expected.txt b/LayoutTests/storage/indexeddb/request-event-propagation-expected.txt index deda6a7..f71f781 100644 --- a/LayoutTests/storage/indexeddb/request-event-propagation-expected.txt +++ b/LayoutTests/storage/indexeddb/request-event-propagation-expected.txt @@ -3,43 +3,11 @@ Test event propogation on IDBRequest. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +webkitIndexedDB.open('request-event-propagation') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true trans.oncomplete = startTest Deleted all object stores. @@ -77,6 +45,8 @@ PASS captureFired is false PASS requestFired is false PASS bubbleFired is false PASS dbBubbleFired is false +PASS event.target is request +PASS event.currentTarget is db In IDBTransaction error capture PASS dbCaptureFired is true @@ -84,6 +54,8 @@ PASS captureFired is false PASS requestFired is false PASS bubbleFired is false PASS dbBubbleFired is false +PASS event.target is request +PASS event.currentTarget is trans In IDBRequest handler PASS dbCaptureFired is true @@ -91,6 +63,8 @@ PASS captureFired is true PASS requestFired is false PASS bubbleFired is false PASS dbBubbleFired is false +PASS event.target is request +PASS event.currentTarget is request In IDBTransaction error bubble PASS dbCaptureFired is true @@ -98,6 +72,8 @@ PASS captureFired is true PASS requestFired is true PASS bubbleFired is false PASS dbBubbleFired is false +PASS event.target is request +PASS event.currentTarget is trans In IDBDatabase error bubble PASS dbCaptureFired is true @@ -105,6 +81,8 @@ PASS captureFired is true PASS requestFired is true PASS bubbleFired is true PASS dbBubbleFired is false +PASS event.target is request +PASS event.currentTarget is db Transaction aborted PASS dbCaptureFired is true @@ -138,6 +116,8 @@ PASS captureFired is false PASS requestFired is false PASS bubbleFired is false PASS dbBubbleFired is false +PASS event.target is request +PASS event.currentTarget is db In IDBTransaction success capture PASS dbCaptureFired is true @@ -145,6 +125,8 @@ PASS captureFired is false PASS requestFired is false PASS bubbleFired is false PASS dbBubbleFired is false +PASS event.target is request +PASS event.currentTarget is trans In IDBRequest handler PASS dbCaptureFired is true @@ -152,6 +134,8 @@ PASS captureFired is true PASS requestFired is false PASS bubbleFired is false PASS dbBubbleFired is false +PASS event.target is request +PASS event.currentTarget is request Transaction completed PASS dbCaptureFired is true diff --git a/LayoutTests/storage/indexeddb/request-event-propagation.html b/LayoutTests/storage/indexeddb/request-event-propagation.html index 87f6a2d..3b1da3b 100644 --- a/LayoutTests/storage/indexeddb/request-event-propagation.html +++ b/LayoutTests/storage/indexeddb/request-event-propagation.html @@ -16,40 +16,33 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = setVersion; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('request-event-propagation')"); + request.onsuccess = setVersion; + request.onerror = unexpectedErrorCallback; } function setVersion() { - verifySuccessEvent(event); - db = evalAndLog("db = event.result"); + db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = deleteExisting; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = deleteExisting; + request.onerror = unexpectedErrorCallback; } function deleteExisting() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; evalAndLog("trans.oncomplete = startTest"); - deleteAllObjectStores(db, createObjectStore); -} + deleteAllObjectStores(db); -function createObjectStore() -{ store = evalAndLog("store = db.createObjectStore('storeName', null)"); - result = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); + request.onerror = unexpectedErrorCallback; } function startTest() @@ -60,8 +53,8 @@ function startTest() evalAndLog("trans.oncomplete = unexpectedCompleteCallback"); evalAndLog("trans.onerror = allowDefault"); store = evalAndLog("store = trans.objectStore('storeName')"); - result = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); - result.onsuccess = unexpectedSuccessCallback; + request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); + request.onsuccess = unexpectedSuccessCallback; handlerFired = false; } @@ -89,9 +82,9 @@ function transactionAborted() evalAndLog("db.addEventListener('success', unexpectedSuccessCallback, true)"); evalAndLog("db.addEventListener('success', unexpectedSuccessCallback, false)"); store = evalAndLog("store = trans.objectStore('storeName')"); - result = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); - result.onsuccess = unexpectedSuccessCallback; - result.onerror = errorFiredCallback; + request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); + request.onsuccess = unexpectedSuccessCallback; + request.onerror = errorFiredCallback; dbCaptureFired = false; captureFired = false; requestFired = false; @@ -108,6 +101,8 @@ function dbErrorCaptureCallback() shouldBeFalse("requestFired"); shouldBeFalse("bubbleFired"); shouldBeFalse("dbBubbleFired"); + shouldBe("event.target", "request"); + shouldBe("event.currentTarget", "db"); dbCaptureFired = true; } @@ -120,6 +115,8 @@ function errorCaptureCallback() shouldBeFalse("requestFired"); shouldBeFalse("bubbleFired"); shouldBeFalse("dbBubbleFired"); + shouldBe("event.target", "request"); + shouldBe("event.currentTarget", "trans"); captureFired = true; } @@ -132,6 +129,8 @@ function errorFiredCallback() shouldBeFalse("requestFired"); shouldBeFalse("bubbleFired"); shouldBeFalse("dbBubbleFired"); + shouldBe("event.target", "request"); + shouldBe("event.currentTarget", "request"); requestFired = true; } @@ -144,6 +143,8 @@ function errorBubbleCallback() shouldBeTrue("requestFired"); shouldBeFalse("bubbleFired"); shouldBeFalse("dbBubbleFired"); + shouldBe("event.target", "request"); + shouldBe("event.currentTarget", "trans"); bubbleFired = true; } @@ -156,6 +157,8 @@ function dbErrorBubbleCallback() shouldBeTrue("requestFired"); shouldBeTrue("bubbleFired"); shouldBeFalse("dbBubbleFired"); + shouldBe("event.target", "request"); + shouldBe("event.currentTarget", "db"); dbBubbleFired = true; } @@ -186,9 +189,9 @@ function transactionAborted2() evalAndLog("db.addEventListener('error', unexpectedErrorCallback, true)"); evalAndLog("db.addEventListener('error', unexpectedErrorCallback, false)"); store = evalAndLog("store = trans.objectStore('storeName')"); - result = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key2')"); - result.onerror = unexpectedErrorCallback; - result.onsuccess = successFiredCallback; + request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key2')"); + request.onerror = unexpectedErrorCallback; + request.onsuccess = successFiredCallback; dbCaptureFired = false; captureFired = false; requestFired = false; @@ -205,6 +208,8 @@ function dbSuccessCaptureCallback() shouldBeFalse("requestFired"); shouldBeFalse("bubbleFired"); shouldBeFalse("dbBubbleFired"); + shouldBe("event.target", "request"); + shouldBe("event.currentTarget", "db"); dbCaptureFired = true; } @@ -217,6 +222,8 @@ function successCaptureCallback() shouldBeFalse("requestFired"); shouldBeFalse("bubbleFired"); shouldBeFalse("dbBubbleFired"); + shouldBe("event.target", "request"); + shouldBe("event.currentTarget", "trans"); captureFired = true; } @@ -229,6 +236,8 @@ function successFiredCallback() shouldBeFalse("requestFired"); shouldBeFalse("bubbleFired"); shouldBeFalse("dbBubbleFired"); + shouldBe("event.target", "request"); + shouldBe("event.currentTarget", "request"); requestFired = true; } diff --git a/LayoutTests/storage/indexeddb/resources/shared.js b/LayoutTests/storage/indexeddb/resources/shared.js index 8c56832..9b23cb8 100644 --- a/LayoutTests/storage/indexeddb/resources/shared.js +++ b/LayoutTests/storage/indexeddb/resources/shared.js @@ -5,86 +5,29 @@ function done() layoutTestController.notifyDone() } -function verifyEventCommon(event) -{ - shouldBeTrue("'source' in event"); - shouldBeTrue("event.source != null"); - shouldBeTrue("'onsuccess' in event.target"); - shouldBeTrue("'onerror' in event.target"); - shouldBeTrue("'readyState' in event.target"); - shouldBe("event.target.readyState", "event.target.DONE"); - debug(""); -} - -function verifyErrorEvent(event) -{ - debug("Error event fired:"); - shouldBeFalse("'result' in event"); - shouldBeTrue("'code' in event"); - shouldBeTrue("'message' in event"); - verifyEventCommon(event); -} - -function verifySuccessEvent(event) -{ - debug("Success event fired:"); - shouldBeTrue("'result' in event"); - shouldBeFalse("'code' in event"); - shouldBeFalse("'message' in event"); - verifyEventCommon(event); -} - -function verifyAbortEvent(event) -{ - debug("Abort event fired:"); - shouldBeEqualToString("event.type", "abort"); -} - -function verifyCompleteEvent(event) -{ - debug("Complete event fired:"); - shouldBeEqualToString("event.type", "complete"); -} - -function verifyResult(result) -{ - shouldBeTrue("'onsuccess' in result"); - shouldBeTrue("'onerror' in result"); - shouldBeTrue("'readyState' in result"); - debug("An event should fire shortly..."); - debug(""); -} - function unexpectedSuccessCallback() { testFailed("Success function called unexpectedly."); - debug(""); - verifySuccessEvent(event); - done(); } function unexpectedErrorCallback() { - testFailed("Error function called unexpectedly: (" + event.code + ") " + event.message); - debug(""); - verifyErrorEvent(event); - done(); + testFailed("Error function called unexpectedly: (" + event.target.errorCode + ") " + event.target.webkitErrorMessage); } function unexpectedAbortCallback() { testFailed("Abort function called unexpectedly!"); - debug(""); - verifyAbortEvent(event); - done(); } function unexpectedCompleteCallback() { testFailed("oncomplete function called unexpectedly!"); - debug(""); - verifyCompleteEvent(event); - done(); +} + +function unexpectedBlockedCallback() +{ + testFailed("onblocked called unexpectedly"); } function evalAndExpectException(cmd, expected) @@ -95,16 +38,14 @@ function evalAndExpectException(cmd, expected) testFailed("No exception thrown! Should have been " + expected); } catch (e) { code = e.code; + testPassed("Exception was thrown."); shouldBe("code", expected); } } -// FIXME: remove the onfinished parameter. -function deleteAllObjectStores(db, onfinished) +function deleteAllObjectStores(db) { while (db.objectStoreNames.length) db.deleteObjectStore(db.objectStoreNames.item(0)); - debug("Deleted all object stores."); - onfinished(); } diff --git a/LayoutTests/storage/indexeddb/set_version_blocked-expected.txt b/LayoutTests/storage/indexeddb/set_version_blocked-expected.txt new file mode 100644 index 0000000..e2736c9 --- /dev/null +++ b/LayoutTests/storage/indexeddb/set_version_blocked-expected.txt @@ -0,0 +1,20 @@ +An open connection blocks a separate connection's setVersion call + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS IndexedDB == null is false +IndexedDB.open('set-version-blocked') +IndexedDB.open('set-version-blocked') +connections[0].setVersion('version 1') +seen_blocked_event = true +PASS blocked_event.version is "version 1" +PASS blocked_event.target.readyState is 1 +connections[1].close() +in setVersion.onsuccess +PASS seen_blocked_event is true +Deleted all object stores. +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/LayoutTests/storage/indexeddb/set_version_blocked.html b/LayoutTests/storage/indexeddb/set_version_blocked.html new file mode 100644 index 0000000..dae1a18 --- /dev/null +++ b/LayoutTests/storage/indexeddb/set_version_blocked.html @@ -0,0 +1,74 @@ + + + + + + + + +

+
+ + + diff --git a/LayoutTests/storage/indexeddb/set_version_queue-expected.txt b/LayoutTests/storage/indexeddb/set_version_queue-expected.txt new file mode 100644 index 0000000..4130bf2 --- /dev/null +++ b/LayoutTests/storage/indexeddb/set_version_queue-expected.txt @@ -0,0 +1,73 @@ +4 open connections try to setVersion at the same time. 3 connections eventually close, allowing 1 setVersion call to proceed. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS IndexedDB == null is false +IndexedDB.open('set-version-queue') +IndexedDB.open('set-version-queue') +IndexedDB.open('set-version-queue') +IndexedDB.open('set-version-queue') +connections[0].setVersion('version 0') +connections[1].setVersion('version 1') +connections[2].setVersion('version 2') +connections[3].setVersion('version 3') + +PASS event.version.length > 0 is true +connection[1] received versionChangeEvent: version 0 +PASS event.version.length > 0 is true +connection[2] received versionChangeEvent: version 0 +PASS event.version.length > 0 is true +connection[3] received versionChangeEvent: version 0 + +PASS connection[0] got blocked event +PASS event.version is "version 0" +Close the connection that received the block event: +connections[0].close() +Close another connection as well, to test 4.7.4-note: +connections[3].close() +blocked0fired = true + +PASS event.version.length > 0 is true +connection[2] received versionChangeEvent: version 1 + +PASS connection[1] got blocked event +Ensure that this blocked event is in order: +PASS blocked0fired is true +PASS blocked2fired is false + +PASS event.version.length > 0 is true +connection[1] received versionChangeEvent: version 2 + +PASS connection[2] got blocked event +PASS event.version is "version 2" +connections[2].close() +blocked2fired = true + +PASS event.version.length > 0 is true +connection[1] received versionChangeEvent: version 3 + +PASS connection[3] got blocked event +Note: This means that a connection can receive a blocked event after its close() method has been called. Spec is silent on the issue and this is easiest to implement. +PASS event.version is "version 3" + +PASS connection[0] got error event +PASS event.target.errorCode is 13 +PASS event.target.webkitErrorMessage.length > 0 is true +Connection was closed before set version transaction was created + +PASS connection[2] got error event +PASS event.target.errorCode is 13 +PASS event.target.webkitErrorMessage.length > 0 is true +Connection was closed before set version transaction was created + +PASS connection[3] got error event +PASS event.target.errorCode is 13 +PASS event.target.webkitErrorMessage.length > 0 is true +Connection was closed before set version transaction was created + +PASS connection[1] got into SetVersion +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/LayoutTests/storage/indexeddb/set_version_queue.html b/LayoutTests/storage/indexeddb/set_version_queue.html new file mode 100644 index 0000000..b00a69a --- /dev/null +++ b/LayoutTests/storage/indexeddb/set_version_queue.html @@ -0,0 +1,140 @@ + + + + + + + + +

+
+ + + diff --git a/LayoutTests/storage/indexeddb/transaction-abort-expected.txt b/LayoutTests/storage/indexeddb/transaction-abort-expected.txt new file mode 100644 index 0000000..c3bcb70 --- /dev/null +++ b/LayoutTests/storage/indexeddb/transaction-abort-expected.txt @@ -0,0 +1,42 @@ +Test transaction aborts send the proper onabort messages.. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +webkitIndexedDB.open('name') +db = event.target.result +db.setVersion('new version') +setVersionSuccess(): +trans = event.target.result +PASS trans !== null is true +trans.oncomplete = startTest +Deleted all object stores. +store = db.createObjectStore('storeName', null) +store.add({x: 'value', y: 'zzz'}, 'key') +trans = db.transaction([], webkitIDBTransaction.READ_WRITE) +trans.onabort = transactionAborted +trans.oncomplete = unexpectedCompleteCallback +store = trans.objectStore('storeName') +store.add({x: 'value2', y: 'zzz2'}, 'key2') +store.add({x: 'value3', y: 'zzz3'}, 'key3') +PASS event.target.errorCode is webkitIDBDatabaseException.ABORT_ERR +PASS firstError is false +PASS secondError is false +PASS abortFired is false +Expecting exception from store.add({x: 'value4', y: 'zzz4'}, 'key4') +PASS Exception was thrown. +PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR +PASS event.target.errorCode is webkitIDBDatabaseException.ABORT_ERR +PASS firstError is true +PASS secondError is false +PASS abortFired is false +PASS firstError is true +PASS secondError is true +PASS abortFired is false +Expecting exception from store.add({x: 'value5', y: 'zzz5'}, 'key5') +PASS Exception was thrown. +PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/LayoutTests/storage/indexeddb/transaction-abort.html b/LayoutTests/storage/indexeddb/transaction-abort.html new file mode 100644 index 0000000..6bd0c00 --- /dev/null +++ b/LayoutTests/storage/indexeddb/transaction-abort.html @@ -0,0 +1,103 @@ + + + + + + + + +

+
+ + + diff --git a/LayoutTests/storage/indexeddb/transaction-after-close-expected.txt b/LayoutTests/storage/indexeddb/transaction-after-close-expected.txt index 653bd87..6be5795 100644 --- a/LayoutTests/storage/indexeddb/transaction-after-close-expected.txt +++ b/LayoutTests/storage/indexeddb/transaction-after-close-expected.txt @@ -5,90 +5,28 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE PASS 'webkitIndexedDB' in window is true PASS webkitIndexedDB == null is false -webkitIndexedDB.open('some db name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +webkitIndexedDB.open('transaction-after-close') openSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result -result = db.setVersion('version 1') -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - +db = event.target.result +request = db.setVersion('version 1') Deleted all object stores. store = db.createObjectStore('store') request = store.put('x', 'y') -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - +PASS Put success running first transaction currentTransaction = db.transaction([], webkitIDBTransaction.READ_WRITE) objectStore.put('a', 'b') db.close() Expecting exception from db.transaction([], webkitIDBTransaction.READ_WRITE) +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_ALLOWED_ERR verify that we can reopen the db after calling close -webkitIndexedDB.open('some db name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -second_db = event.result +webkitIndexedDB.open('transaction-after-close') +second_db = event.target.result currentTransaction = second_db.transaction([], webkitIDBTransaction.READ_WRITE) request = store.put('1', '2') -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - +PASS final put success PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/storage/indexeddb/transaction-after-close.html b/LayoutTests/storage/indexeddb/transaction-after-close.html index 718c05a..13aee60 100644 --- a/LayoutTests/storage/indexeddb/transaction-after-close.html +++ b/LayoutTests/storage/indexeddb/transaction-after-close.html @@ -19,32 +19,26 @@ function test() shouldBeTrue("'webkitIndexedDB' in window"); shouldBeFalse("webkitIndexedDB == null"); - result = evalAndLog("webkitIndexedDB.open('some db name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('transaction-after-close')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { debug("openSuccess():"); - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); - result = evalAndLog("result = db.setVersion('version 1')"); - result.onsuccess = inSetVersion; - result.onerror = unexpectedErrorCallback; + window.db = evalAndLog("db = event.target.result"); + request = evalAndLog("request = db.setVersion('version 1')"); + request.onsuccess = inSetVersion; + request.onerror = unexpectedErrorCallback; } function inSetVersion() { - verifySuccessEvent(event); - deleteAllObjectStores(db, doSetVersionStuff); -} + deleteAllObjectStores(db); -function doSetVersionStuff() -{ - event.result.oncomplete = runFirstRegularTransaction; - event.result.onabort = unexpectedAbortCallback; + event.target.result.oncomplete = runFirstRegularTransaction; + event.target.result.onabort = unexpectedAbortCallback; store = evalAndLog("store = db.createObjectStore('store')"); request = evalAndLog("request = store.put('x', 'y')"); request.onsuccess = onPutSuccess; @@ -53,7 +47,7 @@ function doSetVersionStuff() function onPutSuccess() { - verifySuccessEvent(event); + testPassed("Put success") } function runFirstRegularTransaction() @@ -63,8 +57,8 @@ function runFirstRegularTransaction() currentTransaction.onabort = unexpectedAbortCallback; currentTransaction.oncomplete = firstTransactionComplete; objectStore = currentTransaction.objectStore('store'); - result = evalAndLog("objectStore.put('a', 'b')"); - result.onerror = unexpectedErrorCallback; + request = evalAndLog("objectStore.put('a', 'b')"); + request.onerror = unexpectedErrorCallback; } function firstTransactionComplete() @@ -74,15 +68,13 @@ function firstTransactionComplete() debug("") debug("verify that we can reopen the db after calling close") - result = evalAndLog("webkitIndexedDB.open('some db name')"); - verifyResult(result); - result.onsuccess = onSecondOpen - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('transaction-after-close')"); + request.onsuccess = onSecondOpen + request.onerror = unexpectedErrorCallback; } function onSecondOpen() { - verifySuccessEvent(event); - second_db = evalAndLog("second_db = event.result"); + second_db = evalAndLog("second_db = event.target.result"); currentTransaction = evalAndLog("currentTransaction = second_db.transaction([], webkitIDBTransaction.READ_WRITE)"); store = currentTransaction.objectStore('store'); request = evalAndLog("request = store.put('1', '2')"); @@ -93,7 +85,7 @@ function onSecondOpen() { } function onFinalPutSuccess() { - verifySuccessEvent(event); + testPassed("final put success"); } var successfullyParsed = true; diff --git a/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls-expected.txt b/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls-expected.txt index 36ca01e..3a9d2ed 100644 --- a/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls-expected.txt +++ b/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls-expected.txt @@ -5,15 +5,10 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE PASS 'webkitIndexedDB' in window is true PASS webkitIndexedDB == null is false -webkitIndexedDB.open('name', 'description') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -db = event.result +webkitIndexedDB.open('transaction-and-objectstore-calls', 'description') +db = event.target.result result = db.setVersion('version 1') -trans = event.result +trans = event.target.result Deleted all object stores. db.createObjectStore('a') db.createObjectStore('b') @@ -22,57 +17,72 @@ trans.addEventListener('complete', created, true) trans = db.transaction(['a']) trans.objectStore('a') Expecting exception from trans.objectStore('b') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR Expecting exception from trans.objectStore('x') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR trans = db.transaction(['a']) trans.objectStore('a') Expecting exception from trans.objectStore('b') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR Expecting exception from trans.objectStore('x') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR trans = db.transaction(['b']) trans.objectStore('b') Expecting exception from trans.objectStore('a') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR Expecting exception from trans.objectStore('x') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR trans = db.transaction(['a', 'b']) trans.objectStore('a') trans.objectStore('b') Expecting exception from trans.objectStore('x') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR trans = db.transaction(['b', 'a']) trans.objectStore('a') trans.objectStore('b') Expecting exception from trans.objectStore('x') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR trans = db.transaction([]) trans.objectStore('a') trans.objectStore('b') Expecting exception from trans.objectStore('x') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR trans = db.transaction() trans.objectStore('a') trans.objectStore('b') Expecting exception from trans.objectStore('x') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR Expecting exception from db.transaction(['x']) +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR Expecting exception from db.transaction(['x']) +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR Expecting exception from db.transaction(['a', 'x']) +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR Expecting exception from db.transaction(['x', 'x']) +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR Expecting exception from db.transaction(['a', 'x', 'b']) +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.NOT_FOUND_ERR PASS successfullyParsed is true diff --git a/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls.html b/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls.html index 144df4f..e9a3b8e 100644 --- a/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls.html +++ b/LayoutTests/storage/indexeddb/transaction-and-objectstore-calls.html @@ -19,28 +19,24 @@ function test() shouldBeTrue("'webkitIndexedDB' in window"); shouldBeFalse("webkitIndexedDB == null"); - result = evalAndLog("webkitIndexedDB.open('name', 'description')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('transaction-and-objectstore-calls', 'description')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { - window.db = evalAndLog("db = event.result"); - result = evalAndLog("result = db.setVersion('version 1')"); - result.onsuccess = cleanDatabase; - result.onerror = unexpectedErrorCallback; + window.db = evalAndLog("db = event.target.result"); + request = evalAndLog("result = db.setVersion('version 1')"); + request.onsuccess = cleanDatabase; + request.onerror = unexpectedErrorCallback; } function cleanDatabase() { - trans = evalAndLog("trans = event.result"); - deleteAllObjectStores(db, cleaned); -} + trans = evalAndLog("trans = event.target.result"); + deleteAllObjectStores(db); -function cleaned() -{ evalAndLog("db.createObjectStore('a')"); evalAndLog("db.createObjectStore('b')"); evalAndLog("trans.addEventListener('complete', created, true)"); diff --git a/LayoutTests/storage/indexeddb/transaction-basics-expected.txt b/LayoutTests/storage/indexeddb/transaction-basics-expected.txt index f026154..527c553 100644 --- a/LayoutTests/storage/indexeddb/transaction-basics-expected.txt +++ b/LayoutTests/storage/indexeddb/transaction-basics-expected.txt @@ -5,63 +5,17 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE PASS 'webkitIndexedDB' in window is true PASS webkitIndexedDB == null is false -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +webkitIndexedDB.open('transaction-basics') openSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result -result = db.setVersion('version 1') -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - +db = event.target.result +request = db.setVersion('version 1') Deleted all object stores. PASS window.db.objectStoreNames is [] PASS window.db.objectStoreNames.length is 0 PASS window.db.objectStoreNames.contains('storeFail') is false -PASS window.db.objectStoreNames is [] -PASS window.db.objectStoreNames.length is 0 -PASS window.db.objectStoreNames.contains('storeFail') is false -result = startSetVersion('version fail') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +request = startSetVersion('version fail') addRemoveIDBObjects(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true store = db.createObjectStore('storeFail', null) index = store.createIndex('indexFail', 'x', false) @@ -70,25 +24,9 @@ store.deleteIndex('indexFail') PASS window.db.objectStoreNames is [] PASS window.db.objectStoreNames.length is 0 PASS window.db.objectStoreNames.contains('storeFail') is false -result = startSetVersion('version fail') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +request = startSetVersion('version fail') addRemoveAddIDBObjects(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true store = db.createObjectStore('storeFail', null) index = store.createIndex('indexFail', 'x', false) @@ -96,53 +34,22 @@ db.deleteObjectStore('storeFail') store.deleteIndex('indexFail') store = db.createObjectStore('storeFail', null) index = store.createIndex('indexFail', 'x', false) +PASS event.cancelable is false PASS window.db.objectStoreNames is [] PASS window.db.objectStoreNames.length is 0 PASS window.db.objectStoreNames.contains('storeFail') is false -result = startSetVersion('version fail') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +request = startSetVersion('version fail') addIDBObjects(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true store = db.createObjectStore('storeFail', null) index = store.createIndex('indexFail', 'x', false) PASS db.objectStoreNames is ['storeFail'] PASS db.objectStoreNames.length is 1 PASS db.objectStoreNames.contains('storeFail') is true -result = startSetVersion('version fail') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +request = startSetVersion('version fail') removeIDBObjects(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true store = trans.objectStore('storeFail') store.deleteIndex('indexFail') @@ -151,34 +58,17 @@ PASS db.objectStoreNames is ['storeFail'] PASS db.objectStoreNames.length is 1 PASS db.objectStoreNames.contains('storeFail') is true db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - setVersionSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -trans = event.result +trans = event.target.result PASS trans !== null is true Deleted all object stores. db.createObjectStore('storeName', null) db.transaction({mode: webkitIDBTransaction.READ_WRITE}) store = transaction.objectStore('storeName') PASS store.name is "storeName" -Abort event fired: -PASS event.type is "abort" -Complete event fired: -PASS event.type is "complete" +PASS complete event fired +PASS event.cancelable is false +PASS complete event fired PASS oncomplete event had fired PASS successfullyParsed is true diff --git a/LayoutTests/storage/indexeddb/transaction-basics.html b/LayoutTests/storage/indexeddb/transaction-basics.html index 9626129..0e49da1 100644 --- a/LayoutTests/storage/indexeddb/transaction-basics.html +++ b/LayoutTests/storage/indexeddb/transaction-basics.html @@ -19,25 +19,22 @@ function test() shouldBeTrue("'webkitIndexedDB' in window"); shouldBeFalse("webkitIndexedDB == null"); - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('transaction-basics')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { debug("openSuccess():"); - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); - result = evalAndLog("result = db.setVersion('version 1')"); - result.onsuccess = cleanDatabase; - result.onerror = unexpectedErrorCallback; + window.db = evalAndLog("db = event.target.result"); + request = evalAndLog("request = db.setVersion('version 1')"); + request.onsuccess = cleanDatabase; + request.onerror = unexpectedErrorCallback; } function cleanDatabase() { - verifySuccessEvent(event); deleteAllObjectStores(db, checkMetadataEmpty); commitAndContinue(testSetVersionAbort1); } @@ -45,15 +42,14 @@ function cleanDatabase() function testSetVersionAbort1() { checkMetadataEmpty(); - result = evalAndLog("result = startSetVersion('version fail')"); - result.onsuccess = addRemoveIDBObjects; + request = evalAndLog("request = startSetVersion('version fail')"); + request.onsuccess = addRemoveIDBObjects; } function addRemoveIDBObjects() { debug("addRemoveIDBObjects():"); - verifySuccessEvent(event); - var trans = evalAndLog("trans = event.result"); + var trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.addEventListener('abort', testSetVersionAbort2, true); trans.oncomplete = unexpectedCompleteCallback; @@ -70,15 +66,14 @@ function addRemoveIDBObjects() function testSetVersionAbort2() { checkMetadataEmpty(); - result = evalAndLog("result = startSetVersion('version fail')"); - result.onsuccess = addRemoveAddIDBObjects; + request = evalAndLog("request = startSetVersion('version fail')"); + request.onsuccess = addRemoveAddIDBObjects; } function addRemoveAddIDBObjects() { debug("addRemoveAddIDBObjects():"); - verifySuccessEvent(event); - var trans = evalAndLog("trans = event.result"); + var trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.addEventListener('abort', testSetVersionAbort3, false); trans.oncomplete = unexpectedCompleteCallback; @@ -97,16 +92,17 @@ function addRemoveAddIDBObjects() function testSetVersionAbort3() { + shouldBeFalse("event.cancelable"); checkMetadataEmpty(); - result = evalAndLog("result = startSetVersion('version fail')"); - result.onsuccess = addIDBObjects; + request = evalAndLog("request = startSetVersion('version fail')"); + request.onsuccess = addIDBObjects; } function addIDBObjects() { + shouldBeFalse("event.cancelable"); debug("addIDBObjects():"); - verifySuccessEvent(event); - var trans = evalAndLog("trans = event.result"); + var trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = testSetVersionAbort4; trans.oncomplete = unexpectedCompleteCallback; @@ -120,15 +116,14 @@ function addIDBObjects() function testSetVersionAbort4() { checkMetadataEmpty(); - result = evalAndLog("result = startSetVersion('version fail')"); - result.onsuccess = addIDBObjectsAndCommit; + request = evalAndLog("request = startSetVersion('version fail')"); + request.onsuccess = addIDBObjectsAndCommit; } function addIDBObjects() { debug("addIDBObjects():"); - verifySuccessEvent(event); - var trans = evalAndLog("trans = event.result"); + var trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; @@ -146,15 +141,14 @@ function commitAndContinue(continueFunction) function testSetVersionAbort5() { checkMetadataExistingObjectStore(); - result = evalAndLog("result = startSetVersion('version fail')"); - result.onsuccess = removeIDBObjects; + request = evalAndLog("request = startSetVersion('version fail')"); + request.onsuccess = removeIDBObjects; } function removeIDBObjects() { debug("removeIDBObjects():"); - verifySuccessEvent(event); - var trans = evalAndLog("trans = event.result"); + var trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = testSetVersionAbort6; trans.oncomplete = unexpectedCompleteCallback; @@ -174,10 +168,9 @@ function testSetVersionAbort6() function startSetVersion(versionName) { - result = db.setVersion(versionName); - verifyResult(result); - result.onerror = unexpectedErrorCallback; - return result; + request = db.setVersion(versionName); + request.onerror = unexpectedErrorCallback; + return request; } function checkMetadataEmpty() @@ -196,27 +189,22 @@ function checkMetadataExistingObjectStore() function setNewVersion() { - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = setVersionSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = setVersionSuccess; + request.onerror = unexpectedErrorCallback; } function setVersionSuccess() { debug("setVersionSuccess():"); - verifySuccessEvent(event); - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; trans.addEventListener('complete', completeCallback, false); window.completeEventFired = false; - deleteAllObjectStores(db, createObjectStoreAndStartTransaction); -} + deleteAllObjectStores(db); -function createObjectStoreAndStartTransaction() -{ evalAndLog("db.createObjectStore('storeName', null)"); transaction = evalAndLog("db.transaction({mode: webkitIDBTransaction.READ_WRITE})"); transaction.onabort = abortCallback; @@ -226,13 +214,14 @@ function createObjectStoreAndStartTransaction() function completeCallback() { - verifyCompleteEvent(event); + shouldBeFalse("event.cancelable"); + testPassed("complete event fired"); window.completeEventFired = true; } function abortCallback() { - verifyAbortEvent(event); + testPassed("complete event fired"); checkForCompleteEvent(); } diff --git a/LayoutTests/storage/indexeddb/transaction-crash-on-abort-expected.txt b/LayoutTests/storage/indexeddb/transaction-crash-on-abort-expected.txt index 139189e..4f72614 100644 --- a/LayoutTests/storage/indexeddb/transaction-crash-on-abort-expected.txt +++ b/LayoutTests/storage/indexeddb/transaction-crash-on-abort-expected.txt @@ -5,25 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE PASS 'webkitIndexedDB' in window is true PASS webkitIndexedDB == null is false -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +webkitIndexedDB.open('transaction-crash-on-abort') openSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +db = event.target.result db.transaction() window.gc() PASS successfullyParsed is true diff --git a/LayoutTests/storage/indexeddb/transaction-crash-on-abort.html b/LayoutTests/storage/indexeddb/transaction-crash-on-abort.html index 92aeb31..8fa3514 100644 --- a/LayoutTests/storage/indexeddb/transaction-crash-on-abort.html +++ b/LayoutTests/storage/indexeddb/transaction-crash-on-abort.html @@ -19,17 +19,15 @@ function test() shouldBeTrue("'webkitIndexedDB' in window"); shouldBeFalse("webkitIndexedDB == null"); - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('transaction-crash-on-abort')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { debug("openSuccess():"); - verifySuccessEvent(event); - db = evalAndLog("db = event.result"); + db = evalAndLog("db = event.target.result"); evalAndLog("db.transaction()"); evalAndLog("window.gc()"); done(); diff --git a/LayoutTests/storage/indexeddb/transaction-event-propagation-expected.txt b/LayoutTests/storage/indexeddb/transaction-event-propagation-expected.txt index 9d04b0a..5f85c81 100644 --- a/LayoutTests/storage/indexeddb/transaction-event-propagation-expected.txt +++ b/LayoutTests/storage/indexeddb/transaction-event-propagation-expected.txt @@ -3,20 +3,10 @@ Test event propogation on IDBTransaction. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -db = event.result +webkitIndexedDB.open('transaction-event-propagation') +db = event.target.result db.setVersion('new version') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - -trans = event.result +trans = event.target.result PASS trans !== null is true trans.oncomplete = startTest Deleted all object stores. @@ -37,16 +27,22 @@ In IDBDatabase abort capture PASS dbCaptureFired is false PASS abortFired is false PASS dbBubbleFired1 is false +PASS event.target is trans +PASS event.currentTarget is db In abort handler PASS dbCaptureFired is true PASS abortFired is false PASS dbBubbleFired1 is false +PASS event.target is trans +PASS event.currentTarget is trans In IDBDatabase error bubble PASS dbCaptureFired is true PASS abortFired is true PASS dbBubbleFired1 is false +PASS event.target is trans +PASS event.currentTarget is db Verifing success. trans = db.transaction([], webkitIDBTransaction.READ_WRITE) @@ -67,11 +63,15 @@ In IDBDatabase complete capture PASS dbCaptureFired is false PASS completeFired is false PASS dbBubbleFired2 is false +PASS event.target is trans +PASS event.currentTarget is db In IDBRequest handler PASS dbCaptureFired is true PASS completeFired is false PASS dbBubbleFired2 is false +PASS event.target is trans +PASS event.currentTarget is trans PASS successfullyParsed is true diff --git a/LayoutTests/storage/indexeddb/transaction-event-propagation.html b/LayoutTests/storage/indexeddb/transaction-event-propagation.html index c31646a..15c275c 100644 --- a/LayoutTests/storage/indexeddb/transaction-event-propagation.html +++ b/LayoutTests/storage/indexeddb/transaction-event-propagation.html @@ -16,37 +16,32 @@ if (window.layoutTestController) function test() { - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = setVersion; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('transaction-event-propagation')"); + request.onsuccess = setVersion; + request.onerror = unexpectedErrorCallback; } function setVersion() { - db = evalAndLog("db = event.result"); + db = evalAndLog("db = event.target.result"); - result = evalAndLog("db.setVersion('new version')"); - verifyResult(result); - result.onsuccess = deleteExisting; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("db.setVersion('new version')"); + request.onsuccess = deleteExisting; + request.onerror = unexpectedErrorCallback; } function deleteExisting() { - window.trans = evalAndLog("trans = event.result"); + window.trans = evalAndLog("trans = event.target.result"); shouldBeTrue("trans !== null"); trans.onabort = unexpectedAbortCallback; evalAndLog("trans.oncomplete = startTest"); - deleteAllObjectStores(db, createObjectStore); -} + deleteAllObjectStores(db); -function createObjectStore() -{ store = evalAndLog("store = db.createObjectStore('storeName', null)"); - result = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); - result.onerror = unexpectedErrorCallback; + request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')"); + request.onerror = unexpectedErrorCallback; } function startTest() @@ -73,6 +68,8 @@ function dbAbortCaptureCallback() shouldBeFalse("dbCaptureFired"); shouldBeFalse("abortFired"); shouldBeFalse("dbBubbleFired1"); + shouldBe("event.target", "trans"); + shouldBe("event.currentTarget", "db"); dbCaptureFired = true; } @@ -83,6 +80,8 @@ function abortFiredCallback() shouldBeTrue("dbCaptureFired"); shouldBeFalse("abortFired"); shouldBeFalse("dbBubbleFired1"); + shouldBe("event.target", "trans"); + shouldBe("event.currentTarget", "trans"); abortFired = true; } @@ -93,6 +92,8 @@ function dbAbortBubbleCallback() shouldBeTrue("dbCaptureFired"); shouldBeTrue("abortFired"); shouldBeFalse("dbBubbleFired1"); + shouldBe("event.target", "trans"); + shouldBe("event.currentTarget", "db"); dbBubbleFired1 = true; debug(""); debug("Verifing success."); @@ -121,6 +122,8 @@ function dbCompleteCaptureCallback() shouldBeFalse("dbCaptureFired"); shouldBeFalse("completeFired"); shouldBeFalse("dbBubbleFired2"); + shouldBe("event.target", "trans"); + shouldBe("event.currentTarget", "db"); dbCaptureFired = true; } @@ -131,6 +134,8 @@ function completeFiredCallback() shouldBeTrue("dbCaptureFired"); shouldBeFalse("completeFired"); shouldBeFalse("dbBubbleFired2"); + shouldBe("event.target", "trans"); + shouldBe("event.currentTarget", "trans"); completeFired = true; debug(""); done(); diff --git a/LayoutTests/storage/indexeddb/transaction-read-only-expected.txt b/LayoutTests/storage/indexeddb/transaction-read-only-expected.txt index 9d3d668..a5a2b7e 100644 --- a/LayoutTests/storage/indexeddb/transaction-read-only-expected.txt +++ b/LayoutTests/storage/indexeddb/transaction-read-only-expected.txt @@ -5,50 +5,26 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE PASS 'webkitIndexedDB' in window is true PASS webkitIndexedDB == null is false -webkitIndexedDB.open('name') -PASS 'onsuccess' in result is true -PASS 'onerror' in result is true -PASS 'readyState' in result is true -An event should fire shortly... - +webkitIndexedDB.open('transaction-read-only') openSuccess(): -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - -db = event.result +db = event.target.result result = db.setVersion('version 1') -Success event fired: -PASS 'result' in event is true -PASS 'code' in event is false -PASS 'message' in event is false -PASS 'source' in event is true -PASS event.source != null is true -PASS 'onsuccess' in event.target is true -PASS 'onerror' in event.target is true -PASS 'readyState' in event.target is true -PASS event.target.readyState is event.target.DONE - Deleted all object stores. store = db.createObjectStore('store') store.put('x', 'y') trans = db.transaction() Expecting exception from trans.objectStore('store').put('a', 'b') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.READ_ONLY_ERR trans = db.transaction() Expecting exception from trans.objectStore('store').delete('x') +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.READ_ONLY_ERR trans = db.transaction() cur = trans.objectStore('store').openCursor() -PASS !event.result is false -Expecting exception from event.result.delete() +PASS !event.target.result is false +Expecting exception from event.target.result.delete() +PASS Exception was thrown. PASS code is webkitIDBDatabaseException.READ_ONLY_ERR PASS successfullyParsed is true diff --git a/LayoutTests/storage/indexeddb/transaction-read-only.html b/LayoutTests/storage/indexeddb/transaction-read-only.html index fba6b95..5175ec7 100644 --- a/LayoutTests/storage/indexeddb/transaction-read-only.html +++ b/LayoutTests/storage/indexeddb/transaction-read-only.html @@ -19,32 +19,26 @@ function test() shouldBeTrue("'webkitIndexedDB' in window"); shouldBeFalse("webkitIndexedDB == null"); - result = evalAndLog("webkitIndexedDB.open('name')"); - verifyResult(result); - result.onsuccess = openSuccess; - result.onerror = unexpectedErrorCallback; + request = evalAndLog("webkitIndexedDB.open('transaction-read-only')"); + request.onsuccess = openSuccess; + request.onerror = unexpectedErrorCallback; } function openSuccess() { debug("openSuccess():"); - verifySuccessEvent(event); - window.db = evalAndLog("db = event.result"); - result = evalAndLog("result = db.setVersion('version 1')"); - result.onsuccess = cleanDatabase; - result.onerror = unexpectedErrorCallback; + window.db = evalAndLog("db = event.target.result"); + request = evalAndLog("result = db.setVersion('version 1')"); + request.onsuccess = cleanDatabase; + request.onerror = unexpectedErrorCallback; } function cleanDatabase() { - verifySuccessEvent(event); - deleteAllObjectStores(db, setVersionStuff); -} + deleteAllObjectStores(db); -function setVersionStuff() -{ - event.result.oncomplete = setVersionDone; - event.result.onabort = unexpectedAbortCallback; + event.target.result.oncomplete = setVersionDone; + event.target.result.onabort = unexpectedAbortCallback; store = evalAndLog("store = db.createObjectStore('store')"); evalAndLog("store.put('x', 'y')"); } @@ -65,8 +59,8 @@ function setVersionDone() function gotCursor() { - shouldBeFalse("!event.result"); - evalAndExpectException("event.result.delete()", "webkitIDBDatabaseException.READ_ONLY_ERR"); + shouldBeFalse("!event.target.result"); + evalAndExpectException("event.target.result.delete()", "webkitIDBDatabaseException.READ_ONLY_ERR"); done(); } diff --git a/LayoutTests/storage/indexeddb/tutorial.html b/LayoutTests/storage/indexeddb/tutorial.html index 0490df8..8b28987 100644 --- a/LayoutTests/storage/indexeddb/tutorial.html +++ b/LayoutTests/storage/indexeddb/tutorial.html @@ -70,7 +70,7 @@ function start() // "addEventListener" if you'd like, but I'm using the simpler = syntax. Only one or the other // will fire. You're guaranteed that they won't fire until control is returned from JavaScript // execution. - var request = indexedDB.open("myDB"); + var request = indexedDB.open("tutorialDB"); request.onsuccess = onOpen; request.onerror = unexpectedError; } @@ -92,9 +92,10 @@ function unexpectedError() function onOpen() { // If an asynchronous call results in success, a "success" event will fire on the IDBRequest - // object that was returned and the call's result will be placed in the event's "result" - // attribute. In some cases, the expected result will be null. - window.db = event.result; + // object that was returned (i.e. it'll be the event target), which means that you can simply + // look at event.target.result to get the result of the call. In some cases, the expected + // result will be null. + window.db = event.target.result; // The IDBDatabase object has a "version" attribute. This can only be set by calling // "setVersion" on the database and supplying a new version. This also starts a new @@ -113,10 +114,10 @@ function onOpen() function onSetVersion() { // We are now in a setVersion transaction. Such a transaction is the only place where one - // can add or delete indexes and objectStores. The result (property of event) is an + // can add or delete indexes and objectStores. The result (property of the request) is an // IDBTransaction object that has "complete" and "abort" event handlers which tell // us when the transaction has committed, aborted, or timed out. - window.currentTransaction = event.result; + window.currentTransaction = event.target.result; currentTransaction.oncomplete = onSetVersionComplete; currentTransaction.onabort = unexpectedAbort; @@ -292,7 +293,7 @@ function onTransactionAborted() function onPutSuccess() { // Result is the key used for the put. - if (event.result !== 1) + if (event.target.result !== 1) logError("Something went wrong."); // We should be able to request the transaction via event.transaction from within any event handler @@ -323,12 +324,12 @@ function onPutTransactionComplete() function onGetSuccess() { - if (event.result.fname !== "John") + if (event.target.result.fname !== "John") logError("Something went wrong."); - // Events have a .source attribute which is the object that fired the event. In this case, it's our - // "people" objectStore object. - var people = event.source; + // Requests (which are our event target) also have a source attribute that's the object that + // returned the request. In this case, it's our "people" objectStore object. + var people = event.target.source; // Now let's try opening a cursor from id 1 (exclusive/open) to id 3 (inclusive/closed). This means // we'll get the objects for ids 2 and 3. You can also create cursors that are only right or only @@ -346,9 +347,9 @@ function onObjectStoreCursor() { // The result of openCursor is an IDBCursor object or null if there are no (more--see below) // records left. - var cursor = event.result; + var cursor = event.target.result; if (cursor === null) { - cursorComplete(event.source); // The soruce is still an objectStore. + cursorComplete(event.target.source); // The soruce is still an objectStore. return; } @@ -363,7 +364,7 @@ function onObjectStoreCursor() // we MAY prioritize .continue() calls ahead of all other async operations queued up. This will // introduce a level of non-determinism but should speed things up. Mozilla has already implemented // this non-standard behavior, from what I've head. - event.result.continue(); + event.target.result.continue(); } function cursorComplete(objectStore) @@ -383,13 +384,13 @@ function cursorComplete(objectStore) function onIndexGetSuccess() { // Because we did "getKey" the result is the objectStore's key. - if (event.result !== 1) + if (event.target.result !== 1) logError("Something went wrong."); // Similarly, indexes have openCursor and openKeyCursor. We'll try a few of them with various // different IDBKeyRanges just to demonstrate how to use them, but we won't bother to handle // the onsuccess conditions. - var lname = event.source; + var lname = event.target.source; lname.openCursor(IDBKeyRange.lowerBound("Doe", false), IDBCursor.NEXT_NO_DUPLICATE); lname.openCursor(null, IDBCursor.PREV_NO_DUPLICATE); lname.openCursor(IDBKeyRange.upperBound("ZZZZ")); -- cgit v1.1