Modern IDB: Make -private copies of each w3c IDB test.
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Jan 2016 23:15:46 +0000 (23:15 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Jan 2016 23:15:46 +0000 (23:15 +0000)
https://bugs.webkit.org/show_bug.cgi?id=153319

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* indexeddb/support.js: If the test filename ends with -private.htm(l), enable private browsing.

* indexeddb/abort-in-initial-upgradeneeded-private-expected.txt: Added.
* indexeddb/abort-in-initial-upgradeneeded-private.html: Added.
* indexeddb/close-in-upgradeneeded-private-expected.txt: Added.
* indexeddb/close-in-upgradeneeded-private.html: Added.
* indexeddb/cursor-overloads-private-expected.txt: Added.
* indexeddb/cursor-overloads-private.html: Added.
* indexeddb/idb_webworkers-private-expected.txt: Added.
* indexeddb/idb_webworkers-private.html: Added.
* indexeddb/idbcursor-advance-continue-async-private-expected.txt: Added.
* indexeddb/idbcursor-advance-continue-async-private.html: Added.
* indexeddb/idbcursor-advance-invalid-private-expected.txt: Added.
* indexeddb/idbcursor-advance-invalid-private.html: Added.
* indexeddb/idbcursor-advance-private-expected.txt: Added.
* indexeddb/idbcursor-advance-private.html: Added.
* indexeddb/idbcursor-continue-private-expected.txt: Added.
* indexeddb/idbcursor-continue-private.html: Added.
* indexeddb/idbcursor-direction-index-keyrange-private-expected.txt: Added.
* indexeddb/idbcursor-direction-index-keyrange-private.html: Added.
* indexeddb/idbcursor-direction-index-private-expected.txt: Added.
* indexeddb/idbcursor-direction-index-private.html: Added.
* indexeddb/idbcursor-direction-objectstore-keyrange-private-expected.txt: Added.
* indexeddb/idbcursor-direction-objectstore-keyrange-private.html: Added.
* indexeddb/idbcursor-direction-objectstore-private-expected.txt: Added.
* indexeddb/idbcursor-direction-objectstore-private.html: Added.
* indexeddb/idbcursor-direction-private-expected.txt: Added.
* indexeddb/idbcursor-direction-private.html: Added.
* indexeddb/idbcursor-key-private-expected.txt: Added.
* indexeddb/idbcursor-key-private.html: Added.
* indexeddb/idbcursor-primarykey-private-expected.txt: Added.
* indexeddb/idbcursor-primarykey-private.html: Added.
* indexeddb/idbcursor-reused-private-expected.txt: Added.
* indexeddb/idbcursor-reused-private.html: Added.
* indexeddb/idbcursor-source-private-expected.txt: Added.
* indexeddb/idbcursor-source-private.html: Added.
* indexeddb/idbcursor_advance_index-private-expected.txt: Added.
* indexeddb/idbcursor_advance_index-private.html: Added.
* indexeddb/idbcursor_advance_index2-private-expected.txt: Added.
* indexeddb/idbcursor_advance_index2-private.html: Added.
* indexeddb/idbcursor_advance_index3-private-expected.txt: Added.
* indexeddb/idbcursor_advance_index3-private.html: Added.
* indexeddb/idbcursor_advance_index5-private-expected.txt: Added.
* indexeddb/idbcursor_advance_index5-private.html: Added.
* indexeddb/idbcursor_advance_index6-private-expected.txt: Added.
* indexeddb/idbcursor_advance_index6-private.html: Added.
* indexeddb/idbcursor_advance_index7-private-expected.txt: Added.
* indexeddb/idbcursor_advance_index7-private.html: Added.
* indexeddb/idbcursor_advance_index8-private-expected.txt: Added.
* indexeddb/idbcursor_advance_index8-private.html: Added.
* indexeddb/idbcursor_advance_index9-private-expected.txt: Added.
* indexeddb/idbcursor_advance_index9-private.html: Added.
* indexeddb/idbcursor_advance_objectstore-private-expected.txt: Added.
* indexeddb/idbcursor_advance_objectstore-private.html: Added.
* indexeddb/idbcursor_advance_objectstore2-private-expected.txt: Added.
* indexeddb/idbcursor_advance_objectstore2-private.html: Added.
* indexeddb/idbcursor_advance_objectstore3-private-expected.txt: Added.
* indexeddb/idbcursor_advance_objectstore3-private.html: Added.
* indexeddb/idbcursor_advance_objectstore4-private-expected.txt: Added.
* indexeddb/idbcursor_advance_objectstore4-private.html: Added.
* indexeddb/idbcursor_advance_objectstore5-private-expected.txt: Added.
* indexeddb/idbcursor_advance_objectstore5-private.html: Added.
* indexeddb/idbcursor_continue_index-private-expected.txt: Added.
* indexeddb/idbcursor_continue_index-private.html: Added.
* indexeddb/idbcursor_continue_index2-private-expected.txt: Added.
* indexeddb/idbcursor_continue_index2-private.html: Added.
* indexeddb/idbcursor_continue_index3-private-expected.txt: Added.
* indexeddb/idbcursor_continue_index3-private.html: Added.
* indexeddb/idbcursor_continue_index4-private-expected.txt: Added.
* indexeddb/idbcursor_continue_index4-private.html: Added.
* indexeddb/idbcursor_continue_index5-private-expected.txt: Added.
* indexeddb/idbcursor_continue_index5-private.html: Added.
* indexeddb/idbcursor_continue_index6-private-expected.txt: Added.
* indexeddb/idbcursor_continue_index6-private.html: Added.
* indexeddb/idbcursor_continue_index7-private-expected.txt: Added.
* indexeddb/idbcursor_continue_index7-private.html: Added.
* indexeddb/idbcursor_continue_index8-private-expected.txt: Added.
* indexeddb/idbcursor_continue_index8-private.html: Added.
* indexeddb/idbcursor_continue_invalid-private-expected.txt: Added.
* indexeddb/idbcursor_continue_invalid-private.html: Added.
* indexeddb/idbcursor_continue_objectstore-private-expected.txt: Added.
* indexeddb/idbcursor_continue_objectstore-private.html: Added.
* indexeddb/idbcursor_continue_objectstore2-private-expected.txt: Added.
* indexeddb/idbcursor_continue_objectstore2-private.html: Added.
* indexeddb/idbcursor_continue_objectstore3-private-expected.txt: Added.
* indexeddb/idbcursor_continue_objectstore3-private.html: Added.
* indexeddb/idbcursor_continue_objectstore4-private-expected.txt: Added.
* indexeddb/idbcursor_continue_objectstore4-private.html: Added.
* indexeddb/idbcursor_continue_objectstore5-private-expected.txt: Added.
* indexeddb/idbcursor_continue_objectstore5-private.html: Added.
* indexeddb/idbcursor_continue_objectstore6-private-expected.txt: Added.
* indexeddb/idbcursor_continue_objectstore6-private.html: Added.
* indexeddb/idbcursor_delete_index-private-expected.txt: Added.
* indexeddb/idbcursor_delete_index-private.html: Added.
* indexeddb/idbcursor_delete_index2-private-expected.txt: Added.
* indexeddb/idbcursor_delete_index2-private.html: Added.
* indexeddb/idbcursor_delete_index3-private-expected.txt: Added.
* indexeddb/idbcursor_delete_index3-private.html: Added.
* indexeddb/idbcursor_delete_index4-private-expected.txt: Added.
* indexeddb/idbcursor_delete_index4-private.html: Added.
* indexeddb/idbcursor_delete_index5-private-expected.txt: Added.
* indexeddb/idbcursor_delete_index5-private.html: Added.
* indexeddb/idbcursor_delete_objectstore-private-expected.txt: Added.
* indexeddb/idbcursor_delete_objectstore-private.html: Added.
* indexeddb/idbcursor_delete_objectstore2-private-expected.txt: Added.
* indexeddb/idbcursor_delete_objectstore2-private.html: Added.
* indexeddb/idbcursor_delete_objectstore3-private-expected.txt: Added.
* indexeddb/idbcursor_delete_objectstore3-private.html: Added.
* indexeddb/idbcursor_delete_objectstore4-private-expected.txt: Added.
* indexeddb/idbcursor_delete_objectstore4-private.html: Added.
* indexeddb/idbcursor_delete_objectstore5-private-expected.txt: Added.
* indexeddb/idbcursor_delete_objectstore5-private.html: Added.
* indexeddb/idbcursor_iterating-private-expected.txt: Added.
* indexeddb/idbcursor_iterating-private.html: Added.
* indexeddb/idbcursor_iterating_index-private-expected.txt: Added.
* indexeddb/idbcursor_iterating_index-private.html: Added.
* indexeddb/idbcursor_iterating_index2-private-expected.txt: Added.
* indexeddb/idbcursor_iterating_index2-private.html: Added.
* indexeddb/idbcursor_iterating_objectstore-private-expected.txt: Added.
* indexeddb/idbcursor_iterating_objectstore-private.html: Added.
* indexeddb/idbcursor_iterating_objectstore2-private-expected.txt: Added.
* indexeddb/idbcursor_iterating_objectstore2-private.html: Added.
* indexeddb/idbcursor_update_index-private-expected.txt: Added.
* indexeddb/idbcursor_update_index-private.html: Added.
* indexeddb/idbcursor_update_index2-private-expected.txt: Added.
* indexeddb/idbcursor_update_index2-private.html: Added.
* indexeddb/idbcursor_update_index3-private-expected.txt: Added.
* indexeddb/idbcursor_update_index3-private.html: Added.
* indexeddb/idbcursor_update_index4-private-expected.txt: Added.
* indexeddb/idbcursor_update_index4-private.html: Added.
* indexeddb/idbcursor_update_index5-private-expected.txt: Added.
* indexeddb/idbcursor_update_index5-private.html: Added.
* indexeddb/idbcursor_update_index6-private-expected.txt: Added.
* indexeddb/idbcursor_update_index6-private.html: Added.
* indexeddb/idbcursor_update_index7-private-expected.txt: Added.
* indexeddb/idbcursor_update_index7-private.html: Added.
* indexeddb/idbcursor_update_objectstore-private-expected.txt: Added.
* indexeddb/idbcursor_update_objectstore-private.html: Added.
* indexeddb/idbcursor_update_objectstore2-private-expected.txt: Added.
* indexeddb/idbcursor_update_objectstore2-private.html: Added.
* indexeddb/idbcursor_update_objectstore3-private-expected.txt: Added.
* indexeddb/idbcursor_update_objectstore3-private.html: Added.
* indexeddb/idbcursor_update_objectstore4-private-expected.txt: Added.
* indexeddb/idbcursor_update_objectstore4-private.html: Added.
* indexeddb/idbcursor_update_objectstore5-private-expected.txt: Added.
* indexeddb/idbcursor_update_objectstore5-private.html: Added.
* indexeddb/idbcursor_update_objectstore6-private-expected.txt: Added.
* indexeddb/idbcursor_update_objectstore6-private.html: Added.
* indexeddb/idbcursor_update_objectstore7-private-expected.txt: Added.
* indexeddb/idbcursor_update_objectstore7-private.html: Added.
* indexeddb/idbcursor_update_objectstore8-private-expected.txt: Added.
* indexeddb/idbcursor_update_objectstore8-private.html: Added.
* indexeddb/idbdatabase_close-private-expected.txt: Added.
* indexeddb/idbdatabase_close-private.html: Added.
* indexeddb/idbdatabase_close2-private-expected.txt: Added.
* indexeddb/idbdatabase_close2-private.html: Added.
* indexeddb/idbdatabase_createObjectStore-createIndex-emptyname-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore-createIndex-emptyname-private.html: Added.
* indexeddb/idbdatabase_createObjectStore-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore-private.html: Added.
* indexeddb/idbdatabase_createObjectStore10-1000ends-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore10-1000ends-private.html: Added.
* indexeddb/idbdatabase_createObjectStore10-emptyname-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore10-emptyname-private.html: Added.
* indexeddb/idbdatabase_createObjectStore11-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore11-private.html: Added.
* indexeddb/idbdatabase_createObjectStore2-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore2-private.html: Added.
* indexeddb/idbdatabase_createObjectStore3-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore3-private.html: Added.
* indexeddb/idbdatabase_createObjectStore4-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore4-private.html: Added.
* indexeddb/idbdatabase_createObjectStore5-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore5-private.html: Added.
* indexeddb/idbdatabase_createObjectStore6-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore6-private.html: Added.
* indexeddb/idbdatabase_createObjectStore7-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore7-private.html: Added.
* indexeddb/idbdatabase_createObjectStore8-parameters-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore8-parameters-private.html: Added.
* indexeddb/idbdatabase_createObjectStore9-invalidparameters-private-expected.txt: Added.
* indexeddb/idbdatabase_createObjectStore9-invalidparameters-private.html: Added.
* indexeddb/idbdatabase_deleteObjectStore-private-expected.txt: Added.
* indexeddb/idbdatabase_deleteObjectStore-private.html: Added.
* indexeddb/idbdatabase_deleteObjectStore2-private-expected.txt: Added.
* indexeddb/idbdatabase_deleteObjectStore2-private.html: Added.
* indexeddb/idbdatabase_deleteObjectStore3-private-expected.txt: Added.
* indexeddb/idbdatabase_deleteObjectStore3-private.html: Added.
* indexeddb/idbdatabase_deleteObjectStore4-not_reused-private-expected.txt: Added.
* indexeddb/idbdatabase_deleteObjectStore4-not_reused-private.html: Added.
* indexeddb/idbdatabase_transaction-private-expected.txt: Added.
* indexeddb/idbdatabase_transaction-private.html: Added.
* indexeddb/idbdatabase_transaction2-private-expected.txt: Added.
* indexeddb/idbdatabase_transaction2-private.html: Added.
* indexeddb/idbdatabase_transaction3-private-expected.txt: Added.
* indexeddb/idbdatabase_transaction3-private.html: Added.
* indexeddb/idbdatabase_transaction4-private-expected.txt: Added.
* indexeddb/idbdatabase_transaction4-private.html: Added.
* indexeddb/idbdatabase_transaction5-private-expected.txt: Added.
* indexeddb/idbdatabase_transaction5-private.html: Added.
* indexeddb/idbfactory_cmp-private-expected.txt: Added.
* indexeddb/idbfactory_cmp-private.html: Added.
* indexeddb/idbfactory_cmp2-private-expected.txt: Added.
* indexeddb/idbfactory_cmp2-private.html: Added.
* indexeddb/idbfactory_deleteDatabase-private-expected.txt: Added.
* indexeddb/idbfactory_deleteDatabase-private.html: Added.
* indexeddb/idbfactory_deleteDatabase2-private-expected.txt: Added.
* indexeddb/idbfactory_deleteDatabase2-private.html: Added.
* indexeddb/idbfactory_deleteDatabase3-private-expected.txt: Added.
* indexeddb/idbfactory_deleteDatabase3-private.html: Added.
* indexeddb/idbfactory_deleteDatabase4-private-expected.txt: Added.
* indexeddb/idbfactory_deleteDatabase4-private.html: Added.
* indexeddb/idbfactory_open-private-expected.txt: Added.
* indexeddb/idbfactory_open-private.html: Added.
* indexeddb/idbfactory_open10-private-expected.txt: Added.
* indexeddb/idbfactory_open10-private.html: Added.
* indexeddb/idbfactory_open11-private-expected.txt: Added.
* indexeddb/idbfactory_open11-private.html: Added.
* indexeddb/idbfactory_open12-private-expected.txt: Added.
* indexeddb/idbfactory_open12-private.html: Added.
* indexeddb/idbfactory_open2-private-expected.txt: Added.
* indexeddb/idbfactory_open2-private.html: Added.
* indexeddb/idbfactory_open3-private-expected.txt: Added.
* indexeddb/idbfactory_open3-private.html: Added.
* indexeddb/idbfactory_open4-private-expected.txt: Added.
* indexeddb/idbfactory_open4-private.html: Added.
* indexeddb/idbfactory_open5-private-expected.txt: Added.
* indexeddb/idbfactory_open5-private.html: Added.
* indexeddb/idbfactory_open6-private-expected.txt: Added.
* indexeddb/idbfactory_open6-private.html: Added.
* indexeddb/idbfactory_open7-private-expected.txt: Added.
* indexeddb/idbfactory_open7-private.html: Added.
* indexeddb/idbfactory_open8-private-expected.txt: Added.
* indexeddb/idbfactory_open8-private.html: Added.
* indexeddb/idbfactory_open9-private-expected.txt: Added.
* indexeddb/idbfactory_open9-private.html: Copied from LayoutTests/imported/w3c/indexeddb/idbfactory_open9.htm.
* indexeddb/idbfactory_open9.htm:
* indexeddb/idbindex-multientry-arraykeypath-private-expected.txt: Added.
* indexeddb/idbindex-multientry-arraykeypath-private.html: Added.
* indexeddb/idbindex-multientry-big-private-expected.txt: Added.
* indexeddb/idbindex-multientry-big-private.html: Added.
* indexeddb/idbindex-multientry-private-expected.txt: Added.
* indexeddb/idbindex-multientry-private.html: Added.
* indexeddb/idbindex_count-private-expected.txt: Added.
* indexeddb/idbindex_count-private.html: Added.
* indexeddb/idbindex_count2-private-expected.txt: Added.
* indexeddb/idbindex_count2-private.html: Added.
* indexeddb/idbindex_count3-private-expected.txt: Added.
* indexeddb/idbindex_count3-private.html: Added.
* indexeddb/idbindex_count4-private-expected.txt: Added.
* indexeddb/idbindex_count4-private.html: Added.
* indexeddb/idbindex_get-private-expected.txt: Added.
* indexeddb/idbindex_get-private.html: Added.
* indexeddb/idbindex_get2-private-expected.txt: Added.
* indexeddb/idbindex_get2-private.html: Added.
* indexeddb/idbindex_get3-private-expected.txt: Added.
* indexeddb/idbindex_get3-private.html: Added.
* indexeddb/idbindex_get4-private-expected.txt: Added.
* indexeddb/idbindex_get4-private.html: Added.
* indexeddb/idbindex_get5-private-expected.txt: Added.
* indexeddb/idbindex_get5-private.html: Added.
* indexeddb/idbindex_get6-private-expected.txt: Added.
* indexeddb/idbindex_get6-private.html: Added.
* indexeddb/idbindex_get7-private-expected.txt: Added.
* indexeddb/idbindex_get7-private.html: Added.
* indexeddb/idbindex_getKey-private-expected.txt: Added.
* indexeddb/idbindex_getKey-private.html: Added.
* indexeddb/idbindex_getKey2-private-expected.txt: Added.
* indexeddb/idbindex_getKey2-private.html: Added.
* indexeddb/idbindex_getKey3-private-expected.txt: Added.
* indexeddb/idbindex_getKey3-private.html: Added.
* indexeddb/idbindex_getKey4-private-expected.txt: Added.
* indexeddb/idbindex_getKey4-private.html: Added.
* indexeddb/idbindex_getKey5-private-expected.txt: Added.
* indexeddb/idbindex_getKey5-private.html: Added.
* indexeddb/idbindex_getKey6-private-expected.txt: Added.
* indexeddb/idbindex_getKey6-private.html: Added.
* indexeddb/idbindex_getKey7-private-expected.txt: Added.
* indexeddb/idbindex_getKey7-private.html: Added.
* indexeddb/idbindex_indexNames-private-expected.txt: Added.
* indexeddb/idbindex_indexNames-private.html: Added.
* indexeddb/idbindex_openCursor-private-expected.txt: Added.
* indexeddb/idbindex_openCursor-private.html: Added.
* indexeddb/idbindex_openCursor2-private-expected.txt: Added.
* indexeddb/idbindex_openCursor2-private.html: Added.
* indexeddb/idbindex_openKeyCursor-private-expected.txt: Added.
* indexeddb/idbindex_openKeyCursor-private.html: Added.
* indexeddb/idbindex_openKeyCursor2-private-expected.txt: Added.
* indexeddb/idbindex_openKeyCursor2-private.html: Added.
* indexeddb/idbindex_openKeyCursor3-private-expected.txt: Added.
* indexeddb/idbindex_openKeyCursor3-private.html: Added.
* indexeddb/idbkeyrange-private-expected.txt: Added.
* indexeddb/idbkeyrange-private.html: Added.
* indexeddb/idbkeyrange_incorrect-private-expected.txt: Added.
* indexeddb/idbkeyrange_incorrect-private.html: Added.
* indexeddb/idbobjectstore_add-private-expected.txt: Added.
* indexeddb/idbobjectstore_add-private.html: Added.
* indexeddb/idbobjectstore_add10-private-expected.txt: Added.
* indexeddb/idbobjectstore_add10-private.html: Added.
* indexeddb/idbobjectstore_add11-private-expected.txt: Added.
* indexeddb/idbobjectstore_add11-private.html: Added.
* indexeddb/idbobjectstore_add12-private-expected.txt: Added.
* indexeddb/idbobjectstore_add12-private.html: Added.
* indexeddb/idbobjectstore_add13-private-expected.txt: Added.
* indexeddb/idbobjectstore_add13-private.html: Added.
* indexeddb/idbobjectstore_add14-private-expected.txt: Added.
* indexeddb/idbobjectstore_add14-private.html: Added.
* indexeddb/idbobjectstore_add15-private-expected.txt: Added.
* indexeddb/idbobjectstore_add15-private.html: Added.
* indexeddb/idbobjectstore_add16-private-expected.txt: Added.
* indexeddb/idbobjectstore_add16-private.html: Added.
* indexeddb/idbobjectstore_add2-private-expected.txt: Added.
* indexeddb/idbobjectstore_add2-private.html: Added.
* indexeddb/idbobjectstore_add3-private-expected.txt: Added.
* indexeddb/idbobjectstore_add3-private.html: Added.
* indexeddb/idbobjectstore_add4-private-expected.txt: Added.
* indexeddb/idbobjectstore_add4-private.html: Added.
* indexeddb/idbobjectstore_add5-private-expected.txt: Added.
* indexeddb/idbobjectstore_add5-private.html: Added.
* indexeddb/idbobjectstore_add6-private-expected.txt: Added.
* indexeddb/idbobjectstore_add6-private.html: Added.
* indexeddb/idbobjectstore_add7-private-expected.txt: Added.
* indexeddb/idbobjectstore_add7-private.html: Added.
* indexeddb/idbobjectstore_add8-private-expected.txt: Added.
* indexeddb/idbobjectstore_add8-private.html: Added.
* indexeddb/idbobjectstore_add9-private-expected.txt: Added.
* indexeddb/idbobjectstore_add9-private.html: Added.
* indexeddb/idbobjectstore_clear-private-expected.txt: Added.
* indexeddb/idbobjectstore_clear-private.html: Added.
* indexeddb/idbobjectstore_clear2-private-expected.txt: Added.
* indexeddb/idbobjectstore_clear2-private.html: Added.
* indexeddb/idbobjectstore_clear3-private-expected.txt: Added.
* indexeddb/idbobjectstore_clear3-private.html: Added.
* indexeddb/idbobjectstore_clear4-private-expected.txt: Added.
* indexeddb/idbobjectstore_clear4-private.html: Added.
* indexeddb/idbobjectstore_count-private-expected.txt: Added.
* indexeddb/idbobjectstore_count-private.html: Added.
* indexeddb/idbobjectstore_count2-private-expected.txt: Added.
* indexeddb/idbobjectstore_count2-private.html: Added.
* indexeddb/idbobjectstore_count3-private-expected.txt: Added.
* indexeddb/idbobjectstore_count3-private.html: Added.
* indexeddb/idbobjectstore_count4-private-expected.txt: Added.
* indexeddb/idbobjectstore_count4-private.html: Added.
* indexeddb/idbobjectstore_createIndex-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex-private.html: Added.
* indexeddb/idbobjectstore_createIndex10-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex10-private.html: Added.
* indexeddb/idbobjectstore_createIndex11-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex11-private.html: Added.
* indexeddb/idbobjectstore_createIndex12-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex12-private.html: Added.
* indexeddb/idbobjectstore_createIndex13-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex13-private.html: Added.
* indexeddb/idbobjectstore_createIndex2-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex2-private.html: Added.
* indexeddb/idbobjectstore_createIndex3-usable-right-away-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex3-usable-right-away-private.html: Added.
* indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-private.html: Added.
* indexeddb/idbobjectstore_createIndex5-emptykeypath-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex5-emptykeypath-private.html: Added.
* indexeddb/idbobjectstore_createIndex6-event_order-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex6-event_order-private.html: Added.
* indexeddb/idbobjectstore_createIndex7-event_order-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex7-event_order-private.html: Added.
* indexeddb/idbobjectstore_createIndex8-valid_keys-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex8-valid_keys-private.html: Added.
* indexeddb/idbobjectstore_createIndex9-emptyname-private-expected.txt: Added.
* indexeddb/idbobjectstore_createIndex9-emptyname-private.html: Added.
* indexeddb/idbobjectstore_delete-private-expected.txt: Added.
* indexeddb/idbobjectstore_delete-private.html: Added.
* indexeddb/idbobjectstore_delete2-private-expected.txt: Added.
* indexeddb/idbobjectstore_delete2-private.html: Added.
* indexeddb/idbobjectstore_delete3-private-expected.txt: Added.
* indexeddb/idbobjectstore_delete3-private.html: Added.
* indexeddb/idbobjectstore_delete4-private-expected.txt: Added.
* indexeddb/idbobjectstore_delete4-private.html: Added.
* indexeddb/idbobjectstore_delete5-private-expected.txt: Added.
* indexeddb/idbobjectstore_delete5-private.html: Added.
* indexeddb/idbobjectstore_delete6-private-expected.txt: Added.
* indexeddb/idbobjectstore_delete6-private.html: Added.
* indexeddb/idbobjectstore_delete7-private-expected.txt: Added.
* indexeddb/idbobjectstore_delete7-private.html: Added.
* indexeddb/idbobjectstore_deleteIndex-private-expected.txt: Added.
* indexeddb/idbobjectstore_deleteIndex-private.html: Added.
* indexeddb/idbobjectstore_deleted-private-expected.txt: Added.
* indexeddb/idbobjectstore_deleted-private.html: Added.
* indexeddb/idbobjectstore_get-private-expected.txt: Added.
* indexeddb/idbobjectstore_get-private.html: Added.
* indexeddb/idbobjectstore_get2-private-expected.txt: Added.
* indexeddb/idbobjectstore_get2-private.html: Added.
* indexeddb/idbobjectstore_get3-private-expected.txt: Added.
* indexeddb/idbobjectstore_get3-private.html: Added.
* indexeddb/idbobjectstore_get4-private-expected.txt: Added.
* indexeddb/idbobjectstore_get4-private.html: Added.
* indexeddb/idbobjectstore_get5-private-expected.txt: Added.
* indexeddb/idbobjectstore_get5-private.html: Added.
* indexeddb/idbobjectstore_get6-private-expected.txt: Added.
* indexeddb/idbobjectstore_get6-private.html: Added.
* indexeddb/idbobjectstore_get7-private-expected.txt: Added.
* indexeddb/idbobjectstore_get7-private.html: Added.
* indexeddb/idbobjectstore_index-private-expected.txt: Added.
* indexeddb/idbobjectstore_index-private.html: Added.
* indexeddb/idbobjectstore_openCursor-private-expected.txt: Added.
* indexeddb/idbobjectstore_openCursor-private.html: Added.
* indexeddb/idbobjectstore_openCursor_invalid-private-expected.txt: Added.
* indexeddb/idbobjectstore_openCursor_invalid-private.html: Added.
* indexeddb/idbobjectstore_put-private-expected.txt: Added.
* indexeddb/idbobjectstore_put-private.html: Added.
* indexeddb/idbobjectstore_put10-private-expected.txt: Added.
* indexeddb/idbobjectstore_put10-private.html: Added.
* indexeddb/idbobjectstore_put11-private-expected.txt: Added.
* indexeddb/idbobjectstore_put11-private.html: Added.
* indexeddb/idbobjectstore_put12-private-expected.txt: Added.
* indexeddb/idbobjectstore_put12-private.html: Added.
* indexeddb/idbobjectstore_put13-private-expected.txt: Added.
* indexeddb/idbobjectstore_put13-private.html: Added.
* indexeddb/idbobjectstore_put14-private-expected.txt: Added.
* indexeddb/idbobjectstore_put14-private.html: Added.
* indexeddb/idbobjectstore_put15-private-expected.txt: Added.
* indexeddb/idbobjectstore_put15-private.html: Added.
* indexeddb/idbobjectstore_put16-private-expected.txt: Added.
* indexeddb/idbobjectstore_put16-private.html: Added.
* indexeddb/idbobjectstore_put2-private-expected.txt: Added.
* indexeddb/idbobjectstore_put2-private.html: Added.
* indexeddb/idbobjectstore_put3-private-expected.txt: Added.
* indexeddb/idbobjectstore_put3-private.html: Added.
* indexeddb/idbobjectstore_put4-private-expected.txt: Added.
* indexeddb/idbobjectstore_put4-private.html: Added.
* indexeddb/idbobjectstore_put5-private-expected.txt: Added.
* indexeddb/idbobjectstore_put5-private.html: Added.
* indexeddb/idbobjectstore_put6-private-expected.txt: Added.
* indexeddb/idbobjectstore_put6-private.html: Added.
* indexeddb/idbobjectstore_put7-private-expected.txt: Added.
* indexeddb/idbobjectstore_put7-private.html: Added.
* indexeddb/idbobjectstore_put8-private-expected.txt: Added.
* indexeddb/idbobjectstore_put8-private.html: Added.
* indexeddb/idbobjectstore_put9-private-expected.txt: Added.
* indexeddb/idbobjectstore_put9-private.html: Added.
* indexeddb/idbtransaction-oncomplete-private-expected.txt: Added.
* indexeddb/idbtransaction-oncomplete-private.html: Added.
* indexeddb/idbtransaction-private-expected.txt: Added.
* indexeddb/idbtransaction-private.html: Added.
* indexeddb/idbtransaction_abort-private-expected.txt: Added.
* indexeddb/idbtransaction_abort-private.html: Added.
* indexeddb/idbversionchangeevent-private-expected.txt: Added.
* indexeddb/idbversionchangeevent-private.html: Added.
* indexeddb/index_sort_order-private-expected.txt: Added.
* indexeddb/index_sort_order-private.html: Added.
* indexeddb/key_invalid-private-expected.txt: Added.
* indexeddb/key_invalid-private.html: Added.
* indexeddb/key_valid-private-expected.txt: Added.
* indexeddb/key_valid-private.html: Added.
* indexeddb/keygenerator-constrainterror-private-expected.txt: Added.
* indexeddb/keygenerator-constrainterror-private.html: Added.
* indexeddb/keygenerator-overflow-private-expected.txt: Added.
* indexeddb/keygenerator-overflow-private.html: Added.
* indexeddb/keygenerator-private-expected.txt: Added.
* indexeddb/keygenerator-private.html: Added.
* indexeddb/keyorder-private-expected.txt: Added.
* indexeddb/keyorder-private.html: Added.
* indexeddb/keypath-private-expected.txt: Added.
* indexeddb/keypath-private.html: Added.
* indexeddb/keypath_invalid-private-expected.txt: Added.
* indexeddb/keypath_invalid-private.html: Added.
* indexeddb/keypath_maxsize-private-expected.txt: Added.
* indexeddb/keypath_maxsize-private.html: Added.
* indexeddb/list_ordering-private-expected.txt: Added.
* indexeddb/list_ordering-private.html: Added.
* indexeddb/objectstore_keyorder-private-expected.txt: Added.
* indexeddb/objectstore_keyorder-private.html: Added.
* indexeddb/request_bubble-and-capture-private-expected.txt: Added.
* indexeddb/request_bubble-and-capture-private.html: Added.
* indexeddb/string-list-ordering-private-expected.txt: Added.
* indexeddb/string-list-ordering-private.html: Added.
* indexeddb/transaction-create_in_versionchange-private-expected.txt: Added.
* indexeddb/transaction-create_in_versionchange-private.html: Added.
* indexeddb/transaction-lifetime-blocked-private-expected.txt: Added.
* indexeddb/transaction-lifetime-blocked-private.html: Added.
* indexeddb/transaction-lifetime-private-expected.txt: Added.
* indexeddb/transaction-lifetime-private.html: Added.
* indexeddb/transaction-requestqueue-private-expected.txt: Added.
* indexeddb/transaction-requestqueue-private.html: Added.
* indexeddb/transaction_bubble-and-capture-private-expected.txt: Added.
* indexeddb/transaction_bubble-and-capture-private.html: Added.
* indexeddb/value-private-expected.txt: Added.
* indexeddb/value-private.html: Added.
* indexeddb/value_recursive-private-expected.txt: Added.
* indexeddb/value_recursive-private.html: Added.
* indexeddb/writer-starvation-private-expected.txt: Added.
* indexeddb/writer-starvation-private.html: Added.

LayoutTests:

* platform/wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@195423 268f45cc-cd09-0410-ab3c-d52691b4dbfc

493 files changed:
LayoutTests/ChangeLog
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/indexeddb/abort-in-initial-upgradeneeded-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/abort-in-initial-upgradeneeded-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/close-in-upgradeneeded-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/close-in-upgradeneeded-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/cursor-overloads-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/cursor-overloads-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idb_webworkers-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idb_webworkers-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-advance-continue-async-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-advance-continue-async-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-advance-invalid-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-advance-invalid-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-advance-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-advance-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-continue-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-continue-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-keyrange-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-keyrange-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-keyrange-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-keyrange-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-direction-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-direction-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-key-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-key-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-primarykey-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-primarykey-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-reused-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-reused-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-source-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor-source-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index8-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index8-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index9-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index9-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index8-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index8-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_invalid-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_invalid-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_iterating-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_iterating-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_iterating_index-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_iterating_index-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_iterating_index2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_iterating_index2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_iterating_objectstore-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_iterating_objectstore-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_iterating_objectstore2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_iterating_objectstore2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_index7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore8-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbcursor_update_objectstore8-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_close-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_close-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_close2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_close2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore-createIndex-emptyname-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore-createIndex-emptyname-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore10-1000ends-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore10-1000ends-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore10-emptyname-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore10-emptyname-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore11-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore11-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore8-parameters-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore8-parameters-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore9-invalidparameters-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_createObjectStore9-invalidparameters-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_deleteObjectStore-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_deleteObjectStore-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_deleteObjectStore2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_deleteObjectStore2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_deleteObjectStore3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_deleteObjectStore3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_deleteObjectStore4-not_reused-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_deleteObjectStore4-not_reused-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_transaction-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_transaction-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_transaction2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_transaction2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_transaction3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_transaction3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_transaction4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_transaction4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_transaction5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbdatabase_transaction5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_cmp-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_cmp-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_cmp2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_cmp2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_deleteDatabase-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_deleteDatabase-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_deleteDatabase2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_deleteDatabase2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_deleteDatabase3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_deleteDatabase3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_deleteDatabase4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_deleteDatabase4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open10-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open10-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open11-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open11-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open12-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open12-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open8-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open8-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open9-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open9-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbfactory_open9.htm
LayoutTests/imported/w3c/indexeddb/idbindex-multientry-arraykeypath-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex-multientry-arraykeypath-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex-multientry-big-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex-multientry-big-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex-multientry-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex-multientry-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_count-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_count-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_count2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_count2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_count3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_count3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_count4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_count4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_get7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_getKey7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_indexNames-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_indexNames-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_openCursor-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_openCursor-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_openCursor2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_openCursor2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_openKeyCursor-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_openKeyCursor-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_openKeyCursor2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_openKeyCursor2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_openKeyCursor3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbindex_openKeyCursor3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbkeyrange-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbkeyrange-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbkeyrange_incorrect-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbkeyrange_incorrect-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add10-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add10-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add11-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add11-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add12-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add12-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add13-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add13-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add14-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add14-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add15-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add15-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add16-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add16-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add8-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add8-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add9-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_add9-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_clear-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_clear-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_clear2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_clear2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_clear3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_clear3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_clear4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_clear4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_count-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_count-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_count2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_count2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_count3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_count3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_count4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_count4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex10-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex10-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex11-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex11-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex12-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex12-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex13-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex13-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex3-usable-right-away-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex3-usable-right-away-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex5-emptykeypath-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex5-emptykeypath-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex6-event_order-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex6-event_order-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex7-event_order-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex7-event_order-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex8-valid_keys-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex8-valid_keys-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex9-emptyname-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex9-emptyname-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_delete7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_deleteIndex-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_deleteIndex-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_deleted-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_deleted-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_get7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_index-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_index-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_openCursor-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_openCursor-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_openCursor_invalid-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_openCursor_invalid-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put10-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put10-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put11-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put11-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put12-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put12-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put13-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put13-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put14-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put14-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put15-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put15-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put16-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put16-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put2-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put2-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put3-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put3-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put4-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put4-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put5-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put5-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put6-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put6-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put7-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put7-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put8-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put8-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put9-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbobjectstore_put9-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbtransaction-oncomplete-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbtransaction-oncomplete-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbtransaction-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbtransaction-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbtransaction_abort-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbtransaction_abort-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbversionchangeevent-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/idbversionchangeevent-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/index_sort_order-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/index_sort_order-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/key_invalid-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/key_invalid-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/key_valid-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/key_valid-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keygenerator-constrainterror-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keygenerator-constrainterror-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keygenerator-overflow-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keygenerator-overflow-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keygenerator-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keygenerator-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keyorder-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keyorder-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keypath-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keypath-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keypath_invalid-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keypath_invalid-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keypath_maxsize-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/keypath_maxsize-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/list_ordering-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/list_ordering-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/objectstore_keyorder-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/objectstore_keyorder-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/request_bubble-and-capture-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/request_bubble-and-capture-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/string-list-ordering-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/string-list-ordering-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/support.js
LayoutTests/imported/w3c/indexeddb/transaction-create_in_versionchange-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/transaction-create_in_versionchange-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/transaction-lifetime-blocked-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/transaction-lifetime-blocked-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/transaction-lifetime-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/transaction-lifetime-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/transaction-requestqueue-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/transaction-requestqueue-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/transaction_bubble-and-capture-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/transaction_bubble-and-capture-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/value-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/value-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/value_recursive-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/value_recursive-private.html [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/writer-starvation-private-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/indexeddb/writer-starvation-private.html [new file with mode: 0644]
LayoutTests/platform/wk2/TestExpectations

index c96e949..887a6d2 100644 (file)
@@ -1,3 +1,12 @@
+2016-01-21  Brady Eidson  <beidson@apple.com>
+
+        Modern IDB: Make -private copies of each w3c IDB test.
+        https://bugs.webkit.org/show_bug.cgi?id=153319
+
+        Reviewed by Alex Christensen.
+
+        * platform/wk2/TestExpectations:
+
 2016-01-21  Ryan Haddad  <ryanhaddad@apple.com>
 
         Remove a ios-simulator-wk2 specific expectation file since the results are identical on wk1 and wk2
index 23d5eca..e3d0b55 100644 (file)
@@ -1,3 +1,502 @@
+2016-01-21  Brady Eidson  <beidson@apple.com>
+
+        Modern IDB: Make -private copies of each w3c IDB test.
+        https://bugs.webkit.org/show_bug.cgi?id=153319
+
+        Reviewed by Alex Christensen.
+
+        * indexeddb/support.js: If the test filename ends with -private.htm(l), enable private browsing.
+
+        * indexeddb/abort-in-initial-upgradeneeded-private-expected.txt: Added.
+        * indexeddb/abort-in-initial-upgradeneeded-private.html: Added.
+        * indexeddb/close-in-upgradeneeded-private-expected.txt: Added.
+        * indexeddb/close-in-upgradeneeded-private.html: Added.
+        * indexeddb/cursor-overloads-private-expected.txt: Added.
+        * indexeddb/cursor-overloads-private.html: Added.
+        * indexeddb/idb_webworkers-private-expected.txt: Added.
+        * indexeddb/idb_webworkers-private.html: Added.
+        * indexeddb/idbcursor-advance-continue-async-private-expected.txt: Added.
+        * indexeddb/idbcursor-advance-continue-async-private.html: Added.
+        * indexeddb/idbcursor-advance-invalid-private-expected.txt: Added.
+        * indexeddb/idbcursor-advance-invalid-private.html: Added.
+        * indexeddb/idbcursor-advance-private-expected.txt: Added.
+        * indexeddb/idbcursor-advance-private.html: Added.
+        * indexeddb/idbcursor-continue-private-expected.txt: Added.
+        * indexeddb/idbcursor-continue-private.html: Added.
+        * indexeddb/idbcursor-direction-index-keyrange-private-expected.txt: Added.
+        * indexeddb/idbcursor-direction-index-keyrange-private.html: Added.
+        * indexeddb/idbcursor-direction-index-private-expected.txt: Added.
+        * indexeddb/idbcursor-direction-index-private.html: Added.
+        * indexeddb/idbcursor-direction-objectstore-keyrange-private-expected.txt: Added.
+        * indexeddb/idbcursor-direction-objectstore-keyrange-private.html: Added.
+        * indexeddb/idbcursor-direction-objectstore-private-expected.txt: Added.
+        * indexeddb/idbcursor-direction-objectstore-private.html: Added.
+        * indexeddb/idbcursor-direction-private-expected.txt: Added.
+        * indexeddb/idbcursor-direction-private.html: Added.
+        * indexeddb/idbcursor-key-private-expected.txt: Added.
+        * indexeddb/idbcursor-key-private.html: Added.
+        * indexeddb/idbcursor-primarykey-private-expected.txt: Added.
+        * indexeddb/idbcursor-primarykey-private.html: Added.
+        * indexeddb/idbcursor-reused-private-expected.txt: Added.
+        * indexeddb/idbcursor-reused-private.html: Added.
+        * indexeddb/idbcursor-source-private-expected.txt: Added.
+        * indexeddb/idbcursor-source-private.html: Added.
+        * indexeddb/idbcursor_advance_index-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_index-private.html: Added.
+        * indexeddb/idbcursor_advance_index2-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_index2-private.html: Added.
+        * indexeddb/idbcursor_advance_index3-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_index3-private.html: Added.
+        * indexeddb/idbcursor_advance_index5-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_index5-private.html: Added.
+        * indexeddb/idbcursor_advance_index6-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_index6-private.html: Added.
+        * indexeddb/idbcursor_advance_index7-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_index7-private.html: Added.
+        * indexeddb/idbcursor_advance_index8-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_index8-private.html: Added.
+        * indexeddb/idbcursor_advance_index9-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_index9-private.html: Added.
+        * indexeddb/idbcursor_advance_objectstore-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_objectstore-private.html: Added.
+        * indexeddb/idbcursor_advance_objectstore2-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_objectstore2-private.html: Added.
+        * indexeddb/idbcursor_advance_objectstore3-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_objectstore3-private.html: Added.
+        * indexeddb/idbcursor_advance_objectstore4-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_objectstore4-private.html: Added.
+        * indexeddb/idbcursor_advance_objectstore5-private-expected.txt: Added.
+        * indexeddb/idbcursor_advance_objectstore5-private.html: Added.
+        * indexeddb/idbcursor_continue_index-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_index-private.html: Added.
+        * indexeddb/idbcursor_continue_index2-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_index2-private.html: Added.
+        * indexeddb/idbcursor_continue_index3-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_index3-private.html: Added.
+        * indexeddb/idbcursor_continue_index4-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_index4-private.html: Added.
+        * indexeddb/idbcursor_continue_index5-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_index5-private.html: Added.
+        * indexeddb/idbcursor_continue_index6-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_index6-private.html: Added.
+        * indexeddb/idbcursor_continue_index7-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_index7-private.html: Added.
+        * indexeddb/idbcursor_continue_index8-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_index8-private.html: Added.
+        * indexeddb/idbcursor_continue_invalid-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_invalid-private.html: Added.
+        * indexeddb/idbcursor_continue_objectstore-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_objectstore-private.html: Added.
+        * indexeddb/idbcursor_continue_objectstore2-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_objectstore2-private.html: Added.
+        * indexeddb/idbcursor_continue_objectstore3-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_objectstore3-private.html: Added.
+        * indexeddb/idbcursor_continue_objectstore4-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_objectstore4-private.html: Added.
+        * indexeddb/idbcursor_continue_objectstore5-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_objectstore5-private.html: Added.
+        * indexeddb/idbcursor_continue_objectstore6-private-expected.txt: Added.
+        * indexeddb/idbcursor_continue_objectstore6-private.html: Added.
+        * indexeddb/idbcursor_delete_index-private-expected.txt: Added.
+        * indexeddb/idbcursor_delete_index-private.html: Added.
+        * indexeddb/idbcursor_delete_index2-private-expected.txt: Added.
+        * indexeddb/idbcursor_delete_index2-private.html: Added.
+        * indexeddb/idbcursor_delete_index3-private-expected.txt: Added.
+        * indexeddb/idbcursor_delete_index3-private.html: Added.
+        * indexeddb/idbcursor_delete_index4-private-expected.txt: Added.
+        * indexeddb/idbcursor_delete_index4-private.html: Added.
+        * indexeddb/idbcursor_delete_index5-private-expected.txt: Added.
+        * indexeddb/idbcursor_delete_index5-private.html: Added.
+        * indexeddb/idbcursor_delete_objectstore-private-expected.txt: Added.
+        * indexeddb/idbcursor_delete_objectstore-private.html: Added.
+        * indexeddb/idbcursor_delete_objectstore2-private-expected.txt: Added.
+        * indexeddb/idbcursor_delete_objectstore2-private.html: Added.
+        * indexeddb/idbcursor_delete_objectstore3-private-expected.txt: Added.
+        * indexeddb/idbcursor_delete_objectstore3-private.html: Added.
+        * indexeddb/idbcursor_delete_objectstore4-private-expected.txt: Added.
+        * indexeddb/idbcursor_delete_objectstore4-private.html: Added.
+        * indexeddb/idbcursor_delete_objectstore5-private-expected.txt: Added.
+        * indexeddb/idbcursor_delete_objectstore5-private.html: Added.
+        * indexeddb/idbcursor_iterating-private-expected.txt: Added.
+        * indexeddb/idbcursor_iterating-private.html: Added.
+        * indexeddb/idbcursor_iterating_index-private-expected.txt: Added.
+        * indexeddb/idbcursor_iterating_index-private.html: Added.
+        * indexeddb/idbcursor_iterating_index2-private-expected.txt: Added.
+        * indexeddb/idbcursor_iterating_index2-private.html: Added.
+        * indexeddb/idbcursor_iterating_objectstore-private-expected.txt: Added.
+        * indexeddb/idbcursor_iterating_objectstore-private.html: Added.
+        * indexeddb/idbcursor_iterating_objectstore2-private-expected.txt: Added.
+        * indexeddb/idbcursor_iterating_objectstore2-private.html: Added.
+        * indexeddb/idbcursor_update_index-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_index-private.html: Added.
+        * indexeddb/idbcursor_update_index2-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_index2-private.html: Added.
+        * indexeddb/idbcursor_update_index3-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_index3-private.html: Added.
+        * indexeddb/idbcursor_update_index4-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_index4-private.html: Added.
+        * indexeddb/idbcursor_update_index5-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_index5-private.html: Added.
+        * indexeddb/idbcursor_update_index6-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_index6-private.html: Added.
+        * indexeddb/idbcursor_update_index7-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_index7-private.html: Added.
+        * indexeddb/idbcursor_update_objectstore-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_objectstore-private.html: Added.
+        * indexeddb/idbcursor_update_objectstore2-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_objectstore2-private.html: Added.
+        * indexeddb/idbcursor_update_objectstore3-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_objectstore3-private.html: Added.
+        * indexeddb/idbcursor_update_objectstore4-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_objectstore4-private.html: Added.
+        * indexeddb/idbcursor_update_objectstore5-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_objectstore5-private.html: Added.
+        * indexeddb/idbcursor_update_objectstore6-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_objectstore6-private.html: Added.
+        * indexeddb/idbcursor_update_objectstore7-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_objectstore7-private.html: Added.
+        * indexeddb/idbcursor_update_objectstore8-private-expected.txt: Added.
+        * indexeddb/idbcursor_update_objectstore8-private.html: Added.
+        * indexeddb/idbdatabase_close-private-expected.txt: Added.
+        * indexeddb/idbdatabase_close-private.html: Added.
+        * indexeddb/idbdatabase_close2-private-expected.txt: Added.
+        * indexeddb/idbdatabase_close2-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore-createIndex-emptyname-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore-createIndex-emptyname-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore10-1000ends-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore10-1000ends-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore10-emptyname-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore10-emptyname-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore11-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore11-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore2-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore2-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore3-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore3-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore4-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore4-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore5-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore5-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore6-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore6-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore7-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore7-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore8-parameters-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore8-parameters-private.html: Added.
+        * indexeddb/idbdatabase_createObjectStore9-invalidparameters-private-expected.txt: Added.
+        * indexeddb/idbdatabase_createObjectStore9-invalidparameters-private.html: Added.
+        * indexeddb/idbdatabase_deleteObjectStore-private-expected.txt: Added.
+        * indexeddb/idbdatabase_deleteObjectStore-private.html: Added.
+        * indexeddb/idbdatabase_deleteObjectStore2-private-expected.txt: Added.
+        * indexeddb/idbdatabase_deleteObjectStore2-private.html: Added.
+        * indexeddb/idbdatabase_deleteObjectStore3-private-expected.txt: Added.
+        * indexeddb/idbdatabase_deleteObjectStore3-private.html: Added.
+        * indexeddb/idbdatabase_deleteObjectStore4-not_reused-private-expected.txt: Added.
+        * indexeddb/idbdatabase_deleteObjectStore4-not_reused-private.html: Added.
+        * indexeddb/idbdatabase_transaction-private-expected.txt: Added.
+        * indexeddb/idbdatabase_transaction-private.html: Added.
+        * indexeddb/idbdatabase_transaction2-private-expected.txt: Added.
+        * indexeddb/idbdatabase_transaction2-private.html: Added.
+        * indexeddb/idbdatabase_transaction3-private-expected.txt: Added.
+        * indexeddb/idbdatabase_transaction3-private.html: Added.
+        * indexeddb/idbdatabase_transaction4-private-expected.txt: Added.
+        * indexeddb/idbdatabase_transaction4-private.html: Added.
+        * indexeddb/idbdatabase_transaction5-private-expected.txt: Added.
+        * indexeddb/idbdatabase_transaction5-private.html: Added.
+        * indexeddb/idbfactory_cmp-private-expected.txt: Added.
+        * indexeddb/idbfactory_cmp-private.html: Added.
+        * indexeddb/idbfactory_cmp2-private-expected.txt: Added.
+        * indexeddb/idbfactory_cmp2-private.html: Added.
+        * indexeddb/idbfactory_deleteDatabase-private-expected.txt: Added.
+        * indexeddb/idbfactory_deleteDatabase-private.html: Added.
+        * indexeddb/idbfactory_deleteDatabase2-private-expected.txt: Added.
+        * indexeddb/idbfactory_deleteDatabase2-private.html: Added.
+        * indexeddb/idbfactory_deleteDatabase3-private-expected.txt: Added.
+        * indexeddb/idbfactory_deleteDatabase3-private.html: Added.
+        * indexeddb/idbfactory_deleteDatabase4-private-expected.txt: Added.
+        * indexeddb/idbfactory_deleteDatabase4-private.html: Added.
+        * indexeddb/idbfactory_open-private-expected.txt: Added.
+        * indexeddb/idbfactory_open-private.html: Added.
+        * indexeddb/idbfactory_open10-private-expected.txt: Added.
+        * indexeddb/idbfactory_open10-private.html: Added.
+        * indexeddb/idbfactory_open11-private-expected.txt: Added.
+        * indexeddb/idbfactory_open11-private.html: Added.
+        * indexeddb/idbfactory_open12-private-expected.txt: Added.
+        * indexeddb/idbfactory_open12-private.html: Added.
+        * indexeddb/idbfactory_open2-private-expected.txt: Added.
+        * indexeddb/idbfactory_open2-private.html: Added.
+        * indexeddb/idbfactory_open3-private-expected.txt: Added.
+        * indexeddb/idbfactory_open3-private.html: Added.
+        * indexeddb/idbfactory_open4-private-expected.txt: Added.
+        * indexeddb/idbfactory_open4-private.html: Added.
+        * indexeddb/idbfactory_open5-private-expected.txt: Added.
+        * indexeddb/idbfactory_open5-private.html: Added.
+        * indexeddb/idbfactory_open6-private-expected.txt: Added.
+        * indexeddb/idbfactory_open6-private.html: Added.
+        * indexeddb/idbfactory_open7-private-expected.txt: Added.
+        * indexeddb/idbfactory_open7-private.html: Added.
+        * indexeddb/idbfactory_open8-private-expected.txt: Added.
+        * indexeddb/idbfactory_open8-private.html: Added.
+        * indexeddb/idbfactory_open9-private-expected.txt: Added.
+        * indexeddb/idbfactory_open9-private.html: Copied from LayoutTests/imported/w3c/indexeddb/idbfactory_open9.htm.
+        * indexeddb/idbfactory_open9.htm:
+        * indexeddb/idbindex-multientry-arraykeypath-private-expected.txt: Added.
+        * indexeddb/idbindex-multientry-arraykeypath-private.html: Added.
+        * indexeddb/idbindex-multientry-big-private-expected.txt: Added.
+        * indexeddb/idbindex-multientry-big-private.html: Added.
+        * indexeddb/idbindex-multientry-private-expected.txt: Added.
+        * indexeddb/idbindex-multientry-private.html: Added.
+        * indexeddb/idbindex_count-private-expected.txt: Added.
+        * indexeddb/idbindex_count-private.html: Added.
+        * indexeddb/idbindex_count2-private-expected.txt: Added.
+        * indexeddb/idbindex_count2-private.html: Added.
+        * indexeddb/idbindex_count3-private-expected.txt: Added.
+        * indexeddb/idbindex_count3-private.html: Added.
+        * indexeddb/idbindex_count4-private-expected.txt: Added.
+        * indexeddb/idbindex_count4-private.html: Added.
+        * indexeddb/idbindex_get-private-expected.txt: Added.
+        * indexeddb/idbindex_get-private.html: Added.
+        * indexeddb/idbindex_get2-private-expected.txt: Added.
+        * indexeddb/idbindex_get2-private.html: Added.
+        * indexeddb/idbindex_get3-private-expected.txt: Added.
+        * indexeddb/idbindex_get3-private.html: Added.
+        * indexeddb/idbindex_get4-private-expected.txt: Added.
+        * indexeddb/idbindex_get4-private.html: Added.
+        * indexeddb/idbindex_get5-private-expected.txt: Added.
+        * indexeddb/idbindex_get5-private.html: Added.
+        * indexeddb/idbindex_get6-private-expected.txt: Added.
+        * indexeddb/idbindex_get6-private.html: Added.
+        * indexeddb/idbindex_get7-private-expected.txt: Added.
+        * indexeddb/idbindex_get7-private.html: Added.
+        * indexeddb/idbindex_getKey-private-expected.txt: Added.
+        * indexeddb/idbindex_getKey-private.html: Added.
+        * indexeddb/idbindex_getKey2-private-expected.txt: Added.
+        * indexeddb/idbindex_getKey2-private.html: Added.
+        * indexeddb/idbindex_getKey3-private-expected.txt: Added.
+        * indexeddb/idbindex_getKey3-private.html: Added.
+        * indexeddb/idbindex_getKey4-private-expected.txt: Added.
+        * indexeddb/idbindex_getKey4-private.html: Added.
+        * indexeddb/idbindex_getKey5-private-expected.txt: Added.
+        * indexeddb/idbindex_getKey5-private.html: Added.
+        * indexeddb/idbindex_getKey6-private-expected.txt: Added.
+        * indexeddb/idbindex_getKey6-private.html: Added.
+        * indexeddb/idbindex_getKey7-private-expected.txt: Added.
+        * indexeddb/idbindex_getKey7-private.html: Added.
+        * indexeddb/idbindex_indexNames-private-expected.txt: Added.
+        * indexeddb/idbindex_indexNames-private.html: Added.
+        * indexeddb/idbindex_openCursor-private-expected.txt: Added.
+        * indexeddb/idbindex_openCursor-private.html: Added.
+        * indexeddb/idbindex_openCursor2-private-expected.txt: Added.
+        * indexeddb/idbindex_openCursor2-private.html: Added.
+        * indexeddb/idbindex_openKeyCursor-private-expected.txt: Added.
+        * indexeddb/idbindex_openKeyCursor-private.html: Added.
+        * indexeddb/idbindex_openKeyCursor2-private-expected.txt: Added.
+        * indexeddb/idbindex_openKeyCursor2-private.html: Added.
+        * indexeddb/idbindex_openKeyCursor3-private-expected.txt: Added.
+        * indexeddb/idbindex_openKeyCursor3-private.html: Added.
+        * indexeddb/idbkeyrange-private-expected.txt: Added.
+        * indexeddb/idbkeyrange-private.html: Added.
+        * indexeddb/idbkeyrange_incorrect-private-expected.txt: Added.
+        * indexeddb/idbkeyrange_incorrect-private.html: Added.
+        * indexeddb/idbobjectstore_add-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add-private.html: Added.
+        * indexeddb/idbobjectstore_add10-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add10-private.html: Added.
+        * indexeddb/idbobjectstore_add11-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add11-private.html: Added.
+        * indexeddb/idbobjectstore_add12-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add12-private.html: Added.
+        * indexeddb/idbobjectstore_add13-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add13-private.html: Added.
+        * indexeddb/idbobjectstore_add14-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add14-private.html: Added.
+        * indexeddb/idbobjectstore_add15-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add15-private.html: Added.
+        * indexeddb/idbobjectstore_add16-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add16-private.html: Added.
+        * indexeddb/idbobjectstore_add2-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add2-private.html: Added.
+        * indexeddb/idbobjectstore_add3-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add3-private.html: Added.
+        * indexeddb/idbobjectstore_add4-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add4-private.html: Added.
+        * indexeddb/idbobjectstore_add5-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add5-private.html: Added.
+        * indexeddb/idbobjectstore_add6-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add6-private.html: Added.
+        * indexeddb/idbobjectstore_add7-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add7-private.html: Added.
+        * indexeddb/idbobjectstore_add8-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add8-private.html: Added.
+        * indexeddb/idbobjectstore_add9-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_add9-private.html: Added.
+        * indexeddb/idbobjectstore_clear-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_clear-private.html: Added.
+        * indexeddb/idbobjectstore_clear2-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_clear2-private.html: Added.
+        * indexeddb/idbobjectstore_clear3-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_clear3-private.html: Added.
+        * indexeddb/idbobjectstore_clear4-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_clear4-private.html: Added.
+        * indexeddb/idbobjectstore_count-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_count-private.html: Added.
+        * indexeddb/idbobjectstore_count2-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_count2-private.html: Added.
+        * indexeddb/idbobjectstore_count3-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_count3-private.html: Added.
+        * indexeddb/idbobjectstore_count4-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_count4-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex10-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex10-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex11-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex11-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex12-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex12-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex13-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex13-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex2-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex2-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex3-usable-right-away-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex3-usable-right-away-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex5-emptykeypath-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex5-emptykeypath-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex6-event_order-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex6-event_order-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex7-event_order-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex7-event_order-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex8-valid_keys-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex8-valid_keys-private.html: Added.
+        * indexeddb/idbobjectstore_createIndex9-emptyname-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_createIndex9-emptyname-private.html: Added.
+        * indexeddb/idbobjectstore_delete-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_delete-private.html: Added.
+        * indexeddb/idbobjectstore_delete2-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_delete2-private.html: Added.
+        * indexeddb/idbobjectstore_delete3-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_delete3-private.html: Added.
+        * indexeddb/idbobjectstore_delete4-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_delete4-private.html: Added.
+        * indexeddb/idbobjectstore_delete5-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_delete5-private.html: Added.
+        * indexeddb/idbobjectstore_delete6-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_delete6-private.html: Added.
+        * indexeddb/idbobjectstore_delete7-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_delete7-private.html: Added.
+        * indexeddb/idbobjectstore_deleteIndex-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_deleteIndex-private.html: Added.
+        * indexeddb/idbobjectstore_deleted-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_deleted-private.html: Added.
+        * indexeddb/idbobjectstore_get-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_get-private.html: Added.
+        * indexeddb/idbobjectstore_get2-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_get2-private.html: Added.
+        * indexeddb/idbobjectstore_get3-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_get3-private.html: Added.
+        * indexeddb/idbobjectstore_get4-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_get4-private.html: Added.
+        * indexeddb/idbobjectstore_get5-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_get5-private.html: Added.
+        * indexeddb/idbobjectstore_get6-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_get6-private.html: Added.
+        * indexeddb/idbobjectstore_get7-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_get7-private.html: Added.
+        * indexeddb/idbobjectstore_index-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_index-private.html: Added.
+        * indexeddb/idbobjectstore_openCursor-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_openCursor-private.html: Added.
+        * indexeddb/idbobjectstore_openCursor_invalid-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_openCursor_invalid-private.html: Added.
+        * indexeddb/idbobjectstore_put-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put-private.html: Added.
+        * indexeddb/idbobjectstore_put10-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put10-private.html: Added.
+        * indexeddb/idbobjectstore_put11-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put11-private.html: Added.
+        * indexeddb/idbobjectstore_put12-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put12-private.html: Added.
+        * indexeddb/idbobjectstore_put13-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put13-private.html: Added.
+        * indexeddb/idbobjectstore_put14-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put14-private.html: Added.
+        * indexeddb/idbobjectstore_put15-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put15-private.html: Added.
+        * indexeddb/idbobjectstore_put16-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put16-private.html: Added.
+        * indexeddb/idbobjectstore_put2-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put2-private.html: Added.
+        * indexeddb/idbobjectstore_put3-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put3-private.html: Added.
+        * indexeddb/idbobjectstore_put4-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put4-private.html: Added.
+        * indexeddb/idbobjectstore_put5-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put5-private.html: Added.
+        * indexeddb/idbobjectstore_put6-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put6-private.html: Added.
+        * indexeddb/idbobjectstore_put7-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put7-private.html: Added.
+        * indexeddb/idbobjectstore_put8-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put8-private.html: Added.
+        * indexeddb/idbobjectstore_put9-private-expected.txt: Added.
+        * indexeddb/idbobjectstore_put9-private.html: Added.
+        * indexeddb/idbtransaction-oncomplete-private-expected.txt: Added.
+        * indexeddb/idbtransaction-oncomplete-private.html: Added.
+        * indexeddb/idbtransaction-private-expected.txt: Added.
+        * indexeddb/idbtransaction-private.html: Added.
+        * indexeddb/idbtransaction_abort-private-expected.txt: Added.
+        * indexeddb/idbtransaction_abort-private.html: Added.
+        * indexeddb/idbversionchangeevent-private-expected.txt: Added.
+        * indexeddb/idbversionchangeevent-private.html: Added.
+        * indexeddb/index_sort_order-private-expected.txt: Added.
+        * indexeddb/index_sort_order-private.html: Added.
+        * indexeddb/key_invalid-private-expected.txt: Added.
+        * indexeddb/key_invalid-private.html: Added.
+        * indexeddb/key_valid-private-expected.txt: Added.
+        * indexeddb/key_valid-private.html: Added.
+        * indexeddb/keygenerator-constrainterror-private-expected.txt: Added.
+        * indexeddb/keygenerator-constrainterror-private.html: Added.
+        * indexeddb/keygenerator-overflow-private-expected.txt: Added.
+        * indexeddb/keygenerator-overflow-private.html: Added.
+        * indexeddb/keygenerator-private-expected.txt: Added.
+        * indexeddb/keygenerator-private.html: Added.
+        * indexeddb/keyorder-private-expected.txt: Added.
+        * indexeddb/keyorder-private.html: Added.
+        * indexeddb/keypath-private-expected.txt: Added.
+        * indexeddb/keypath-private.html: Added.
+        * indexeddb/keypath_invalid-private-expected.txt: Added.
+        * indexeddb/keypath_invalid-private.html: Added.
+        * indexeddb/keypath_maxsize-private-expected.txt: Added.
+        * indexeddb/keypath_maxsize-private.html: Added.
+        * indexeddb/list_ordering-private-expected.txt: Added.
+        * indexeddb/list_ordering-private.html: Added.
+        * indexeddb/objectstore_keyorder-private-expected.txt: Added.
+        * indexeddb/objectstore_keyorder-private.html: Added.
+        * indexeddb/request_bubble-and-capture-private-expected.txt: Added.
+        * indexeddb/request_bubble-and-capture-private.html: Added.
+        * indexeddb/string-list-ordering-private-expected.txt: Added.
+        * indexeddb/string-list-ordering-private.html: Added.
+        * indexeddb/transaction-create_in_versionchange-private-expected.txt: Added.
+        * indexeddb/transaction-create_in_versionchange-private.html: Added.
+        * indexeddb/transaction-lifetime-blocked-private-expected.txt: Added.
+        * indexeddb/transaction-lifetime-blocked-private.html: Added.
+        * indexeddb/transaction-lifetime-private-expected.txt: Added.
+        * indexeddb/transaction-lifetime-private.html: Added.
+        * indexeddb/transaction-requestqueue-private-expected.txt: Added.
+        * indexeddb/transaction-requestqueue-private.html: Added.
+        * indexeddb/transaction_bubble-and-capture-private-expected.txt: Added.
+        * indexeddb/transaction_bubble-and-capture-private.html: Added.
+        * indexeddb/value-private-expected.txt: Added.
+        * indexeddb/value-private.html: Added.
+        * indexeddb/value_recursive-private-expected.txt: Added.
+        * indexeddb/value_recursive-private.html: Added.
+        * indexeddb/writer-starvation-private-expected.txt: Added.
+        * indexeddb/writer-starvation-private.html: Added.
+
 2016-01-20  Chris Dumez  <cdumez@apple.com>
 
         Drop support for obsolete Node.isSupported()
diff --git a/LayoutTests/imported/w3c/indexeddb/abort-in-initial-upgradeneeded-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/abort-in-initial-upgradeneeded-private-expected.txt
new file mode 100644 (file)
index 0000000..daf4fdb
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS Test that an abort in the initial upgradeneeded sets version back to 0 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/abort-in-initial-upgradeneeded-private.html b/LayoutTests/imported/w3c/indexeddb/abort-in-initial-upgradeneeded-private.html
new file mode 100644 (file)
index 0000000..066b619
--- /dev/null
@@ -0,0 +1,35 @@
+<!doctype html>
+<!-- Submitted from TestTWF Paris -->
+<title>Test that an abort in the initial upgradeneeded sets version back to 0</title>
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src=support.js></script>
+
+<script>
+
+var db, open_rq = createdb(async_test(), undefined, 2);
+
+open_rq.onupgradeneeded = function(e) {
+    db = e.target.result;
+    assert_equals(db.version, 2);
+    transaction = e.target.transaction;
+    transaction.oncomplete = fail(this, "unexpected transaction.complete");
+    transaction.onabort = function(e) {
+        assert_equals(e.target.db.version, 0);
+    }
+    db.onabort = function() {}
+
+    transaction.abort();
+}
+
+open_rq.onerror = function(e) {
+    assert_equals(open_rq, e.target);
+    assert_equals(e.target.result, undefined);
+    assert_equals(e.target.error.name, "AbortError");
+    assert_equals(db.version, 0);
+    assert_equals(open_rq.transaction, null);
+    this.done();
+}
+</script>
+
+<div id=log></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/close-in-upgradeneeded-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/close-in-upgradeneeded-private-expected.txt
new file mode 100644 (file)
index 0000000..70e72bd
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS When db.close is called in upgradeneeded, the db is cleaned up on refresh 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/close-in-upgradeneeded-private.html b/LayoutTests/imported/w3c/indexeddb/close-in-upgradeneeded-private.html
new file mode 100644 (file)
index 0000000..2e00b4e
--- /dev/null
@@ -0,0 +1,39 @@
+<!doctype html>
+<!-- Submitted from TestTWF Paris -->
+<title>When db.close is called in upgradeneeded, the db is cleaned up on refresh</title>
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src=support.js></script>
+
+<script>
+
+var open_rq = createdb(async_test())
+var sawTransactionComplete = false
+
+open_rq.onupgradeneeded = function(e) {
+    db = e.target.result
+    assert_equals(db.version, 1)
+
+    db.createObjectStore('os')
+    db.close()
+
+    e.target.transaction.oncomplete = function() { sawTransactionComplete = true }
+}
+
+open_rq.onerror = function(e) {
+    assert_true(sawTransactionComplete, "saw transaction.complete")
+
+    assert_equals(e.target.error.name, 'AbortError')
+    assert_equals(e.result, undefined)
+
+    assert_true(!!db)
+    assert_equals(db.version, 1)
+    assert_equals(db.objectStoreNames.length, 1)
+    assert_throws("InvalidStateError", function() { db.transaction('os') })
+
+    this.done()
+}
+
+</script>
+
+<div id=log></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/cursor-overloads-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/cursor-overloads-private-expected.txt
new file mode 100644 (file)
index 0000000..238999a
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS Validate the overloads of IDBObjectStore.openCursor(), IDBIndex.openCursor() and IDBIndex.openKeyCursor() 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/cursor-overloads-private.html b/LayoutTests/imported/w3c/indexeddb/cursor-overloads-private.html
new file mode 100644 (file)
index 0000000..86b169b
--- /dev/null
@@ -0,0 +1,88 @@
+<!--
+Test converted from WebKit:
+http://trac.webkit.org/browser/trunk/LayoutTests/storage/indexeddb/cursor-overloads.html
+-->
+
+<!DOCTYPE html>
+<!-- Submitted from TestTWF Paris -->
+<meta charset=utf-8>
+<title>Validate the overloads of IDBObjectStore.openCursor(), IDBIndex.openCursor() and IDBIndex.openKeyCursor()</title>
+<link rel=author href="mailto:romain.huet@gmail.com" title="Romain Huet">
+
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src=support.js></script>
+
+<script>
+
+    var db, trans, store, index;
+    var t = async_test();
+
+    var request = createdb(t);
+    request.onupgradeneeded = function(e) {
+        db = request.result;
+        store = db.createObjectStore('store');
+        index = store.createIndex('index', 'value');
+        store.put({value: 0}, 0);
+        trans = request.transaction;
+        trans.oncomplete = verifyOverloads;
+    };
+
+    function verifyOverloads() {
+        trans = db.transaction('store');
+        store = trans.objectStore('store');
+        index = store.index('index');
+
+        checkCursorDirection("store.openCursor()", "next");
+        checkCursorDirection("store.openCursor(0)", "next");
+        checkCursorDirection("store.openCursor(0, 'next')", "next");
+        checkCursorDirection("store.openCursor(0, 'nextunique')", "nextunique");
+        checkCursorDirection("store.openCursor(0, 'prev')", "prev");
+        checkCursorDirection("store.openCursor(0, 'prevunique')", "prevunique");
+
+        checkCursorDirection("store.openCursor(IDBKeyRange.only(0))", "next");
+        checkCursorDirection("store.openCursor(IDBKeyRange.only(0), 'next')", "next");
+        checkCursorDirection("store.openCursor(IDBKeyRange.only(0), 'nextunique')", "nextunique");
+        checkCursorDirection("store.openCursor(IDBKeyRange.only(0), 'prev')", "prev");
+        checkCursorDirection("store.openCursor(IDBKeyRange.only(0), 'prevunique')", "prevunique");
+
+        checkCursorDirection("index.openCursor()", "next");
+        checkCursorDirection("index.openCursor(0)", "next");
+        checkCursorDirection("index.openCursor(0, 'next')", "next");
+        checkCursorDirection("index.openCursor(0, 'nextunique')", "nextunique");
+        checkCursorDirection("index.openCursor(0, 'prev')", "prev");
+        checkCursorDirection("index.openCursor(0, 'prevunique')", "prevunique");
+
+        checkCursorDirection("index.openCursor(IDBKeyRange.only(0))", "next");
+        checkCursorDirection("index.openCursor(IDBKeyRange.only(0), 'next')", "next");
+        checkCursorDirection("index.openCursor(IDBKeyRange.only(0), 'nextunique')", "nextunique");
+        checkCursorDirection("index.openCursor(IDBKeyRange.only(0), 'prev')", "prev");
+        checkCursorDirection("index.openCursor(IDBKeyRange.only(0), 'prevunique')", "prevunique");
+
+        checkCursorDirection("index.openKeyCursor()", "next");
+        checkCursorDirection("index.openKeyCursor(0)", "next");
+        checkCursorDirection("index.openKeyCursor(0, 'next')", "next");
+        checkCursorDirection("index.openKeyCursor(0, 'nextunique')", "nextunique");
+        checkCursorDirection("index.openKeyCursor(0, 'prev')", "prev");
+        checkCursorDirection("index.openKeyCursor(0, 'prevunique')", "prevunique");
+
+        checkCursorDirection("index.openKeyCursor(IDBKeyRange.only(0))", "next");
+        checkCursorDirection("index.openKeyCursor(IDBKeyRange.only(0), 'next')", "next");
+        checkCursorDirection("index.openKeyCursor(IDBKeyRange.only(0), 'nextunique')", "nextunique");
+        checkCursorDirection("index.openKeyCursor(IDBKeyRange.only(0), 'prev')", "prev");
+        checkCursorDirection("index.openKeyCursor(IDBKeyRange.only(0), 'prevunique')", "prevunique");
+
+        t.done();
+    }
+
+    function checkCursorDirection(statement, direction) {
+        request = eval(statement);
+        request.onsuccess = function(event) {
+            assert_not_equals(event.target.result, null, "Check the result is not null")
+            assert_equals(event.target.result.direction, direction, "Check the result direction");
+        };
+    }
+
+</script>
+
+<div id=log></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idb_webworkers-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idb_webworkers-private-expected.txt
new file mode 100644 (file)
index 0000000..6ba9f01
--- /dev/null
@@ -0,0 +1,3 @@
+
+FAIL IndexedDB inside of a WebWorker  assert_equals: worker has idb object expected true but got false
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idb_webworkers-private.html b/LayoutTests/imported/w3c/indexeddb/idb_webworkers-private.html
new file mode 100644 (file)
index 0000000..db2faff
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<title>IndexedDB inside of a WebWorker </title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var db, count = 0,
+      t = async_test();
+
+    t.step(function() {
+        var worker = new Worker("idbworker.js");
+        worker.onmessage = t.step_func(function (e) {
+            switch(count) {
+                case 0:
+                    assert_equals(e.data, true, 'worker has idb object')
+                    break
+
+                case 1:
+                    assert_equals(e.data, "test", "get(1) in worker")
+                    t.done()
+            }
+
+            count++
+        });
+
+        worker.postMessage(1);
+    })
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-continue-async-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-continue-async-private-expected.txt
new file mode 100644 (file)
index 0000000..6c04ea6
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS IDBCursor asyncness - advance 
+PASS IDBCursor asyncness - continue 
+PASS IDBCursor asyncness - fresh advance still async 
+PASS IDBCursor asyncness - fresh continue still async 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-continue-async-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-continue-async-private.html
new file mode 100644 (file)
index 0000000..294ed9e
--- /dev/null
@@ -0,0 +1,186 @@
+<!DOCTYPE html>
+<title>IDBCursor asyncness</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db, open;
+
+    setup(function() {
+        open = indexedDB.open('testdb-' + new Date().getTime());
+        open.onupgradeneeded = function(e) {
+            db = e.target.result;
+            var objStore = db.createObjectStore("test");
+            objStore.createIndex("index", "");
+
+            objStore.add("data",  1);
+            objStore.add("data2", 2);
+        };
+    },
+    { explicit_done: true });
+
+
+    open.onsuccess = function() {
+
+
+        async_test(document.title + " - advance").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 2, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "data")
+                        assert_equals(cursor.key, 1)
+                        cursor.advance(1)
+                        assert_equals(cursor.value, "data")
+                        assert_equals(cursor.key, 1)
+                        break
+
+                    case 1:
+                        assert_equals(cursor.value, "data2")
+                        assert_equals(cursor.key, 2)
+                        cursor.advance(1)
+                        assert_equals(cursor.value, "data2")
+                        assert_equals(cursor.key, 2)
+                        break
+
+                    default:
+                        assert_unreached("Unexpected count: " + count)
+                }
+
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - continue").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 2, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "data")
+                        assert_equals(cursor.key,   "data")
+                        assert_equals(cursor.primaryKey, 1)
+                        cursor.continue("data2")
+                        assert_equals(cursor.value, "data")
+                        assert_equals(cursor.key,   "data")
+                        assert_equals(cursor.primaryKey, 1)
+                        break
+
+                    case 1:
+                        assert_equals(cursor.value, "data2")
+                        assert_equals(cursor.key,   "data2")
+                        assert_equals(cursor.primaryKey, 2)
+                        cursor.continue()
+                        assert_equals(cursor.value, "data2")
+                        assert_equals(cursor.key,   "data2")
+                        assert_equals(cursor.primaryKey, 2)
+                        break
+
+                    default:
+                        assert_unreached("Unexpected count: " + count)
+                }
+
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - fresh advance still async").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 2, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+                cursor.advance(1)
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "data")
+                        assert_equals(cursor.key,   "data")
+                        assert_equals(cursor.primaryKey, 1)
+                        break
+
+                    case 1:
+                        assert_equals(cursor.value, "data2")
+                        assert_equals(cursor.key,   "data2")
+                        assert_equals(cursor.primaryKey, 2)
+                        break
+
+                    default:
+                        assert_unreached("Unexpected count: " + count)
+                }
+
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - fresh continue still async").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 2, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+                cursor.continue()
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "data")
+                        assert_equals(cursor.key, 1)
+                        break
+
+                    case 1:
+                        assert_equals(cursor.value, "data2")
+                        assert_equals(cursor.key, 2)
+                        break
+
+                    default:
+                        assert_unreached("Unexpected count: " + count)
+                }
+
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+        // Stop blocking the testing system from hereon
+        done();
+    }
+
+</script>
+
+<div id=log></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-invalid-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-invalid-private-expected.txt
new file mode 100644 (file)
index 0000000..7916b57
--- /dev/null
@@ -0,0 +1,8 @@
+
+PASS IDBCursor.advance() - invalid - attempt to call advance twice 
+PASS IDBCursor.advance() - invalid - pass something other than number 
+PASS IDBCursor.advance() - invalid - pass null/undefined 
+PASS IDBCursor.advance() - invalid - missing argument 
+PASS IDBCursor.advance() - invalid - pass negative numbers 
+PASS IDBCursor.advance() - invalid - got value not set on exception 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-invalid-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-invalid-private.html
new file mode 100644 (file)
index 0000000..e2504b9
--- /dev/null
@@ -0,0 +1,188 @@
+<!DOCTYPE html>
+<title>IDBCursor.advance() - invalid</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-advance-void-unsigned-long-count">
+<link rel=assert title="If the value for count is 0 (zero) or a negative number, this method must throw a JavaScript TypeError exception.">
+<link rel=assert title="TypeError The value passed into the count parameter was zero or a negative number.">
+<link rel=assert title="InvalidStateError The cursor is currently being iterated, or has iterated past its end.">
+<link rel=assert title="Calling this method more than once before new cursor data has been loaded is not allowed and results in a DOMException of type InvalidStateError being thrown. For example, calling advance() twice from the same onsuccess handler results in a DOMException of type InvalidStateError being thrown on the second call.">
+<link rel=assert title="Before this method returns, unless an exception was thrown, it sets the got value flag on the cursor to false.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db, open;
+
+    setup(function() {
+        open = indexedDB.open('testdb-' + new Date().getTime());
+        open.onupgradeneeded = function(e) {
+            db = e.target.result;
+            var objStore = db.createObjectStore("test");
+            objStore.createIndex("index", "");
+
+            objStore.add("data",  1);
+            objStore.add("data2", 2);
+        };
+    },
+    { explicit_done: true });
+
+
+    open.onsuccess = function() {
+
+        async_test(document.title + " - attempt to call advance twice").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 2, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                cursor.advance(1);
+
+                // Second try
+                assert_throws('InvalidStateError',
+                    function() { cursor.advance(1); }, 'second advance');
+
+                assert_throws('InvalidStateError',
+                    function() { cursor.advance(3); }, 'third advance');
+
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - pass something other than number").step(function(e) {
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                var cursor = e.target.result;
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(document); });
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance({}); });
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance([]); });
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(""); });
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance("1 2"); });
+
+                this.done();
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - pass null/undefined").step(function(e) {
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                var cursor = e.target.result;
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(null); });
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(undefined); });
+
+                var myvar = null;
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(myvar); });
+
+                this.done();
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - missing argument").step(function(e) {
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                var cursor = e.target.result;
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(); });
+
+                this.done();
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - pass negative numbers").step(function(e) {
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                var cursor = e.target.result;
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(-1); });
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(NaN); });
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(0); });
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(-0); });
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(Infinity); });
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(-Infinity); });
+
+                var myvar = -999999;
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(myvar); });
+
+                this.done();
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - got value not set on exception").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                var cursor = e.target.result;
+                if (!cursor)
+                {
+                    assert_equals(count, 2, "count runs");
+                    this.done();
+                    return;
+                }
+
+                assert_throws({ name: "TypeError" },
+                    function() { cursor.advance(0); });
+
+                cursor.advance(1);
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        // Stop blocking the testing system from hereon
+        done();
+    }
+
+</script>
+
+<div id=log></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-private-expected.txt
new file mode 100644 (file)
index 0000000..e323315
--- /dev/null
@@ -0,0 +1,8 @@
+
+PASS IDBCursor.advance() - advances 
+PASS IDBCursor.advance() - advances backwards 
+PASS IDBCursor.advance() - skip far forward 
+PASS IDBCursor.advance() - within range 
+PASS IDBCursor.advance() - within single key range 
+PASS IDBCursor.advance() - within single key range, with several results 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-advance-private.html
new file mode 100644 (file)
index 0000000..a3bfd84
--- /dev/null
@@ -0,0 +1,243 @@
+<!DOCTYPE html>
+<title>IDBCursor.advance()</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db, open;
+
+    setup(function() {
+        open = indexedDB.open("testdb-" + new Date().getTime());
+        open.onupgradeneeded = function(e) {
+            db = e.target.result;
+            var objStore = db.createObjectStore("test");
+            objStore.createIndex("index", "");
+
+            objStore.add("cupcake", 5);
+            objStore.add("pancake", 3); // Yes, it is intended
+            objStore.add("pie",     1);
+            objStore.add("pie",     4);
+            objStore.add("taco",    2);
+        };
+    },
+    { explicit_done: true });
+
+
+    open.onsuccess = function() {
+
+        async_test(document.title + " - advances").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 3, "count");
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "cupcake");
+                        assert_equals(cursor.primaryKey, 5);
+                        break;
+
+                    case 1:
+                        assert_equals(cursor.value, "pie");
+                        assert_equals(cursor.primaryKey, 1);
+                        break;
+
+                    case 2:
+                        assert_equals(cursor.value, "taco");
+                        assert_equals(cursor.primaryKey, 2);
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+                cursor.advance(2);
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+        async_test(document.title + " - advances backwards").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor(null, "prev");
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 3, "count");
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "taco");
+                        assert_equals(cursor.primaryKey, 2);
+                        break;
+
+                    case 1:
+                        assert_equals(cursor.value, "pie");
+                        assert_equals(cursor.primaryKey, 1);
+                        break;
+
+                    case 2:
+                        assert_equals(cursor.value, "cupcake");
+                        assert_equals(cursor.primaryKey, 5);
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+                cursor.advance(2);
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+        async_test(document.title + " - skip far forward").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index")
+                       .openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 1, "count");
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "cupcake");
+                        assert_equals(cursor.primaryKey, 5);
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+                cursor.advance(100000);
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - within range").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index")
+                       .openCursor(IDBKeyRange.lowerBound("cupcake", true));
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 2, "count");
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "pancake");
+                        assert_equals(cursor.primaryKey, 3);
+                        break;
+
+                    case 1:
+                        assert_equals(cursor.value, "pie");
+                        assert_equals(cursor.primaryKey, 4);
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+                cursor.advance(2);
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - within single key range").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index")
+                       .openCursor("pancake");
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 1, "count");
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "pancake");
+                        assert_equals(cursor.primaryKey, 3);
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+                cursor.advance(1);
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - within single key range, with several results").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index")
+                       .openCursor("pie");
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 2, "count");
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "pie");
+                        assert_equals(cursor.primaryKey, 1);
+                        break;
+
+                    case 1:
+                        assert_equals(cursor.value, "pie");
+                        assert_equals(cursor.primaryKey, 4);
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+                cursor.advance(1);
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        // Stop blocking the testing system from hereon
+        done();
+    }
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-continue-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-continue-private-expected.txt
new file mode 100644 (file)
index 0000000..1b09ae2
--- /dev/null
@@ -0,0 +1,8 @@
+
+PASS IDBCursor.continue() - continues 
+PASS IDBCursor.continue() - with given key 
+PASS IDBCursor.continue() - skip far forward 
+PASS IDBCursor.continue() - within range 
+PASS IDBCursor.continue() - within single key range 
+PASS IDBCursor.continue() - within single key range, with several results 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-continue-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-continue-private.html
new file mode 100644 (file)
index 0000000..1ac1285
--- /dev/null
@@ -0,0 +1,240 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue()</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-continue-void-any-key">
+<link rel=assert title="The next key to position this cursor at">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db, open;
+    var store = [ { value: "cupcake", key: 5 },
+                  { value: "pancake", key: 3 },
+                  { value: "pie",     key: 1 },
+                  { value: "pie",     key: 4 },
+                  { value: "taco",    key: 2 } ];
+
+    setup(function() {
+        open = indexedDB.open('testdb-' + new Date().getTime());
+        open.onupgradeneeded = function(e) {
+            var os, i;
+            db = e.target.result;
+            os = db.createObjectStore("test");
+            os.createIndex("index", "");
+
+            for (i = 0; i < store.length; i++)
+                os.add(store[i].value, store[i].key);
+        };
+    },
+    { explicit_done: true });
+
+
+    open.onsuccess = function() {
+
+
+        async_test(document.title + " - continues").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 5, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                assert_equals(cursor.value, store[count].value);
+                assert_equals(cursor.primaryKey, store[count].key);
+
+                cursor.continue();
+
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - with given key").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index").openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 3, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "cupcake");
+                        assert_equals(cursor.primaryKey, 5);
+                        cursor.continue("pie");
+                        break;
+
+                    case 1:
+                        assert_equals(cursor.value, "pie");
+                        assert_equals(cursor.primaryKey, 1);
+                        cursor.continue("taco");
+                        break;
+
+                    case 2:
+                        assert_equals(cursor.value, "taco");
+                        assert_equals(cursor.primaryKey, 2);
+                        cursor.continue();
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error")
+        });
+
+
+        async_test(document.title + " - skip far forward").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index")
+                       .openCursor();
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 1, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "cupcake");
+                        assert_equals(cursor.primaryKey, 5);
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+                cursor.continue([]); // Arrays are always bigger than strings
+
+            });
+            rq.onerror = fail(this, "unexpected error2")
+        });
+
+
+        async_test(document.title + " - within range").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index")
+                       .openCursor(IDBKeyRange.lowerBound("cupcake", true));
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 2, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "pancake");
+                        assert_equals(cursor.primaryKey, 3);
+                        cursor.continue("pie");
+                        break;
+
+                    case 1:
+                        assert_equals(cursor.value, "pie");
+                        assert_equals(cursor.primaryKey, 1);
+                        cursor.continue("zzz");
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error1")
+        });
+
+
+        async_test(document.title + " - within single key range").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index")
+                       .openCursor("pancake");
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 1, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "pancake");
+                        assert_equals(cursor.primaryKey, 3);
+                        cursor.continue("pie");
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error1")
+        });
+
+
+        async_test(document.title + " - within single key range, with several results").step(function(e) {
+            var count = 0;
+            var rq = db.transaction("test").objectStore("test").index("index")
+                       .openCursor("pie");
+
+            rq.onsuccess = this.step_func(function(e) {
+                if (!e.target.result) {
+                    assert_equals(count, 2, 'count');
+                    this.done();
+                    return;
+                }
+                var cursor = e.target.result;
+
+                switch(count) {
+                    case 0:
+                        assert_equals(cursor.value, "pie");
+                        assert_equals(cursor.primaryKey, 1);
+                        cursor.continue();
+                        break;
+
+                    case 1:
+                        assert_equals(cursor.value, "pie");
+                        assert_equals(cursor.primaryKey, 4);
+                        cursor.continue();
+                        break;
+
+                    default:
+                        assert_unreached("Unexpected count: " + count);
+                }
+
+                count++;
+            });
+            rq.onerror = fail(this, "unexpected error1")
+        });
+
+
+        // Stop blocking the testing system from hereon
+        done();
+    }
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-keyrange-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-keyrange-private-expected.txt
new file mode 100644 (file)
index 0000000..b78af32
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS IDBCursor direction - index with keyrange - next 
+PASS IDBCursor direction - index with keyrange - prev 
+PASS IDBCursor direction - index with keyrange - nextunique 
+PASS IDBCursor direction - index with keyrange - prevunique 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-keyrange-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-keyrange-private.html
new file mode 100644 (file)
index 0000000..ab916c7
--- /dev/null
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<title>IDBCursor direction - index with keyrange</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#cursor-iteration-operation">
+<link rel=assert title='If direction is "next", let found record be the first record in records which satisfy all of the following requirements'>
+<link rel=assert title="If position is defined, and source is an index, the record's key is equal to position and the record's value is greater than object store position or the record's key is greater than position.">
+<link rel=assert title='If direction is "prev", let found record be the last record in records which satisfy all of the following requirements'>
+<link rel=assert title="If position is defined, and source is an index, the record's key is equal to position and the record's value is less than object store position or the record's key is less than position.">
+<link rel=assert title="If range is defined, the record's key is in range.">
+<link rel=assert title="If temp record is defined, let found record be the first record in records whose key is equal to temp record's key.">
+<link rel=assert title="records is always sorted in ascending key order. In the case of source being an index, records is secondarily sorted in ascending value order.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var records = [ 1337, "Alice", "Bob", "Bob", "Greg", "Åke", ["Anne"] ];
+    var directions = ["next", "prev", "nextunique", "prevunique"];
+    var tests = {};
+
+    directions.forEach(function(dir) {
+        tests[dir] = async_test(document.title + ' - ' + dir);
+    });
+
+    var open_rq = indexedDB.open("testdb-" + new Date().getTime() + Math.random());
+
+    open_rq.onupgradeneeded = function(e) {
+        var objStore = e.target.result.createObjectStore("test");
+        objStore.createIndex("idx", "name");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add({ name: records[i] }, i);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var db = e.target.result;
+        db.onerror = fail_helper("db.onerror");
+
+
+        // The tests
+        testdir('next',       ['Alice:1', 'Bob:2', 'Bob:3', 'Greg:4']);
+        testdir('prev',       ['Greg:4',  'Bob:3', 'Bob:2', 'Alice:1']);
+        testdir('nextunique', ['Alice:1', 'Bob:2', 'Greg:4']);
+        testdir('prevunique', ['Greg:4',  'Bob:2', 'Alice:1']);
+
+
+        // Test function
+        function testdir(dir, expect) {
+            var count = 0;
+            var t = tests[dir];
+            var rq = db.transaction("test").objectStore("test").index("idx").openCursor(IDBKeyRange.bound("AA", "ZZ"), dir);
+            rq.onsuccess = t.step_func(function(e) {
+                var cursor = e.target.result;
+                if (!cursor) {
+                    assert_equals(count, expect.length, "cursor runs");
+                    t.done();
+                }
+                assert_equals(cursor.value.name + ":" + cursor.primaryKey, expect[count], "cursor.value");
+                count++;
+                cursor.continue();
+            });
+            rq.onerror = t.step_func(function(e) {
+                e.preventDefault();
+                e.stopPropagation();
+                assert_unreached("rq.onerror - " + e.message);
+            });
+        }
+    };
+
+    // Fail handling
+    function fail_helper(name) {
+        return function() {
+            directions.forEach(function(dir) {
+                tests[dir].step(function() { assert_unreached(name); });
+            });
+        };
+    }
+    open_rq.onblocked = fail_helper('open_rq.onblocked');
+    open_rq.onerror = fail_helper('open_rq.onerror');
+</script>
+
+<div id=log> </div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-private-expected.txt
new file mode 100644 (file)
index 0000000..f3bc9c9
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS IDBCursor direction - index - next 
+PASS IDBCursor direction - index - prev 
+PASS IDBCursor direction - index - nextunique 
+PASS IDBCursor direction - index - prevunique 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-index-private.html
new file mode 100644 (file)
index 0000000..8e028fd
--- /dev/null
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<title>IDBCursor direction - index</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#cursor-iteration-operation">
+<link rel=assert title='If direction is "next", let found record be the first record in records which satisfy all of the following requirements'>
+<link rel=assert title="If position is defined, and source is an object store, the record's key is greater than position.">
+<link rel=assert title='If direction is "prev", let found record be the last record in records which satisfy all of the following requirements'>
+<link rel=assert title="If position is defined, and source is an object store, the record's key is less than position.">
+<link rel=assert title="Set cursor's position to found record's key. If source is an index, set cursor's object store position to found record's value.">
+<link rel=assert title="Set cursor's key to found record's key.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var records = [ "Alice", "Bob", "Bob", "Greg" ];
+    var directions = ["next", "prev", "nextunique", "prevunique"];
+    var tests = {};
+
+    directions.forEach(function(dir) {
+        tests[dir] = async_test(document.title + ' - ' + dir);
+    });
+
+    var open_rq = indexedDB.open("testdb-" + new Date().getTime() + Math.random());
+
+    open_rq.onupgradeneeded = function(e) {
+        var objStore = e.target.result.createObjectStore("test");
+        objStore.createIndex("idx", "name");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add({ name: records[i] }, i);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var db = e.target.result;
+        db.onerror = fail_helper("db.onerror");
+
+
+        // The tests
+        testdir('next',       ['Alice:0', 'Bob:1', 'Bob:2', 'Greg:3']);
+        testdir('prev',       ['Greg:3',  'Bob:2', 'Bob:1', 'Alice:0']);
+        testdir('nextunique', ['Alice:0', 'Bob:1', 'Greg:3']);
+        testdir('prevunique', ['Greg:3',  'Bob:1', 'Alice:0']);
+
+
+        // Test function
+        function testdir(dir, expect) {
+            var count = 0;
+            var t = tests[dir];
+            var rq = db.transaction("test").objectStore("test").index("idx").openCursor(undefined, dir);
+            rq.onsuccess = t.step_func(function(e) {
+                var cursor = e.target.result;
+                if (!cursor) {
+                    assert_equals(count, expect.length, "cursor runs");
+                    t.done();
+                }
+                assert_equals(cursor.value.name + ":" + cursor.primaryKey, expect[count], "cursor.value");
+                count++;
+                cursor.continue();
+            });
+            rq.onerror = t.step_func(function(e) {
+                e.preventDefault();
+                e.stopPropagation();
+                assert_unreached("rq.onerror - " + e.message);
+            });
+        }
+    };
+
+    // Fail handling
+    function fail_helper(name) {
+        return function() {
+            directions.forEach(function(dir) {
+                tests[dir].step(function() { assert_unreached(name); });
+            });
+        };
+    }
+    open_rq.onblocked = fail_helper('open_rq.onblocked');
+    open_rq.onerror = fail_helper('open_rq.onerror');
+</script>
+
+<div id=log> </div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-keyrange-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-keyrange-private-expected.txt
new file mode 100644 (file)
index 0000000..c43881a
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS IDBCursor direction - object store with keyrange - next 
+PASS IDBCursor direction - object store with keyrange - prev 
+PASS IDBCursor direction - object store with keyrange - nextunique 
+PASS IDBCursor direction - object store with keyrange - prevunique 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-keyrange-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-keyrange-private.html
new file mode 100644 (file)
index 0000000..9ae7ef5
--- /dev/null
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<title>IDBCursor direction - object store with keyrange</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#cursor-iteration-operation">
+<link rel=assert title='If direction is "next", let found record be the first record in records which satisfy all of the following requirements'>
+<link rel=assert title='If direction is "prev", let found record be the last record in records which satisfy all of the following requirements'>
+<link rel=assert title="If range is defined, the record's key is in range.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var records = [ 1337, "Alice", "Bob", "Greg", "Åke", ["Anne"] ];
+    var directions = ["next", "prev", "nextunique", "prevunique"];
+    var tests = {};
+
+    directions.forEach(function(dir) {
+        tests[dir] = async_test(document.title + ' - ' + dir);
+    });
+
+    var open_rq = indexedDB.open("testdb-" + new Date().getTime() + Math.random());
+
+    open_rq.onupgradeneeded = function(e) {
+        var objStore = e.target.result.createObjectStore("test");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i], records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var db = e.target.result;
+        db.onerror = fail_helper("db.onerror");
+
+
+        // The tests
+        testdir('next',       ['Alice', 'Bob', 'Greg']);
+        testdir('prev',       ['Greg', 'Bob', 'Alice']);
+        testdir('nextunique', ['Alice', 'Bob', 'Greg']);
+        testdir('prevunique', ['Greg', 'Bob', 'Alice']);
+
+
+        // Test function
+        function testdir(dir, expect) {
+            var count = 0;
+            var t = tests[dir];
+            var rq = db.transaction("test").objectStore("test").openCursor(IDBKeyRange.bound("AA", "ZZ"), dir);
+            rq.onsuccess = t.step_func(function(e) {
+                var cursor = e.target.result;
+                if (!cursor) {
+                    assert_equals(count, expect.length, "cursor runs");
+                    t.done();
+                }
+                assert_equals(cursor.value, expect[count], "cursor.value");
+                count++;
+                cursor.continue();
+            });
+            rq.onerror = t.step_func(function(e) {
+                e.preventDefault();
+                e.stopPropagation();
+                assert_unreached("rq.onerror - " + e.message);
+            });
+        }
+    };
+
+    // Fail handling
+    function fail_helper(name) {
+        return function() {
+            directions.forEach(function(dir) {
+                tests[dir].step(function() { assert_unreached(name); });
+            });
+        };
+    }
+    open_rq.onblocked = fail_helper('open_rq.onblocked');
+    open_rq.onerror = fail_helper('open_rq.onerror');
+</script>
+
+<div id=log> </div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-private-expected.txt
new file mode 100644 (file)
index 0000000..656028c
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS IDBCursor direction - object store - next 
+PASS IDBCursor direction - object store - prev 
+PASS IDBCursor direction - object store - nextunique 
+PASS IDBCursor direction - object store - prevunique 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-objectstore-private.html
new file mode 100644 (file)
index 0000000..a9f9815
--- /dev/null
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<title>IDBCursor direction - object store</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#cursor-iteration-operation">
+<link rel=assert title='If direction is "next", let found record be the first record in records which satisfy all of the following requirements'>
+<link rel=assert title="If position is defined, and source is an object store, the record's key is greater than position.">
+<link rel=assert title='If direction is "prev", let found record be the last record in records which satisfy all of the following requirements'>
+<link rel=assert title="If position is defined, and source is an object store, the record's key is less than position.">
+<link rel=assert title="Set cursor's position to found record's key. If source is an index, set cursor's object store position to found record's value.">
+<link rel=assert title="Set cursor's key to found record's key.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var records = [ "Alice", "Bob", "Greg" ];
+    var directions = ["next", "prev", "nextunique", "prevunique"];
+    var tests = {};
+
+    directions.forEach(function(dir) {
+        tests[dir] = async_test(document.title + ' - ' + dir);
+    });
+
+    var open_rq = indexedDB.open("testdb-" + new Date().getTime() + Math.random());
+
+    open_rq.onupgradeneeded = function(e) {
+        var objStore = e.target.result.createObjectStore("test");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i], records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var db = e.target.result;
+        db.onerror = fail_helper("db.onerror");
+
+
+        // The tests
+        testdir('next',       ['Alice', 'Bob', 'Greg']);
+        testdir('prev',       ['Greg', 'Bob', 'Alice']);
+        testdir('nextunique', ['Alice', 'Bob', 'Greg']);
+        testdir('prevunique', ['Greg', 'Bob', 'Alice']);
+
+
+        // Test function
+        function testdir(dir, expect) {
+            var count = 0;
+            var t = tests[dir];
+            var rq = db.transaction("test").objectStore("test").openCursor(undefined, dir);
+            rq.onsuccess = t.step_func(function(e) {
+                var cursor = e.target.result;
+                if (!cursor) {
+                    assert_equals(count, expect.length, "cursor runs");
+                    t.done();
+                }
+                assert_equals(cursor.value, expect[count], "cursor.value");
+                count++;
+                cursor.continue();
+            });
+            rq.onerror = t.step_func(function(e) {
+                e.preventDefault();
+                e.stopPropagation();
+                assert_unreached("rq.onerror - " + e.message);
+            });
+        }
+    };
+
+    // Fail handling
+    function fail_helper(name) {
+        return function() {
+            directions.forEach(function(dir) {
+                tests[dir].step(function() { assert_unreached(name); });
+            });
+        };
+    }
+    open_rq.onblocked = fail_helper('open_rq.onblocked');
+    open_rq.onerror = fail_helper('open_rq.onerror');
+</script>
+
+<div id=log> </div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-private-expected.txt
new file mode 100644 (file)
index 0000000..aca8489
--- /dev/null
@@ -0,0 +1,7 @@
+
+PASS IDBCursor.direction - undefined 
+PASS IDBCursor.direction - next 
+PASS IDBCursor.direction - prev 
+PASS IDBCursor.direction - nextunique 
+PASS IDBCursor.direction - prevunique 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-direction-private.html
new file mode 100644 (file)
index 0000000..8189d56
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<title>IDBCursor.direction</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    function cursor_direction(constant, dir)
+    {
+        var db,
+          t = async_test(document.title + " - " + dir),
+          expected = dir ? dir : "next";
+
+        var open_rq = createdb(t);
+
+        open_rq.onupgradeneeded = function(e) {
+            db = e.target.result;
+            var objStore = db.createObjectStore("test");
+
+            objStore.add("data", "key");
+        };
+
+        open_rq.onsuccess = t.step_func(function(e) {
+            var cursor_rq, count = 0;
+            var os = db.transaction("test")
+                       .objectStore("test");
+            if (dir)
+                cursor_rq = os.openCursor(undefined, dir);
+            else
+                cursor_rq = os.openCursor();
+
+            cursor_rq.onsuccess = t.step_func(function(e) {
+                var cursor = e.target.result;
+
+                assert_equals(cursor.direction, constant, 'direction constant');
+                assert_equals(cursor.direction, expected, 'direction');
+                assert_readonly(cursor, 'direction');
+
+                count++;
+                if (count >= 2)
+                    t.done();
+            });
+
+            var cursor_rq2 = db.transaction("test")
+                              .objectStore("test")
+                              .openCursor(undefined, constant);
+
+            cursor_rq2.onsuccess = t.step_func(function(e) {
+                var cursor = e.target.result;
+
+                assert_equals(cursor.direction, constant, 'direction constant (second try)');
+                assert_equals(cursor.direction, expected, 'direction (second try)');
+                assert_readonly(cursor, 'direction');
+
+                count++;
+                if (count >= 2)
+                    t.done();
+            });
+
+        });
+    }
+
+    cursor_direction("next");
+    cursor_direction("next",       "next");
+    cursor_direction("prev",       "prev");
+    cursor_direction("nextunique", "nextunique");
+    cursor_direction("prevunique", "prevunique");
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-key-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-key-private-expected.txt
new file mode 100644 (file)
index 0000000..1e13c13
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS IDBCursor.key - 1 
+PASS IDBCursor.key - key 
+PASS IDBCursor.key - my,key 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-key-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-key-private.html
new file mode 100644 (file)
index 0000000..ecb2827
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<title>IDBCursor.key</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    function cursor_key(key)
+    {
+        var db,
+          t = async_test(document.title + " - " + key);
+
+        var open_rq = createdb(t);
+        open_rq.onupgradeneeded = function(e) {
+            db = e.target.result;
+            var objStore = db.createObjectStore("test");
+
+            objStore.add("data", key);
+        };
+
+        open_rq.onsuccess = t.step_func(function(e) {
+            var cursor_rq = db.transaction("test")
+                              .objectStore("test")
+                              .openCursor();
+
+            cursor_rq.onsuccess = t.step_func(function(e) {
+                var cursor = e.target.result;
+                assert_equals(cursor.value, "data", "prequisite cursor.value");
+
+                assert_key_equals(cursor.key, key, 'key');
+                assert_readonly(cursor, 'key');
+
+                if (key instanceof Array) {
+                    cursor.key.push("new");
+                    key.push("new");
+
+                    assert_key_equals(cursor.key, key, 'key after array push');
+
+                    // But we can not change key (like readonly, just a bit different)
+                    cursor.key = 10;
+                    assert_key_equals(cursor.key, key, 'key after assignment');
+                }
+
+                t.done();
+            });
+        });
+    }
+
+    cursor_key(1);
+    cursor_key("key");
+    cursor_key(["my", "key"]);
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-primarykey-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-primarykey-private-expected.txt
new file mode 100644 (file)
index 0000000..0b05b6f
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS IDBCursor.primaryKey - 1 
+PASS IDBCursor.primaryKey - key 
+PASS IDBCursor.primaryKey - my,key 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-primarykey-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-primarykey-private.html
new file mode 100644 (file)
index 0000000..3072839
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<title>IDBCursor.primaryKey</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    function cursor_primarykey(key)
+    {
+        var db,
+          t = async_test(document.title + " - " + key);
+
+        var open_rq = createdb(t);
+        open_rq.onupgradeneeded = function(e) {
+            db = e.target.result;
+            var objStore = db.createObjectStore("test");
+            objStore.createIndex("index", "");
+
+            objStore.add("data", key);
+        };
+
+        open_rq.onsuccess = t.step_func(function(e) {
+            var cursor_rq = db.transaction("test")
+                              .objectStore("test")
+                              .index("index")
+                              .openCursor();
+
+            cursor_rq.onsuccess = t.step_func(function(e) {
+                var cursor = e.target.result;
+
+                assert_equals(cursor.value, "data", "prequisite cursor.value");
+                assert_equals(cursor.key, "data", "prequisite cursor.key");
+
+                assert_key_equals(cursor.primaryKey, key, 'primaryKey');
+                assert_readonly(cursor, 'primaryKey');
+
+                if (key instanceof Array) {
+                    cursor.primaryKey.push("new");
+                    key.push("new");
+
+                    assert_key_equals(cursor.primaryKey, key, 'primaryKey after array push');
+
+                    // But we can not change key (like readonly, just a bit different)
+                    cursor.key = 10;
+                    assert_key_equals(cursor.primaryKey, key, 'key after assignment');
+                }
+
+                t.done();
+            });
+        });
+    }
+
+    cursor_primarykey(1);
+    cursor_primarykey("key");
+    cursor_primarykey(["my", "key"]);
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-reused-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-reused-private-expected.txt
new file mode 100644 (file)
index 0000000..75833ec
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor is reused 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-reused-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-reused-private.html
new file mode 100644 (file)
index 0000000..7f9c8bf
--- /dev/null
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<title>IDBCursor is reused</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<meta rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-continue-void-any-key">
+<meta rel=assert title="Otherwise this method runs the steps for asynchronously executing a request. However, the steps are slightly modified such that instead of creating a new IDBRequest, it reuses the request originally created when this cursor was created. The done flag on the request is set to false before the request is returned. The steps are run with the cursor's source as source and the steps for iterating a cursor as operation, using this cursor as cursor and the key parameter as key.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+        var db
+        var open_rq = createdb(async_test())
+
+        open_rq.onupgradeneeded = function(e) {
+            db = e.target.result
+            var os = db.createObjectStore("test")
+
+            os.add("data",  "k")
+            os.add("data2", "k2")
+        }
+
+        open_rq.onsuccess = function(e) {
+            var cursor
+            var count = 0
+            var rq = db.transaction("test").objectStore("test").openCursor()
+
+            rq.onsuccess = this.step_func(function(e)
+            {
+                switch(count)
+                {
+                    case 0:
+                        cursor = e.target.result
+
+                        assert_equals(cursor.value, "data", "prequisite cursor.value")
+                        cursor.custom_cursor_value = 1
+                        e.target.custom_request_value = 2
+
+                        cursor.continue()
+                        break
+
+                    case 1:
+                        assert_equals(cursor.value, "data2", "prequisite cursor.value")
+                        assert_equals(cursor.custom_cursor_value, 1, "custom cursor value")
+                        assert_equals(e.target.custom_request_value, 2, "custom request value")
+
+                        cursor.advance(1)
+                        break
+
+                    case 2:
+                        assert_false(!!e.target.result, "got cursor")
+                        assert_equals(cursor.custom_cursor_value, 1, "custom cursor value")
+                        assert_equals(e.target.custom_request_value, 2, "custom request value")
+                        break
+                }
+                count++
+            })
+
+            rq.transaction.oncomplete = this.step_func(function() {
+                assert_equals(count, 3, "cursor callback runs")
+                assert_equals(rq.custom_request_value, 2, "variable placed on old IDBRequest")
+                assert_equals(cursor.custom_cursor_value, 1, "custom cursor value (transaction.complete)")
+                this.done()
+            })
+        }
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-source-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor-source-private-expected.txt
new file mode 100644 (file)
index 0000000..f831b3a
--- /dev/null
@@ -0,0 +1,4 @@
+
+PASS IDBCursor.source - IDBObjectStore 
+PASS IDBCursor.source - IDBIndex 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor-source-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor-source-private.html
new file mode 100644 (file)
index 0000000..80de1c3
--- /dev/null
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<title>IDBCursor.source</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    setup({ explicit_done: true });
+
+    var db;
+    var open_rq = indexedDB.open('testdb-' + new Date().getTime());
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("my_objectstore");
+        objStore.createIndex("my_index", "");
+
+        objStore.add("data",  1);
+        objStore.add("data2", 2);
+    };
+
+    function cursor_source(name, stringified_object, cursor_rq) {
+        var cursor;
+
+        cursor_rq.onsuccess = this.step_func(function(e) {
+            if (!e.target.result) {
+                return;
+            }
+            cursor = e.target.result;
+            assert_readonly(cursor, 'source');
+
+            // Direct try
+            assert_true(cursor.source instanceof Object, "source isobject");
+            assert_equals(cursor.source + "", stringified_object, "source");
+            assert_equals(cursor.source.name, name, "name");
+
+            cursor.continue();
+        });
+
+        cursor_rq.transaction.oncomplete = this.step_func(function(e) {
+            this.done();
+         });
+
+        cursor_rq.transaction.onerror = this.step_func(function(e) {
+            assert_unreached("Transaction got error. " + (e.target.error ? e.target.error.name : "unknown"));
+        });
+    }
+
+    open_rq.onsuccess = function() {
+        async_test(document.title + ' - IDBObjectStore').step(function() {
+            cursor_source.call(this, "my_objectstore", "[object IDBObjectStore]", db.transaction("my_objectstore")
+                                                       .objectStore("my_objectstore")
+                                                       .openCursor());
+        });
+
+        async_test(document.title + ' - IDBIndex').step(function() {
+            cursor_source.call(this, "my_index", "[object IDBIndex]", db.transaction("my_objectstore")
+                                                 .objectStore("my_objectstore")
+                                                 .index("my_index")
+                                                 .openCursor());
+        });
+
+        done();
+    };
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index-private-expected.txt
new file mode 100644 (file)
index 0000000..76d7d93
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - index - iterate cursor number of times specified by count  
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index-private.html
new file mode 100644 (file)
index 0000000..2c1f246
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<title>IDBCursor.advance() - index - iterate cursor number of times specified by count </title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src=support.js></script>
+
+<script>
+    var db,
+      count = 0,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" },
+                  { pKey: "primaryKey_2", iKey: "indexKey_2" },
+                  { pKey: "primaryKey_3", iKey: "indexKey_3" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var store = db.createObjectStore("test", {keyPath:"pKey"});
+        store.createIndex("idx", "iKey");
+
+        for(var i = 0; i < records.length; i++) {
+            store.add(records[i]);
+        }
+    };
+
+    open_rq.onsuccess = function (e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .index("idx")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+            assert_true(cursor instanceof IDBCursor);
+
+            switch(count) {
+                case 0:
+                    count += 3;
+                    cursor.advance(3);
+                    break;
+                case 3:
+                    var record = cursor.value;
+                    assert_equals(record.pKey, records[count].pKey, "record.pKey");
+                    assert_equals(record.iKey, records[count].iKey, "record.iKey");
+                    t.done();
+                    break;
+                default:
+                    assert_unreached("unexpected count");
+                    break;
+            }
+        });
+    }
+</script>
+
+<div id=log></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index2-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index2-private-expected.txt
new file mode 100644 (file)
index 0000000..11de17c
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - attempt to pass a count parameter that is not a number 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index2-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index2-private.html
new file mode 100644 (file)
index 0000000..08fb05d
--- /dev/null
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<title>IDBCursor.advance() - attempt to pass a count parameter that is not a number</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-advance-void-unsigned-long-count">
+<link rel=assert title="The value passed into the count parameter was zero or a negative number.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db,
+      t = async_test(document.title, {timeout: 10000}),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", {keyPath:"pKey"});
+
+        objStore.createIndex("index", "iKey");
+
+        for(var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .index("index")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+
+            assert_true(cursor != null, "cursor exist");
+            assert_throws(new TypeError(),
+                function() { cursor.advance(document); });
+
+            t.done();
+        });
+    };
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index3-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index3-private-expected.txt
new file mode 100644 (file)
index 0000000..c16af31
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - index - attempt to advance backwards 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index3-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index3-private.html
new file mode 100644 (file)
index 0000000..f8a1aef
--- /dev/null
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<title>IDBCursor.advance() - index - attempt to advance backwards</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-advance-void-unsigned-long-count">
+<link rel=assert title="The value passed into the count parameter was zero or a negative number.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script type="text/javascript">
+
+    var db,
+      t = async_test(document.title, {timeout: 10000}),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", { keyPath:"pKey" });
+
+        objStore.createIndex("index", "iKey");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .index("index")
+                          .openCursor(undefined, "next");
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+
+            assert_true(cursor != null, "cursor exist");
+            assert_throws(new TypeError(),
+                function() { cursor.advance(-1); });
+
+            t.done();
+        });
+    };
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index5-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index5-private-expected.txt
new file mode 100644 (file)
index 0000000..041e45e
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - index - iterate to the next record 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index5-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index5-private.html
new file mode 100644 (file)
index 0000000..80688f3
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<title>IDBCursor.advance() - index - iterate to the next record</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-advance-void-unsigned-long-count">
+<link rel=assert title="The operation runs the steps for iterating a cursor count number of times with null as key and this cursor as cursor.">
+<link rel=assert title="The number of advances forward the cursor should make.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var db,
+      count = 0,
+      t = async_test(document.title, {timeout: 10000}),
+      records = [ { pKey: "primaryKey_0",   iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1",   iKey: "indexKey_1" },
+                  { pKey: "primaryKey_1-2", iKey: "indexKey_1" } ],
+      expected = [ { pKey: "primaryKey_0",   iKey: "indexKey_0" },
+                   { pKey: "primaryKey_1-2", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result
+        var objStore = db.createObjectStore("test", { keyPath:"pKey" })
+
+        objStore.createIndex("index", "iKey")
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i])
+    };
+
+    open_rq.onsuccess = function(e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .index("index")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+            if (!cursor) {
+                assert_equals(count, expected.length, "cursor run count")
+                t.done()
+            }
+
+            var record = cursor.value;
+            assert_equals(record.pKey, expected[count].pKey, "primary key");
+            assert_equals(record.iKey, expected[count].iKey, "index key");
+
+            cursor.advance(2);
+            count++;
+        });
+    };
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index6-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index6-private-expected.txt
new file mode 100644 (file)
index 0000000..075211f
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - index - throw TypeError 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index6-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index6-private.html
new file mode 100644 (file)
index 0000000..74d653c
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.advance() - index - throw TypeError</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-advance-void-unsigned-long-count">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+    var db,
+        t = async_test(),
+        records = [{ pKey: "primaryKey_0", iKey: "indexKey_0" },
+                   { pKey: "primaryKey_1", iKey: "indexKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath : "pKey"});
+        objStore.createIndex("index", "iKey");
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+        var rq = objStore.index("index").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor);
+
+            assert_throws(new TypeError(), function() {
+                cursor.advance(0);
+            }, "Calling advance() with count argument 0 should throw TypeError.");
+
+            t.done();
+        });
+    }
+</script>
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index7-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index7-private-expected.txt
new file mode 100644 (file)
index 0000000..e2a447b
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - index - throw TransactionInactiveError 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index7-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index7-private.html
new file mode 100644 (file)
index 0000000..617cda0
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.advance() - index - throw TransactionInactiveError</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-advance-void-unsigned-long-count">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+    var db,
+        t = async_test(),
+        records = [{ pKey: "primaryKey_0", iKey: "indexKey_0" },
+                   { pKey: "primaryKey_1", iKey: "indexKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath : "pKey"});
+        objStore.createIndex("index", "iKey");
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+        var rq = objStore.index("index").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor);
+
+            event.target.transaction.abort();
+            assert_throws("TransactionInactiveError", function() {
+                cursor.advance(1);
+            }, "Calling advance() should throws an exception TransactionInactiveError when the transaction is not active.");
+
+            t.done();
+        });
+    }
+
+</script>
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index8-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index8-private-expected.txt
new file mode 100644 (file)
index 0000000..d82b14e
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - index - throw InvalidStateError 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index8-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index8-private.html
new file mode 100644 (file)
index 0000000..1cde9af
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.advance() - index - throw InvalidStateError</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-advance-void-unsigned-long-count">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+    var db,
+        t = async_test(),
+        records = [{ pKey: "primaryKey_0", iKey: "indexKey_0" },
+                   { pKey: "primaryKey_1", iKey: "indexKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath : "pKey"});
+        objStore.createIndex("index", "iKey");
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+        var rq = objStore.index("index").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor);
+
+            cursor.advance(1);
+            assert_throws("InvalidStateError", function() {
+                cursor.advance(1);
+            }, "Calling advance() should throw DOMException when the cursor is currently being iterated.");
+
+            t.done();
+        });
+    }
+</script>
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index9-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index9-private-expected.txt
new file mode 100644 (file)
index 0000000..4540a71
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - index - throw InvalidStateError caused by object store been deleted 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index9-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index9-private.html
new file mode 100644 (file)
index 0000000..091c1bc
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.advance() - index - throw InvalidStateError caused by object store been deleted</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+    var db,
+        t = async_test(),
+        records = [{ pKey: "primaryKey_0", iKey: "indexKey_0" },
+                   { pKey: "primaryKey_1", iKey: "indexKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath : "pKey"});
+        objStore.createIndex("index", "iKey");
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+        var rq = objStore.index("index").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor, "cursor exist");
+
+            db.deleteObjectStore("store");
+            assert_throws("InvalidStateError", function() {
+                cursor.advance(1);
+            }, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError");
+
+            t.done();
+        });
+    }
+</script>
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore-private-expected.txt
new file mode 100644 (file)
index 0000000..b103584
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS  IDBCursor.advance() - object store - iterate cursor number of times specified by count  
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore-private.html
new file mode 100644 (file)
index 0000000..b063c2b
--- /dev/null
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<title> IDBCursor.advance() - object store - iterate cursor number of times specified by count </title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src=support.js></script>
+
+<script>
+    var db,
+      count = 0,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0" },
+                  { pKey: "primaryKey_1" },
+                  { pKey: "primaryKey_2" },
+                  { pKey: "primaryKey_3" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var store = db.createObjectStore("test", {keyPath:"pKey"});
+
+        for(var i = 0; i < records.length; i++) {
+            store.add(records[i]);
+        }
+    };
+
+    open_rq.onsuccess = function (e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+            assert_true(cursor instanceof IDBCursor);
+
+            switch(count) {
+                case 0:
+                    count += 3;
+                    cursor.advance(3);
+                    break;
+                case 3:
+                    assert_equals(cursor.value.pKey, records[count].pKey, "cursor.value.pKey");
+                    t.done();
+                    break;
+                default:
+                    assert_unreached("unexpected count");
+                    break;
+            }
+        });
+    }
+
+</script>
+
+<div id=log> </div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore2-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore2-private-expected.txt
new file mode 100644 (file)
index 0000000..f6a7087
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - object store - throw TypeError 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore2-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore2-private.html
new file mode 100644 (file)
index 0000000..5acf7ff
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.advance() - object store - throw TypeError</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-advance-void-unsigned-long-count">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+    var db,
+        t = async_test(),
+        records = [{ pKey: "primaryKey_0"},
+                   { pKey: "primaryKey_1"}];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath:"pKey"});
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+    }
+
+    open_rq.onsuccess = function (event) {
+        var txn = db.transaction("store", "readwrite");
+        var rq = txn.objectStore("store").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor);
+
+            assert_throws(new TypeError(), function() {
+                cursor.advance(0);
+            }, "Calling advance() with count argument 0 should throw TypeError.");
+
+            t.done();
+        });
+    }
+</script>
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore3-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore3-private-expected.txt
new file mode 100644 (file)
index 0000000..fcb0deb
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - object store - throw TransactionInactiveError 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore3-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore3-private.html
new file mode 100644 (file)
index 0000000..98b5775
--- /dev/null
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.advance() - object store - throw TransactionInactiveError</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-advance-void-unsigned-long-count">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+    var db,
+        t = async_test(),
+        records = [{ pKey: "primaryKey_0"},
+                   { pKey: "primaryKey_1"}];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath:"pKey"});
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+    }
+
+    open_rq.onsuccess = function (event) {
+        var txn = db.transaction("store", "readwrite");
+        var rq = txn.objectStore("store").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor);
+
+            event.target.transaction.abort();
+            assert_throws("TransactionInactiveError", function() {
+                cursor.advance(1);
+            }, "Calling advance() should throws an exception TransactionInactiveError when the transaction is not active");
+
+            t.done();
+        });
+    }
+
+</script>
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore4-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore4-private-expected.txt
new file mode 100644 (file)
index 0000000..27ad79c
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - object store - throw InvalidStateError 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore4-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore4-private.html
new file mode 100644 (file)
index 0000000..dabf8e8
--- /dev/null
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.advance() - object store - throw InvalidStateError</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-advance-void-unsigned-long-count">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+    var db,
+        t = async_test(),
+        records = [{ pKey: "primaryKey_0"},
+                   { pKey: "primaryKey_1"}];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath:"pKey"});
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+    }
+
+    open_rq.onsuccess = function (event) {
+        var txn = db.transaction("store", "readwrite");
+        var rq = txn.objectStore("store").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor);
+
+            cursor.advance(1);
+            assert_throws("InvalidStateError", function() {
+                cursor.advance(1);
+            }, "Calling advance() should throw DOMException when the cursor is currently being iterated.");
+
+            t.done();
+        });
+    }
+</script>
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore5-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore5-private-expected.txt
new file mode 100644 (file)
index 0000000..127f3cb
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.advance() - object store - throw InvalidStateError caused by object store been deleted 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore5-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore5-private.html
new file mode 100644 (file)
index 0000000..ff61f6f
--- /dev/null
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.advance() - object store - throw InvalidStateError caused by object store been deleted</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+    var db,
+        t = async_test(),
+        records = [{ pKey: "primaryKey_0"},
+                   { pKey: "primaryKey_1"}];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath:"pKey"});
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+        var rq = objStore.openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor, "cursor exist");
+
+            db.deleteObjectStore("store");
+            assert_throws("InvalidStateError", function() {
+                cursor.advance(1);
+            }, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError");
+
+            t.done();
+        });
+    }
+</script>
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index-private-expected.txt
new file mode 100644 (file)
index 0000000..a4a005e
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - index - iterate to the next record 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index-private.html
new file mode 100644 (file)
index 0000000..0a82e27
--- /dev/null
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - index - iterate to the next record</title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-continue-void-any-key">
+<link rel=assert title="Otherwise this method runs the steps for asynchronously executing a request.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var db,
+      count = 0,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0",   iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1",   iKey: "indexKey_1" },
+                  { pKey: "primaryKey_1-2", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", { keyPath:"pKey" });
+
+        objStore.createIndex("index", "iKey");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .index("index")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+            if (!cursor) {
+                assert_equals(count, records.length, "cursor run count");
+                t.done();
+            }
+
+            var record = cursor.value;
+            assert_equals(record.pKey, records[count].pKey, "primary key");
+            assert_equals(record.iKey, records[count].iKey, "index key");
+
+            cursor.continue();
+            count++;
+        });
+    };
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index2-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index2-private-expected.txt
new file mode 100644 (file)
index 0000000..9e17310
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - index - attempt to pass a key parameter that is not a valid key 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index2-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index2-private.html
new file mode 100644 (file)
index 0000000..3a8898c
--- /dev/null
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - index - attempt to pass a key parameter that is not a valid key</title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-continue-void-any-key">
+<link rel=assert title="If the key parameter is specified and fulfills any of these conditions this method must throw a DOMException of type DataError">
+<link rel=assert title="The parameter is not a valid key.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", {keyPath:"pKey"});
+
+        objStore.createIndex("index", "iKey");
+
+        for(var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .index("index")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+
+            assert_throws("DataError",
+                function() { cursor.continue(document); });
+
+            assert_true(cursor instanceof IDBCursorWithValue, "cursor");
+
+            t.done();
+        });
+    };
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index3-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index3-private-expected.txt
new file mode 100644 (file)
index 0000000..d50d9f2
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - index - attempt to iterate to the previous record when the direction is set for the next record  
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index3-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index3-private.html
new file mode 100644 (file)
index 0000000..55eefa3
--- /dev/null
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - index - attempt to iterate to the previous record when the direction is set for the next record </title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-continue-void-any-key">
+<link rel=assert title="The parameter is less than or equal to this cursor's position and this cursor's direction is 'next' or 'nextunique'.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", {keyPath:"pKey"});
+
+        objStore.createIndex("index", "iKey");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var count = 0;
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .index("index")
+                          .openCursor(undefined, "next"); // XXX: Fx has issue with "undefined"
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+            if (!cursor) {
+                assert_equals(count, 2, "ran number of times");
+                t.done();
+            }
+
+            // First time checks key equal, second time checks key less than
+            assert_throws("DataError",
+                function() { cursor.continue(records[0].iKey); });
+
+            cursor.continue();
+
+            count++;
+        });
+    };
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index4-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index4-private-expected.txt
new file mode 100644 (file)
index 0000000..714069a
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - index - attempt to iterate to the next record when the direction is set for the previous record 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index4-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index4-private.html
new file mode 100644 (file)
index 0000000..d416c9f
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - index - attempt to iterate to the next record when the direction is set for the previous record</title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-continue-void-any-key">
+<link rel=assert title="The parameter is greater than or equal to this cursor's position and this cursor's direction is 'prev' or 'prevunique'.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" },
+                  { pKey: "primaryKey_2", iKey: "indexKey_2" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+        objStore.createIndex("index", "iKey");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var count = 0,
+          cursor_rq = db.transaction("test")
+                        .objectStore("test")
+                        .index("index")
+                        .openCursor(undefined, "prev"); // XXX Fx issues w undefined
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result,
+              record = cursor.value;
+
+            switch(count) {
+            case 0:
+                assert_equals(record.pKey, records[2].pKey, "first pKey");
+                assert_equals(record.iKey, records[2].iKey, "first iKey");
+                cursor.continue();
+                break;
+
+            case 1:
+                assert_equals(record.pKey, records[1].pKey, "second pKey");
+                assert_equals(record.iKey, records[1].iKey, "second iKey");
+                assert_throws("DataError",
+                    function() { cursor.continue("indexKey_2"); });
+                t.done();
+                break;
+
+            default:
+                assert_unreached("Unexpected count value: " + count);
+            }
+
+            count++;
+        });
+    };
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index5-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index5-private-expected.txt
new file mode 100644 (file)
index 0000000..ef44de7
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - index - iterate using 'prevunique' 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index5-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index5-private.html
new file mode 100644 (file)
index 0000000..b672ac1
--- /dev/null
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - index - iterate using 'prevunique'</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#cursor-iteration-operation">
+<link rel=assert title='If direction is "prevunique", let temp record be the last record in records which satisfy all of the following requirements:'>
+<link rel=assert title="If position is defined, the record's key is less than position.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db,
+      t = async_test(document.title, {timeout: 10000}),
+      records = [ { pKey: "primaryKey_0",   iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1",   iKey: "indexKey_1" },
+                  { pKey: "primaryKey_1-2", iKey: "indexKey_1" },
+                  { pKey: "primaryKey_2",   iKey: "indexKey_2" } ],
+
+      expected = [ { pKey: "primaryKey_2",   iKey: "indexKey_2" },
+                 { pKey: "primaryKey_1",   iKey: "indexKey_1" },
+                 { pKey: "primaryKey_0",   iKey: "indexKey_0" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+        objStore.createIndex("index", "iKey");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var count = 0,
+          cursor_rq = db.transaction("test")
+                        .objectStore("test")
+                        .index("index")
+                        .openCursor(undefined, 'prevunique');
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            if (!e.target.result) {
+                assert_equals(count, expected.length, 'count');
+                t.done();
+                return;
+            }
+            var cursor = e.target.result,
+              record = cursor.value;
+
+            assert_equals(record.pKey, expected[count].pKey, "pKey #" + count);
+            assert_equals(record.iKey, expected[count].iKey, "iKey #" + count);
+
+            assert_equals(cursor.key,  expected[count].iKey, "cursor.key #" + count);
+            assert_equals(cursor.primaryKey, expected[count].pKey, "cursor.primaryKey #" + count);
+
+            count++;
+            cursor.continue(expected[count] ? expected[count].iKey : undefined);
+        });
+    };
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index6-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index6-private-expected.txt
new file mode 100644 (file)
index 0000000..293beef
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - index - iterate using nextunique 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index6-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index6-private.html
new file mode 100644 (file)
index 0000000..489e54b
--- /dev/null
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - index - iterate using nextunique</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#cursor-iteration-operation">
+<link rel=assert title='If direction is "nextunique", let found record be the first record in records which satisfy all of the following requirements:'>
+<link rel=assert title="If position is defined, the record's key is greater than position.">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db,
+      t = async_test(document.title, {timeout: 10000}),
+      records = [ { pKey: "primaryKey_0",   iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1",   iKey: "indexKey_1" },
+                  { pKey: "primaryKey_1-2", iKey: "indexKey_1" },
+                  { pKey: "primaryKey_2",   iKey: "indexKey_2" } ],
+
+      expected = [ { pKey: "primaryKey_0",   iKey: "indexKey_0" },
+                 { pKey: "primaryKey_1",   iKey: "indexKey_1" },
+                 { pKey: "primaryKey_2",   iKey: "indexKey_2" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+        objStore.createIndex("index", "iKey");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var count = 0,
+          cursor_rq = db.transaction("test")
+                        .objectStore("test")
+                        .index("index")
+                        .openCursor(undefined, "nextunique");
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            if (!e.target.result) {
+                assert_equals(count, expected.length, 'count');
+                t.done();
+                return;
+            }
+            var cursor = e.target.result,
+              record = cursor.value;
+
+            assert_equals(record.pKey, expected[count].pKey, "pKey #" + count);
+            assert_equals(record.iKey, expected[count].iKey, "iKey #" + count);
+
+            assert_equals(cursor.key,  expected[count].iKey, "cursor.key #" + count);
+            assert_equals(cursor.primaryKey, expected[count].pKey, "cursor.primaryKey #" + count);
+
+            count++;
+            cursor.continue(expected[count] ? expected[count].iKey : undefined);
+        });
+    };
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index7-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index7-private-expected.txt
new file mode 100644 (file)
index 0000000..0300299
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - index - throw TransactionInactiveError 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index7-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index7-private.html
new file mode 100644 (file)
index 0000000..5ae6098
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.continue() - index - throw TransactionInactiveError</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath : "pKey"});
+        objStore.createIndex("index", "iKey");
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+        var rq = objStore.index("index").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor);
+
+            event.target.transaction.abort();
+            assert_throws("TransactionInactiveError", function() {
+                cursor.continue();
+            }, "Calling continue() should throws an exception TransactionInactiveError when the transaction is not active.");
+
+            t.done();
+        });
+    }
+
+</script>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index8-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index8-private-expected.txt
new file mode 100644 (file)
index 0000000..3fd7f35
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - index - throw InvalidStateError caused by object store been deleted 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index8-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index8-private.html
new file mode 100644 (file)
index 0000000..6ee57f5
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.continue() - index - throw InvalidStateError caused by object store been deleted</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath : "pKey"});
+        objStore.createIndex("index", "iKey");
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+        var rq = objStore.index("index").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor);
+
+            db.deleteObjectStore("store");
+            assert_throws("InvalidStateError", function() {
+                cursor.continue();
+            }, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError");
+
+            t.done();
+        });
+    }
+
+</script>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_invalid-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_invalid-private-expected.txt
new file mode 100644 (file)
index 0000000..d91a08b
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - attempt to call continue two times 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_invalid-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_invalid-private.html
new file mode 100644 (file)
index 0000000..657a6a0
--- /dev/null
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - attempt to call continue two times</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db,
+      t = async_test(document.title, {timeout: 10000});
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test");
+
+        objStore.createIndex("index", "");
+
+        objStore.add("data",  1);
+        objStore.add("data2", 2);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var count = 0;
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .index("index")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            if (!e.target.result) {
+                assert_equals(count, 2, 'count');
+                t.done();
+                return;
+            }
+            var cursor = e.target.result;
+
+            cursor.continue(undefined);
+
+            // Second try
+            assert_throws('InvalidStateError',
+                function() { cursor.continue(); }, 'second continue');
+
+            assert_throws('InvalidStateError',
+                function() { cursor.continue(3); }, 'third continue');
+
+            count++;
+        });
+    };
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore-private-expected.txt
new file mode 100644 (file)
index 0000000..e4c6a69
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - object store - iterate to the next record 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore-private.html
new file mode 100644 (file)
index 0000000..77e7816
--- /dev/null
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - object store - iterate to the next record</title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src=support.js></script>
+
+<script>
+    var db,
+      count = 0,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0" },
+                  { pKey: "primaryKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", {autoIncrement:true, keyPath:"pKey"});
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var store = db.transaction("test")
+                      .objectStore("test");
+
+        cursor_rq = store.openCursor();
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+            if (!cursor) {
+                assert_equals(count, records.length, "cursor run count");
+                t.done();
+            }
+
+            var record = cursor.value;
+            assert_equals(record.pKey, records[count].pKey, "primary key");
+            assert_equals(record.iKey, records[count].iKey, "index key");
+
+            cursor.continue();
+            count++;
+        });
+    };
+</script>
+
+<div id=log> </div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore2-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore2-private-expected.txt
new file mode 100644 (file)
index 0000000..da9c6b5
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - object store - attempt to pass a key parameter is not a valid key  
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore2-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore2-private.html
new file mode 100644 (file)
index 0000000..44e438f
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - object store - attempt to pass a key parameter is not a valid key </title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0" },
+                  { pKey: "primaryKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", {keyPath:"pKey"});
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+
+            assert_true(cursor instanceof IDBCursor, "cursor exists");
+            assert_throws("DataError",
+                function() { cursor.continue(document); });
+
+            t.done();
+        });
+    };
+</script>
+
+<div id="log"> </div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore3-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore3-private-expected.txt
new file mode 100644 (file)
index 0000000..6680803
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - object store - attempt to iterate to the previous record when the direction is set for the next record 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore3-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore3-private.html
new file mode 100644 (file)
index 0000000..c8042e4
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - object store - attempt to iterate to the previous record when the direction is set for the next record</title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0" },
+                  { pKey: "primaryKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", {keyPath:"pKey"});
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .openCursor(undefined, "next");
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+
+            assert_true(cursor instanceof IDBCursor, "cursor exist");
+            assert_throws("DataError",
+                function() { cursor.continue(records[0].pKey); });
+
+            t.done();
+        });
+    };
+</script>
+
+<div id="log"> </div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore4-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore4-private-expected.txt
new file mode 100644 (file)
index 0000000..15f31b5
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - object store - attempt to iterate to the next record when the direction is set for the previous record  
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore4-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore4-private.html
new file mode 100644 (file)
index 0000000..60d91d9
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<title>IDBCursor.continue() - object store - attempt to iterate to the next record when the direction is set for the previous record </title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0" },
+                  { pKey: "primaryKey_1" },
+                  { pKey: "primaryKey_2" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var count = 0,
+          cursor_rq = db.transaction("test")
+                        .objectStore("test")
+                        .openCursor(null, "prev");
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+
+            assert_true(cursor != null, "cursor exist");
+
+            switch(count) {
+            case 0:
+                assert_equals(cursor.value.pKey, records[2].pKey, "first cursor pkey");
+                cursor.continue(records[1].pKey);
+                break;
+
+            case 1:
+                assert_equals(cursor.value.pKey, records[1].pKey, "second cursor pkey");
+                assert_throws("DataError",
+                    function() { cursor.continue(records[2].pKey); });
+                t.done();
+                break;
+
+            default:
+                assert_unreached("Unexpected count value: " + count);
+            }
+
+            count++;
+        });
+    };
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore5-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore5-private-expected.txt
new file mode 100644 (file)
index 0000000..e9a1a87
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - object store - throw TransactionInactiveError 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore5-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore5-private.html
new file mode 100644 (file)
index 0000000..026315c
--- /dev/null
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.continue() - object store - throw TransactionInactiveError</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"> </div>
+<script>
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0" },
+                  { pKey: "primaryKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", {keyPath:"pKey"});
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+            assert_true(cursor instanceof IDBCursor, "cursor exists");
+
+            e.target.transaction.abort();
+            assert_throws("TransactionInactiveError", function() {
+                cursor.continue();
+            }, "Calling continue() should throws an exception TransactionInactiveError when the transaction is not active.");
+
+
+            t.done();
+        });
+    };
+</script>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore6-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore6-private-expected.txt
new file mode 100644 (file)
index 0000000..6ee0f13
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.continue() - object store - throw InvalidStateError caused by object store been deleted 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore6-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore6-private.html
new file mode 100644 (file)
index 0000000..b569559
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.continue() - object store - throw InvalidStateError caused by object store been deleted</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"> </div>
+<script>
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0" },
+                  { pKey: "primaryKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", {keyPath:"pKey"});
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+
+        var cursor_rq = objStore.openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+            assert_true(cursor instanceof IDBCursor, "cursor exists");
+
+            db.deleteObjectStore("test");
+            assert_throws("InvalidStateError", function() {
+                cursor.continue();
+            }, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError");
+
+            t.done();
+        });
+    }
+</script>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index-private-expected.txt
new file mode 100644 (file)
index 0000000..c985f9c
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.delete() - index - remove a record from the object store 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index-private.html
new file mode 100644 (file)
index 0000000..fe30acf
--- /dev/null
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<title>IDBCursor.delete() - index - remove a record from the object store</title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db,
+      count = 0,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+
+        var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+        objStore.createIndex("index", "iKey");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = t.step_func(CursorDeleteRecord);
+
+
+    function CursorDeleteRecord(e) {
+        var txn = db.transaction("test", "readwrite"),
+          cursor_rq = txn.objectStore("test")
+                         .index("index")
+                         .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+
+            assert_true(cursor instanceof IDBCursor, "cursor exist");
+            cursor.delete();
+        });
+
+        txn.oncomplete = t.step_func(VerifyRecordWasDeleted);
+    }
+
+
+    function VerifyRecordWasDeleted(e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+
+            if (!cursor) {
+                assert_equals(count, 1, 'count');
+                t.done();
+            }
+
+            assert_equals(cursor.value.pKey, records[1].pKey);
+            assert_equals(cursor.value.iKey, records[1].iKey);
+            cursor.continue();
+            count++;
+        });
+    }
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index2-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index2-private-expected.txt
new file mode 100644 (file)
index 0000000..ffbace6
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.delete() - index - attempt to remove a record in a read-only transaction 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index2-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index2-private.html
new file mode 100644 (file)
index 0000000..133f912
--- /dev/null
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<title>IDBCursor.delete() - index - attempt to remove a record in a read-only transaction</title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+
+        var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+        objStore.createIndex("index", "iKey");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function(e) {
+        var cursor_rq = db.transaction("test")
+                          .objectStore("test")
+                          .index("index")
+                          .openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+
+            assert_true(cursor instanceof IDBCursor, "cursor exist");
+            assert_throws('ReadOnlyError', function() { cursor.delete(); });
+            t.done();
+        });
+    }
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index3-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index3-private-expected.txt
new file mode 100644 (file)
index 0000000..16bf172
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.delete() - index - attempt to remove a record in an inactive transaction 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index3-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index3-private.html
new file mode 100644 (file)
index 0000000..c1c3044
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<title>IDBCursor.delete() - index - attempt to remove a record in an inactive transaction</title>
+<link rel="author" title="Microsoft" href="http://www.microsoft.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+
+    var db,
+      t = async_test(),
+      records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+                  { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function(e) {
+        db = e.target.result;
+        var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+        var index = objStore.createIndex("index", "iKey");
+
+        for (var i = 0; i < records.length; i++)
+            objStore.add(records[i]);
+
+        var cursor_rq = index.openCursor();
+
+        cursor_rq.onsuccess = t.step_func(function(e) {
+            var cursor = e.target.result;
+            assert_true(cursor instanceof IDBCursor, "cursor exist");
+            window.cursor = cursor;
+        });
+
+        e.target.transaction.oncomplete = t.step_func(function(e) {
+            assert_throws('TransactionInactiveError', function() { window.cursor.delete(); })
+            t.done();
+        });
+    }
+
+</script>
+
+<div id="log"></div>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index4-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index4-private-expected.txt
new file mode 100644 (file)
index 0000000..37360a8
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.delete() - index - throw InvalidStateError caused by object store been deleted 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index4-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index4-private.html
new file mode 100644 (file)
index 0000000..ff6e576
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.delete() - index - throw InvalidStateError caused by object store been deleted</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+
+    var db,
+        t = async_test(),
+        records = [{ pKey: "primaryKey_0", iKey: "indexKey_0" },
+                   { pKey: "primaryKey_1", iKey: "indexKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath : "pKey"});
+        objStore.createIndex("index", "iKey");
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+        var rq = objStore.index("index").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor, "cursor exist");
+
+            db.deleteObjectStore("store");
+            assert_throws("InvalidStateError", function() {
+                cursor.delete();
+            }, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError");
+
+            t.done();
+        });
+    }
+
+</script>
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index5-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index5-private-expected.txt
new file mode 100644 (file)
index 0000000..d69aaaf
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.delete() - index - throw InvalidStateError when the cursor is being iterated 
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index5-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index5-private.html
new file mode 100644 (file)
index 0000000..4fc0e29
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IDBCursor.delete() - index - throw InvalidStateError when the cursor is being iterated</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-delete-IDBRequest">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+<div id="log"></div>
+<script>
+    var db,
+        t = async_test(),
+        records = [{ pKey: "primaryKey_0", iKey: "indexKey_0" },
+                   { pKey: "primaryKey_1", iKey: "indexKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event) {
+        db = event.target.result;
+        var objStore = db.createObjectStore("store", {keyPath : "pKey"});
+        objStore.createIndex("index", "iKey");
+        for (var i = 0; i < records.length; i++) {
+            objStore.add(records[i]);
+        }
+
+        var rq = objStore.index("index").openCursor();
+        rq.onsuccess = t.step_func(function(event) {
+            var cursor = event.target.result;
+            assert_true(cursor instanceof IDBCursor, "cursor exist");
+
+            cursor.continue();
+            assert_throws("InvalidStateError", function() {
+                cursor.delete();
+            });
+
+            t.done();
+        });
+    }
+</script>
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore-private-expected.txt b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore-private-expected.txt
new file mode 100644 (file)
index 0000000..ec660fa
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS IDBCursor.delete() - object store - remove a record from the object store  
+
diff --git a/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore-private.html b/LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore-private.html
new file mode 100644 (file)
index 0000000..ec2ad47
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<title>IDBCursor.delete() - object store - remove a record from the object store </title>