haikuwebkit/LayoutTests/storage/indexeddb/key-generator-expected.txt

209 lines
6.0 KiB
Plaintext
Raw Permalink Normal View History

Test IndexedDB's key generator behavior.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
IndexedDB layout tests: factor out prefix-handling-code https://bugs.webkit.org/show_bug.cgi?id=80664 This makes our tests vendor neutral so that we can load them in any browser to check what that browser does. Also changed some instances of 'window' to 'self' so that they are more worker friendly. Reviewed by Tony Chang. * storage/indexeddb/basics-expected.txt: * storage/indexeddb/basics-shared-workers-expected.txt: * storage/indexeddb/basics-workers-expected.txt: * storage/indexeddb/constants-expected.txt: * storage/indexeddb/constants.html: * storage/indexeddb/create-and-remove-object-store-expected.txt: * storage/indexeddb/create-and-remove-object-store.html: * storage/indexeddb/create-object-store-options-expected.txt: * storage/indexeddb/create-object-store-options.html: * storage/indexeddb/createObjectStore-name-argument-required-expected.txt: * storage/indexeddb/createObjectStore-name-argument-required.html: * storage/indexeddb/createObjectStore-null-name-expected.txt: * storage/indexeddb/createObjectStore-null-name.html: * storage/indexeddb/cursor-continue-expected.txt: * storage/indexeddb/cursor-continue.html: * storage/indexeddb/cursor-delete-expected.txt: * storage/indexeddb/cursor-delete.html: * storage/indexeddb/cursor-inconsistency-expected.txt: * storage/indexeddb/cursor-inconsistency.html: * storage/indexeddb/cursor-index-delete-expected.txt: * storage/indexeddb/cursor-index-delete.html: * storage/indexeddb/cursor-key-order-expected.txt: * storage/indexeddb/cursor-key-order.html: * storage/indexeddb/cursor-primary-key-order-expected.txt: * storage/indexeddb/cursor-primary-key-order.html: * storage/indexeddb/cursor-reverse-bug-expected.txt: * storage/indexeddb/cursor-reverse-bug.html: * storage/indexeddb/cursor-skip-deleted-expected.txt: * storage/indexeddb/cursor-skip-deleted.html: * storage/indexeddb/cursor-update-expected.txt: * storage/indexeddb/cursor-update-value-argument-required-expected.txt: * storage/indexeddb/cursor-update-value-argument-required.html: * storage/indexeddb/cursor-update.html: * storage/indexeddb/data-corruption-expected.txt: * storage/indexeddb/data-corruption.html: * storage/indexeddb/database-basics-expected.txt: * storage/indexeddb/database-basics.html: * storage/indexeddb/database-name-undefined-expected.txt: * storage/indexeddb/database-name-undefined.html: * storage/indexeddb/database-odd-names-expected.txt: * storage/indexeddb/database-odd-names.html: * storage/indexeddb/database-quota-expected.txt: * storage/indexeddb/database-quota.html: * storage/indexeddb/delete-closed-database-object-expected.txt: * storage/indexeddb/delete-closed-database-object.html: * storage/indexeddb/delete-range-expected.txt: * storage/indexeddb/delete-range.html: * storage/indexeddb/deleteIndex-expected.txt: * storage/indexeddb/deleteIndex.html: * storage/indexeddb/deleteObjectStore-name-argument-required-expected.txt: * storage/indexeddb/deleteObjectStore-name-argument-required.html: * storage/indexeddb/deleteObjectStore-null-name-expected.txt: * storage/indexeddb/deleteObjectStore-null-name.html: * storage/indexeddb/duplicates-expected.txt: * storage/indexeddb/duplicates.html: * storage/indexeddb/error-causes-abort-by-default-expected.txt: * storage/indexeddb/error-causes-abort-by-default.html: * storage/indexeddb/exception-in-event-aborts-expected.txt: * storage/indexeddb/exception-in-event-aborts.html: * storage/indexeddb/factory-basics-expected.txt: * storage/indexeddb/factory-basics.html: * storage/indexeddb/factory-cmp-expected.txt: * storage/indexeddb/factory-cmp.html: * storage/indexeddb/factory-deletedatabase-expected.txt: * storage/indexeddb/factory-deletedatabase-interactions-expected.txt: * storage/indexeddb/factory-deletedatabase-interactions.html: * storage/indexeddb/factory-deletedatabase.html: * storage/indexeddb/index-basics-expected.txt: * storage/indexeddb/index-basics-workers-expected.txt: * storage/indexeddb/index-count-expected.txt: * storage/indexeddb/index-count.html: * storage/indexeddb/index-cursor-expected.txt: * storage/indexeddb/index-cursor.html: * storage/indexeddb/index-get-key-argument-required-expected.txt: * storage/indexeddb/index-get-key-argument-required.html: * storage/indexeddb/index-multientry-expected.txt: * storage/indexeddb/index-multientry.html: * storage/indexeddb/index-population-expected.txt: * storage/indexeddb/index-population.html: * storage/indexeddb/index-unique-expected.txt: * storage/indexeddb/index-unique.html: * storage/indexeddb/invalid-keys-expected.txt: * storage/indexeddb/invalid-keys.html: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/key-generator.html: * storage/indexeddb/key-sort-order-across-types-expected.txt: * storage/indexeddb/key-sort-order-across-types.html: * storage/indexeddb/key-sort-order-date-expected.txt: * storage/indexeddb/key-sort-order-date.html: * storage/indexeddb/key-type-array-expected.txt: * storage/indexeddb/key-type-array.html: * storage/indexeddb/key-type-infinity-expected.txt: * storage/indexeddb/key-type-infinity.html: * storage/indexeddb/keypath-basics-expected.txt: * storage/indexeddb/keypath-basics.html: * storage/indexeddb/keypath-edges-expected.txt: * storage/indexeddb/keypath-edges.html: * storage/indexeddb/keypath-fetch-key-expected.txt: * storage/indexeddb/keypath-fetch-key.html: * storage/indexeddb/keyrange-expected.txt: * storage/indexeddb/keyrange-required-arguments-expected.txt: * storage/indexeddb/keyrange-required-arguments.html: * storage/indexeddb/keyrange.html: * storage/indexeddb/list-ordering-expected.txt: * storage/indexeddb/list-ordering.html: * storage/indexeddb/mozilla/add-twice-failure-expected.txt: * storage/indexeddb/mozilla/add-twice-failure.html: * storage/indexeddb/mozilla/autoincrement-indexes-expected.txt: * storage/indexeddb/mozilla/autoincrement-indexes.html: * storage/indexeddb/mozilla/bad-keypath-expected.txt: * storage/indexeddb/mozilla/bad-keypath.html: * storage/indexeddb/mozilla/clear-expected.txt: * storage/indexeddb/mozilla/clear.html: * storage/indexeddb/mozilla/create-index-unique-expected.txt: * storage/indexeddb/mozilla/create-index-unique.html: * storage/indexeddb/mozilla/create-index-with-integer-keys-expected.txt: * storage/indexeddb/mozilla/create-index-with-integer-keys.html: * storage/indexeddb/mozilla/create-objectstore-basics-expected.txt: * storage/indexeddb/mozilla/create-objectstore-basics.html: * storage/indexeddb/mozilla/create-objectstore-null-name-expected.txt: * storage/indexeddb/mozilla/create-objectstore-null-name.html: * storage/indexeddb/mozilla/cursor-mutation-expected.txt: * storage/indexeddb/mozilla/cursor-mutation-objectstore-only-expected.txt: * storage/indexeddb/mozilla/cursor-mutation-objectstore-only.html: * storage/indexeddb/mozilla/cursor-mutation.html: * storage/indexeddb/mozilla/cursor-update-updates-indexes-expected.txt: * storage/indexeddb/mozilla/cursor-update-updates-indexes.html: * storage/indexeddb/mozilla/cursors-expected.txt: * storage/indexeddb/mozilla/cursors.html: * storage/indexeddb/mozilla/delete-result-expected.txt: * storage/indexeddb/mozilla/delete-result.html: * storage/indexeddb/mozilla/event-source-expected.txt: * storage/indexeddb/mozilla/event-source.html: * storage/indexeddb/mozilla/global-data-expected.txt: * storage/indexeddb/mozilla/global-data.html: * storage/indexeddb/mozilla/indexes-expected.txt: * storage/indexeddb/mozilla/indexes.html: * storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt: * storage/indexeddb/mozilla/key-requirements-delete-null-key.html: * storage/indexeddb/mozilla/key-requirements-expected.txt: * storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt: * storage/indexeddb/mozilla/key-requirements-inline-and-passed.html: * storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt: * storage/indexeddb/mozilla/key-requirements-put-no-key.html: * storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt: * storage/indexeddb/mozilla/key-requirements-put-null-key.html: * storage/indexeddb/mozilla/key-requirements.html: * storage/indexeddb/mozilla/object-cursors-expected.txt: * storage/indexeddb/mozilla/object-cursors.html: * storage/indexeddb/mozilla/object-identity-expected.txt: * storage/indexeddb/mozilla/object-identity.html: * storage/indexeddb/mozilla/object-store-inline-autoincrement-key-added-on-put-expected.txt: * storage/indexeddb/mozilla/object-store-inline-autoincrement-key-added-on-put.html: * storage/indexeddb/mozilla/object-store-remove-values-expected.txt: * storage/indexeddb/mozilla/object-store-remove-values.html: * storage/indexeddb/mozilla/objectstorenames-expected.txt: * storage/indexeddb/mozilla/objectstorenames.html: * storage/indexeddb/mozilla/odd-result-order-expected.txt: * storage/indexeddb/mozilla/odd-result-order.html: * storage/indexeddb/mozilla/open-database-null-name-expected.txt: * storage/indexeddb/mozilla/open-database-null-name.html: * storage/indexeddb/mozilla/put-get-values-expected.txt: * storage/indexeddb/mozilla/put-get-values.html: * storage/indexeddb/mozilla/readonly-transactions-expected.txt: * storage/indexeddb/mozilla/readonly-transactions.html: * storage/indexeddb/mozilla/readwrite-transactions-expected.txt: * storage/indexeddb/mozilla/readwrite-transactions.html: * storage/indexeddb/mozilla/readyState-expected.txt: * storage/indexeddb/mozilla/readyState.html: * storage/indexeddb/mozilla/remove-index-expected.txt: * storage/indexeddb/mozilla/remove-index.html: * storage/indexeddb/mozilla/remove-objectstore-expected.txt: * storage/indexeddb/mozilla/remove-objectstore.html: * storage/indexeddb/mozilla/versionchange-abort-expected.txt: * storage/indexeddb/mozilla/versionchange-abort.html: * storage/indexeddb/mozilla/versionchange-expected.txt: * storage/indexeddb/mozilla/versionchange.html: * storage/indexeddb/mutating-cursor-expected.txt: * storage/indexeddb/mutating-cursor.html: * storage/indexeddb/objectStore-required-arguments-expected.txt: * storage/indexeddb/objectStore-required-arguments.html: * storage/indexeddb/objectstore-autoincrement-expected.txt: * storage/indexeddb/objectstore-autoincrement.html: * storage/indexeddb/objectstore-basics-expected.txt: * storage/indexeddb/objectstore-basics-workers-expected.txt: * storage/indexeddb/objectstore-clear-expected.txt: * storage/indexeddb/objectstore-clear.html: * storage/indexeddb/objectstore-count-expected.txt: * storage/indexeddb/objectstore-count.html: * storage/indexeddb/objectstore-cursor-expected.txt: * storage/indexeddb/objectstore-cursor.html: * storage/indexeddb/objectstore-removeobjectstore-expected.txt: * storage/indexeddb/objectstore-removeobjectstore.html: * storage/indexeddb/odd-strings-expected.txt: * storage/indexeddb/odd-strings.html: * storage/indexeddb/open-close-version-expected.txt: * storage/indexeddb/open-close-version.html: * storage/indexeddb/open-cursor-expected.txt: * storage/indexeddb/open-cursor.html: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/open-during-transaction.html: * storage/indexeddb/prefetch-bugfix-108071-expected.txt: * storage/indexeddb/prefetch-bugfix-108071.html: * storage/indexeddb/queued-commands-expected.txt: * storage/indexeddb/queued-commands.html: * storage/indexeddb/readonly-expected.txt: * storage/indexeddb/readonly-properties-expected.txt: * storage/indexeddb/readonly-properties.html: * storage/indexeddb/readonly.html: * storage/indexeddb/request-event-propagation-expected.txt: * storage/indexeddb/request-event-propagation.html: * storage/indexeddb/resources/basics.js: (test): (openCallback): * storage/indexeddb/resources/index-basics.js: (test): * storage/indexeddb/resources/objectstore-basics.js: (test): (setVersionSuccess): (createIndex): (addData): (addAgainFailure): (removeSuccessButNotThere): (testPreConditions.request.onsuccess): (testPreConditions): * storage/indexeddb/resources/shared.js: (removeVendorPrefixes): * storage/indexeddb/resources/transaction-abort-workers.js: (transactionAborted): (transactionCompleted): (timeoutTest.transaction.onabort): (timeoutTest): (errorTransactionAborted): * storage/indexeddb/setVersion-null-expected.txt: * storage/indexeddb/setVersion-null.html: * storage/indexeddb/setVersion-undefined-expected.txt: * storage/indexeddb/setVersion-undefined.html: * storage/indexeddb/set_version_blocked-expected.txt: * storage/indexeddb/set_version_blocked.html: * storage/indexeddb/set_version_queue-expected.txt: * storage/indexeddb/set_version_queue.html: * storage/indexeddb/structured-clone-expected.txt: * storage/indexeddb/structured-clone.html: * storage/indexeddb/transaction-abort-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion-cross-frame-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion-cross-frame.html: * storage/indexeddb/transaction-abort-with-js-recursion-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion.html: * storage/indexeddb/transaction-abort-workers-expected.txt: * storage/indexeddb/transaction-abort.html: * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/transaction-after-close.html: * storage/indexeddb/transaction-and-objectstore-calls-expected.txt: * storage/indexeddb/transaction-and-objectstore-calls.html: * storage/indexeddb/transaction-basics-expected.txt: * storage/indexeddb/transaction-basics.html: * storage/indexeddb/transaction-crash-on-abort-expected.txt: * storage/indexeddb/transaction-crash-on-abort.html: * storage/indexeddb/transaction-event-propagation-expected.txt: * storage/indexeddb/transaction-event-propagation.html: * storage/indexeddb/transaction-read-only-expected.txt: * storage/indexeddb/transaction-read-only.html: * storage/indexeddb/transaction-rollback-expected.txt: * storage/indexeddb/transaction-rollback.html: * storage/indexeddb/transaction-storeNames-required-expected.txt: * storage/indexeddb/transaction-storeNames-required.html: * storage/indexeddb/two-version-changes-expected.txt: * storage/indexeddb/two-version-changes.html: * storage/indexeddb/value-undefined-expected.txt: * storage/indexeddb/value-undefined.html: * storage/indexeddb/values-odd-types-expected.txt: * storage/indexeddb/values-odd-types.html: * storage/indexeddb/version-change-abort-expected.txt: * storage/indexeddb/version-change-abort.html: * storage/indexeddb/version-change-exclusive-expected.txt: * storage/indexeddb/version-change-exclusive.html: * storage/indexeddb/versionchangerequest-activedomobject-expected.txt: * storage/indexeddb/versionchangerequest-activedomobject.html: Canonical link: https://commits.webkit.org/98319@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110750 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-14 21:20:56 +00:00
indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
Verify that each object store has an independent key generator.
IndexedDB: setVersion batch 8 https://bugs.webkit.org/show_bug.cgi?id=102434 Reviewed by Tony Chang. 2 lines were added to intversion-bad-parameters to capture the tests that were in the now-deleted setVersion-{null,undefined}. * storage/indexeddb/intversion-bad-parameters-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/readonly-properties-expected.txt: * storage/indexeddb/resources/intversion-bad-parameters.js: (deleteSuccess): * storage/indexeddb/resources/key-generator.js: Again awkward to call indexedDBTest all over the place. The prefix line's gotta go, and we could also pull a resetDatabase method out of indexedDBTest that would just do a delete and open. (runTests.nextTest.prepareDatabase): (runTests.nextTest.onSuccess.finishTest): (runTests.nextTest.onSuccess): (runTests.nextTest): (testAcrossConnections.prepareDatabase): * storage/indexeddb/resources/open-during-transaction.js: (prepareDatabase.event.target.transaction.oncomplete): (prepareDatabase): (tryOpens): * storage/indexeddb/resources/readonly-properties.js: (prepareDatabase): * storage/indexeddb/resources/setVersion-null.js: Removed. * storage/indexeddb/resources/setVersion-undefined.js: Removed. * storage/indexeddb/resources/transaction-after-close.js: (prepareDatabase): (firstTransactionComplete): (onFinalPutSuccess): * storage/indexeddb/resources/versionchangerequest-activedomobject.js: (testSetVersion): (upgradeNeededCallback): (successCallback): * storage/indexeddb/setVersion-null-expected.txt: Removed. * storage/indexeddb/setVersion-null.html: Removed. * storage/indexeddb/setVersion-undefined-expected.txt: Removed. * storage/indexeddb/setVersion-undefined.html: Removed. * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/versionchangerequest-activedomobject-expected.txt: Canonical link: https://commits.webkit.org/120565@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@134866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-11-16 01:14:12 +00:00
indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
store1 = db.createObjectStore('store1', { autoIncrement: true })
store1.put('a')
request = store.get(1)
store2 = db.createObjectStore('store2', { autoIncrement: true })
store2.put('a')
request = store.get(1)
store1.put('b')
request = store.get(2)
store2.put('b')
request = store.get(2)
PASS Got "a" for key: 1
PASS Got "a" for key: 1
PASS Got "b" for key: 2
PASS Got "b" for key: 2
db.close()
Verify that the key generator is not updated if insertion fails
IndexedDB: setVersion batch 8 https://bugs.webkit.org/show_bug.cgi?id=102434 Reviewed by Tony Chang. 2 lines were added to intversion-bad-parameters to capture the tests that were in the now-deleted setVersion-{null,undefined}. * storage/indexeddb/intversion-bad-parameters-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/readonly-properties-expected.txt: * storage/indexeddb/resources/intversion-bad-parameters.js: (deleteSuccess): * storage/indexeddb/resources/key-generator.js: Again awkward to call indexedDBTest all over the place. The prefix line's gotta go, and we could also pull a resetDatabase method out of indexedDBTest that would just do a delete and open. (runTests.nextTest.prepareDatabase): (runTests.nextTest.onSuccess.finishTest): (runTests.nextTest.onSuccess): (runTests.nextTest): (testAcrossConnections.prepareDatabase): * storage/indexeddb/resources/open-during-transaction.js: (prepareDatabase.event.target.transaction.oncomplete): (prepareDatabase): (tryOpens): * storage/indexeddb/resources/readonly-properties.js: (prepareDatabase): * storage/indexeddb/resources/setVersion-null.js: Removed. * storage/indexeddb/resources/setVersion-undefined.js: Removed. * storage/indexeddb/resources/transaction-after-close.js: (prepareDatabase): (firstTransactionComplete): (onFinalPutSuccess): * storage/indexeddb/resources/versionchangerequest-activedomobject.js: (testSetVersion): (upgradeNeededCallback): (successCallback): * storage/indexeddb/setVersion-null-expected.txt: Removed. * storage/indexeddb/setVersion-null.html: Removed. * storage/indexeddb/setVersion-undefined-expected.txt: Removed. * storage/indexeddb/setVersion-undefined.html: Removed. * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/versionchangerequest-activedomobject-expected.txt: Canonical link: https://commits.webkit.org/120565@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@134866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-11-16 01:14:12 +00:00
indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
store = db.createObjectStore('store1', { autoIncrement: true })
index = store.createIndex('index1', 'ix', { unique: true })
store.put({ ix: 'a'})
request = store.get(1)
store.put({ ix: 'a'})
store.put({ ix: 'b'})
request = store.get(2)
PASS Got {"ix":"a"} for key: 1
PASS Got {"ix":"b"} for key: 2
db.close()
Verify that the key generator is not affected by item removal (delete or clear).
IndexedDB: setVersion batch 8 https://bugs.webkit.org/show_bug.cgi?id=102434 Reviewed by Tony Chang. 2 lines were added to intversion-bad-parameters to capture the tests that were in the now-deleted setVersion-{null,undefined}. * storage/indexeddb/intversion-bad-parameters-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/readonly-properties-expected.txt: * storage/indexeddb/resources/intversion-bad-parameters.js: (deleteSuccess): * storage/indexeddb/resources/key-generator.js: Again awkward to call indexedDBTest all over the place. The prefix line's gotta go, and we could also pull a resetDatabase method out of indexedDBTest that would just do a delete and open. (runTests.nextTest.prepareDatabase): (runTests.nextTest.onSuccess.finishTest): (runTests.nextTest.onSuccess): (runTests.nextTest): (testAcrossConnections.prepareDatabase): * storage/indexeddb/resources/open-during-transaction.js: (prepareDatabase.event.target.transaction.oncomplete): (prepareDatabase): (tryOpens): * storage/indexeddb/resources/readonly-properties.js: (prepareDatabase): * storage/indexeddb/resources/setVersion-null.js: Removed. * storage/indexeddb/resources/setVersion-undefined.js: Removed. * storage/indexeddb/resources/transaction-after-close.js: (prepareDatabase): (firstTransactionComplete): (onFinalPutSuccess): * storage/indexeddb/resources/versionchangerequest-activedomobject.js: (testSetVersion): (upgradeNeededCallback): (successCallback): * storage/indexeddb/setVersion-null-expected.txt: Removed. * storage/indexeddb/setVersion-null.html: Removed. * storage/indexeddb/setVersion-undefined-expected.txt: Removed. * storage/indexeddb/setVersion-undefined.html: Removed. * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/versionchangerequest-activedomobject-expected.txt: Canonical link: https://commits.webkit.org/120565@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@134866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-11-16 01:14:12 +00:00
indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
store = db.createObjectStore('store1', { autoIncrement: true })
store.put('a')
request = store.get(1)
store.delete(1)
store.put('b')
request = store.get(2)
store.clear()
store.put('c')
request = store.get(3)
store.delete(IDBKeyRange.lowerBound(0))
store.put('d')
request = store.get(4)
PASS Got "a" for key: 1
PASS Got "b" for key: 2
PASS Got "c" for key: 3
PASS Got "d" for key: 4
db.close()
Verify that the key generator is only set if and only if a numeric key greater than the last generated key is used.
IndexedDB: setVersion batch 8 https://bugs.webkit.org/show_bug.cgi?id=102434 Reviewed by Tony Chang. 2 lines were added to intversion-bad-parameters to capture the tests that were in the now-deleted setVersion-{null,undefined}. * storage/indexeddb/intversion-bad-parameters-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/readonly-properties-expected.txt: * storage/indexeddb/resources/intversion-bad-parameters.js: (deleteSuccess): * storage/indexeddb/resources/key-generator.js: Again awkward to call indexedDBTest all over the place. The prefix line's gotta go, and we could also pull a resetDatabase method out of indexedDBTest that would just do a delete and open. (runTests.nextTest.prepareDatabase): (runTests.nextTest.onSuccess.finishTest): (runTests.nextTest.onSuccess): (runTests.nextTest): (testAcrossConnections.prepareDatabase): * storage/indexeddb/resources/open-during-transaction.js: (prepareDatabase.event.target.transaction.oncomplete): (prepareDatabase): (tryOpens): * storage/indexeddb/resources/readonly-properties.js: (prepareDatabase): * storage/indexeddb/resources/setVersion-null.js: Removed. * storage/indexeddb/resources/setVersion-undefined.js: Removed. * storage/indexeddb/resources/transaction-after-close.js: (prepareDatabase): (firstTransactionComplete): (onFinalPutSuccess): * storage/indexeddb/resources/versionchangerequest-activedomobject.js: (testSetVersion): (upgradeNeededCallback): (successCallback): * storage/indexeddb/setVersion-null-expected.txt: Removed. * storage/indexeddb/setVersion-null.html: Removed. * storage/indexeddb/setVersion-undefined-expected.txt: Removed. * storage/indexeddb/setVersion-undefined.html: Removed. * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/versionchangerequest-activedomobject-expected.txt: Canonical link: https://commits.webkit.org/120565@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@134866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-11-16 01:14:12 +00:00
indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
store = db.createObjectStore('store1', { autoIncrement: true })
store.put('a')
request = store.get(1)
store.put('b', 3)
request = store.get(3)
store.put('c')
request = store.get(4)
store.put('d', -10)
request = store.get(-10)
store.put('e')
request = store.get(5)
store.put('f', 6.00001)
request = store.get(6.00001)
store.put('g')
request = store.get(7)
store.put('f', 8.9999)
request = store.get(8.9999)
store.put('g')
request = store.get(9)
store.put('h', 'foo')
request = store.get("foo")
store.put('i')
request = store.get(10)
store.put('j', [1000])
request = store.get([1000])
store.put('k')
request = store.get(11)
PASS Got "a" for key: 1
PASS Got "b" for key: 3
PASS Got "c" for key: 4
PASS Got "d" for key: -10
PASS Got "e" for key: 5
PASS Got "f" for key: 6.00001
PASS Got "g" for key: 7
PASS Got "f" for key: 8.9999
PASS Got "g" for key: 9
PASS Got "h" for key: "foo"
PASS Got "i" for key: 10
PASS Got "j" for key: [1000]
PASS Got "k" for key: 11
db.close()
Verify that aborting a transaction resets the key generator state.
IndexedDB: setVersion batch 8 https://bugs.webkit.org/show_bug.cgi?id=102434 Reviewed by Tony Chang. 2 lines were added to intversion-bad-parameters to capture the tests that were in the now-deleted setVersion-{null,undefined}. * storage/indexeddb/intversion-bad-parameters-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/readonly-properties-expected.txt: * storage/indexeddb/resources/intversion-bad-parameters.js: (deleteSuccess): * storage/indexeddb/resources/key-generator.js: Again awkward to call indexedDBTest all over the place. The prefix line's gotta go, and we could also pull a resetDatabase method out of indexedDBTest that would just do a delete and open. (runTests.nextTest.prepareDatabase): (runTests.nextTest.onSuccess.finishTest): (runTests.nextTest.onSuccess): (runTests.nextTest): (testAcrossConnections.prepareDatabase): * storage/indexeddb/resources/open-during-transaction.js: (prepareDatabase.event.target.transaction.oncomplete): (prepareDatabase): (tryOpens): * storage/indexeddb/resources/readonly-properties.js: (prepareDatabase): * storage/indexeddb/resources/setVersion-null.js: Removed. * storage/indexeddb/resources/setVersion-undefined.js: Removed. * storage/indexeddb/resources/transaction-after-close.js: (prepareDatabase): (firstTransactionComplete): (onFinalPutSuccess): * storage/indexeddb/resources/versionchangerequest-activedomobject.js: (testSetVersion): (upgradeNeededCallback): (successCallback): * storage/indexeddb/setVersion-null-expected.txt: Removed. * storage/indexeddb/setVersion-null.html: Removed. * storage/indexeddb/setVersion-undefined-expected.txt: Removed. * storage/indexeddb/setVersion-undefined.html: Removed. * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/versionchangerequest-activedomobject-expected.txt: Canonical link: https://commits.webkit.org/120565@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@134866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-11-16 01:14:12 +00:00
indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
IndexedDB: Replace numeric constants with strings https://bugs.webkit.org/show_bug.cgi?id=84894 Patch by Alec Flett <alecflett@chromium.org> on 2012-05-07 Reviewed by Tony Chang. Source/WebCore: Test: storage/indexeddb/legacy-constants.html Update IDBObjectStore.openCursor, IDBIndex.openCursor, IDBIndex.openKeyCursor, IDBDatabase.transaction, IDBCursor.direction, IDBTransaction.mode, and IDBRequest.readyState to meet the latest spec. All of these APIs now support string-based values in addition to the legacy/deprecated enum-based values. * Modules/indexeddb/IDBCursor.cpp: (WebCore): (WebCore::IDBCursor::direction): (WebCore::IDBCursor::stringToDirection): (WebCore::IDBCursor::directionToString): * Modules/indexeddb/IDBCursor.h: (IDBCursor): * Modules/indexeddb/IDBCursor.idl: * Modules/indexeddb/IDBDatabase.cpp: (WebCore::IDBDatabase::transaction): (WebCore): * Modules/indexeddb/IDBDatabase.h: (IDBDatabase): * Modules/indexeddb/IDBDatabase.idl: * Modules/indexeddb/IDBIndex.cpp: (WebCore::IDBIndex::openCursor): (WebCore): (WebCore::IDBIndex::openKeyCursor): * Modules/indexeddb/IDBIndex.h: (WebCore::IDBIndex::openCursor): (IDBIndex): (WebCore::IDBIndex::openKeyCursor): * Modules/indexeddb/IDBIndex.idl: * Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::openCursor): (WebCore): * Modules/indexeddb/IDBObjectStore.h: (WebCore::IDBObjectStore::openCursor): (IDBObjectStore): * Modules/indexeddb/IDBObjectStore.idl: * Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::IDBRequest): (WebCore::IDBRequest::readyState): (WebCore::IDBRequest::markEarlyDeath): (WebCore::IDBRequest::resetReadyState): (WebCore::IDBRequest::abort): (WebCore::IDBRequest::finishCursor): (WebCore::IDBRequest::onSuccess): (WebCore::IDBRequest::stop): * Modules/indexeddb/IDBRequest.h: * Modules/indexeddb/IDBRequest.idl: * Modules/indexeddb/IDBTransaction.cpp: (WebCore): (WebCore::IDBTransaction::mode): (WebCore::IDBTransaction::stringToMode): (WebCore::IDBTransaction::modeToString): * Modules/indexeddb/IDBTransaction.h: (IDBTransaction): * Modules/indexeddb/IDBTransaction.idl: LayoutTests: New test for legacy constants (legacy-constants) and update all other tests to use the new string-based constants. * storage/indexeddb/basics-expected.txt: * storage/indexeddb/basics-workers-expected.txt: * storage/indexeddb/constants-expected.txt: * storage/indexeddb/create-object-store-options-expected.txt: * storage/indexeddb/cursor-added-bug-expected.txt: * storage/indexeddb/cursor-advance-expected.txt: * storage/indexeddb/cursor-continue-expected.txt: * storage/indexeddb/cursor-continue-validity-expected.txt: * storage/indexeddb/cursor-delete-expected.txt: * storage/indexeddb/cursor-inconsistency-expected.txt: * storage/indexeddb/cursor-index-delete-expected.txt: * storage/indexeddb/cursor-key-order-expected.txt: * storage/indexeddb/cursor-prev-no-duplicate-expected.txt: * storage/indexeddb/cursor-primary-key-order-expected.txt: * storage/indexeddb/cursor-reverse-bug-expected.txt: * storage/indexeddb/cursor-skip-deleted-expected.txt: * storage/indexeddb/cursor-update-expected.txt: * storage/indexeddb/data-corruption-expected.txt: * storage/indexeddb/database-quota-expected.txt: * storage/indexeddb/delete-range-expected.txt: * storage/indexeddb/error-causes-abort-by-default-expected.txt: * storage/indexeddb/exception-in-event-aborts-expected.txt: * storage/indexeddb/factory-deletedatabase-expected.txt: * storage/indexeddb/index-count-expected.txt: * storage/indexeddb/index-multientry-expected.txt: * storage/indexeddb/index-unique-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/key-type-array-expected.txt: * storage/indexeddb/keypath-edges-expected.txt: * storage/indexeddb/keypath-intrinsic-properties-expected.txt: * storage/indexeddb/legacy-constants-expected.txt: Added. * storage/indexeddb/legacy-constants.html: Added. * storage/indexeddb/mozilla/clear-expected.txt: * storage/indexeddb/mozilla/create-index-unique-expected.txt: * storage/indexeddb/mozilla/create-objectstore-basics-expected.txt: * storage/indexeddb/mozilla/cursor-mutation-expected.txt: * storage/indexeddb/mozilla/cursor-mutation-objectstore-only-expected.txt: * storage/indexeddb/mozilla/cursors-expected.txt: * storage/indexeddb/mozilla/index-prev-no-duplicate-expected.txt: * storage/indexeddb/mozilla/index-prev-no-duplicate.html: * storage/indexeddb/mozilla/indexes-expected.txt: * storage/indexeddb/mozilla/odd-result-order-expected.txt: * storage/indexeddb/mozilla/readwrite-transactions-expected.txt: * storage/indexeddb/mozilla/readyState-expected.txt: * storage/indexeddb/mozilla/resources/clear.js: (clear): * storage/indexeddb/mozilla/resources/create-index-unique.js: (createAndVerifyIndex): * storage/indexeddb/mozilla/resources/create-objectstore-basics.js: (cleanDatabase): * storage/indexeddb/mozilla/resources/cursor-mutation-objectstore-only.js: (checkCursorResultsAndSetupMutatingCursor): * storage/indexeddb/mozilla/resources/cursor-mutation.js: (setupMutatingCursor): * storage/indexeddb/mozilla/resources/cursors.js: * storage/indexeddb/mozilla/resources/indexes.js: * storage/indexeddb/mozilla/resources/odd-result-order.js: (addRecord): (deleteRecord): * storage/indexeddb/mozilla/resources/readwrite-transactions.js: (setVersionComplete): (postAdd): (postAdd2): (postPut): (postPut2): (postPut3): (postPut4): (postDelete): (postDelete2): * storage/indexeddb/mozilla/resources/readyState.js: (test): (openSuccess): (setupObjectStore): (getRecord): (finalCheck): * storage/indexeddb/mozilla/resources/versionchange.js: (postSetVersion): (postSetVersion2): * storage/indexeddb/mozilla/versionchange-expected.txt: * storage/indexeddb/mutating-cursor-expected.txt: * storage/indexeddb/noblobs-expected.txt: * storage/indexeddb/noblobs.html: * storage/indexeddb/objectstore-autoincrement-expected.txt: * storage/indexeddb/objectstore-basics-expected.txt: * storage/indexeddb/objectstore-basics-workers-expected.txt: * storage/indexeddb/objectstore-count-expected.txt: * storage/indexeddb/open-cursor-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/opencursor-key-expected.txt: * storage/indexeddb/prefetch-bugfix-108071-expected.txt: * storage/indexeddb/readonly-expected.txt: * storage/indexeddb/request-event-propagation-expected.txt: * storage/indexeddb/resources/basics.js: (test): (openCallback): * storage/indexeddb/resources/constants.js: (test): * storage/indexeddb/resources/create-object-store-options.js: (setVersionComplete): * storage/indexeddb/resources/cursor-added-bug.js: (openCursor): * storage/indexeddb/resources/cursor-advance.js: (runTest): (testAdvanceIndexNoDupe): (testAdvanceIndexPrev): (testAdvanceIndexPrevNoDupe): * storage/indexeddb/resources/cursor-continue-validity.js: (continueTest): (continueIndexTest): (testModifyContinueOrder): * storage/indexeddb/resources/cursor-continue.js: (ascendingTest): (descendingTest): * storage/indexeddb/resources/cursor-delete.js: (openCursor): (addObject): * storage/indexeddb/resources/cursor-inconsistency.js: (openBasicCursor): * storage/indexeddb/resources/cursor-index-delete.js: (openCursor): (addObject): * storage/indexeddb/resources/cursor-key-order.js: * storage/indexeddb/resources/cursor-prev-no-duplicate.js: (populateStore): (testFarRangeCursor_closed): (testFarRangeCursor_open): (testFarRangeCursor_indexClosed): (testFarRangeCursor_indexOpen): (testFarRangeCursor_indexKeyOpen): (testFarRangeCursor_indexKeyClosed): (testBoundaryCursor_closed): (testBoundaryCursor_open): (testBoundaryCursor_indexClosed): (testBoundaryCursor_indexOpen): (testBoundaryCursor_indexKeyClosed): (testBoundaryCursor_indexKeyOpen): (testNoDuplicate_closed): (testNoDuplicate_open): (testNoDuplicate_indexKeyClosed): * storage/indexeddb/resources/cursor-primary-key-order.js: (populateStore): * storage/indexeddb/resources/cursor-reverse-bug.js: (populateStore): (testCursor): * storage/indexeddb/resources/cursor-skip-deleted.js: (basicCursorTest): (reverseCursorTest): * storage/indexeddb/resources/cursor-update.js: (openBasicCursor): * storage/indexeddb/resources/data-corruption.js: (addData): (getData): * storage/indexeddb/resources/database-quota.js: (checkQuotaEnforcing): * storage/indexeddb/resources/delete-range.js: (runTests.nextTest): (runTests): * storage/indexeddb/resources/error-causes-abort-by-default.js: (addData): (transactionCompleted): (transactionAborted1): * storage/indexeddb/resources/exception-in-event-aborts.js: (startTest): (transactionAborted1): (transactionAborted2): * storage/indexeddb/resources/factory-deletedatabase.js: (getValue): * storage/indexeddb/resources/index-count.js: * storage/indexeddb/resources/index-cursor.js: (runNextTest): (testNullKeyRange): * storage/indexeddb/resources/index-multientry.js: * storage/indexeddb/resources/index-unique.js: (setVersionCompleted): * storage/indexeddb/resources/key-generator.js: (.): * storage/indexeddb/resources/key-type-array.js: * storage/indexeddb/resources/keypath-edges.js: * storage/indexeddb/resources/keypath-intrinsic-properties.js: * storage/indexeddb/resources/legacy-constants.js: Added. (test): (prepareDatabase.openreq.onsuccess.verreq.onsuccess): (prepareDatabase.openreq.onsuccess): (prepareDatabase): (populateStore): (checkNext.request.onsuccess): (checkNext): (checkNextNoDuplicate.request.onsuccess): (checkNextNoDuplicate): (checkPrev.request.onsuccess): (checkPrev): (checkPrevNoDuplicate.request.onsuccess): (checkPrevNoDuplicate): * storage/indexeddb/resources/mutating-cursor.js: (openForwardCursor): (openReverseCursor): * storage/indexeddb/resources/objectstore-autoincrement.js: (setVersionCompleted): * storage/indexeddb/resources/objectstore-basics.js: (addData): (addAgainFailure): * storage/indexeddb/resources/objectstore-count.js: * storage/indexeddb/resources/objectstore-cursor.js: (runNextTest): (testNullKeyRange): * storage/indexeddb/resources/open-cursor.js: (cursorWithKeySuccess): (cursorSuccess): * storage/indexeddb/resources/open-during-transaction.js: * storage/indexeddb/resources/opencursor-key.js: * storage/indexeddb/resources/prefetch-bugfix-108071.js: * storage/indexeddb/resources/request-event-propagation.js: (startTest): (transactionAborted): (transactionAborted2): * storage/indexeddb/resources/set_version_blocked.js: (blocked): * storage/indexeddb/resources/transaction-abort.js: (startTest): * storage/indexeddb/resources/transaction-after-close.js: (runFirstRegularTransaction): (firstTransactionComplete): (onSecondOpen): * storage/indexeddb/resources/transaction-basics.js: (testInvalidMode): * storage/indexeddb/resources/transaction-event-propagation.js: (startTest): (dbAbortBubbleCallback): * storage/indexeddb/resources/transaction-rollback.js: (setVersionComplete): (abortCallback): * storage/indexeddb/set_version_blocked-expected.txt: * storage/indexeddb/structured-clone-expected.txt: * storage/indexeddb/structured-clone.html: * storage/indexeddb/transaction-abort-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion-cross-frame-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion-cross-frame.html: * storage/indexeddb/transaction-abort-with-js-recursion-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion.html: * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/transaction-basics-expected.txt: * storage/indexeddb/transaction-event-propagation-expected.txt: * storage/indexeddb/transaction-rollback-expected.txt: * storage/indexeddb/tutorial.html: Canonical link: https://commits.webkit.org/103395@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@116337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-07 19:12:00 +00:00
trans1 = db.transaction(['store'], 'readwrite')
store_t1 = trans1.objectStore('store')
store_t1.put('a')
request = store.get(1)
store_t1.put('b')
request = store.get(2)
PASS Got "a" for key: 1
PASS Got "b" for key: 2
aborting...
trans1.abort()
aborted!
IndexedDB: Replace numeric constants with strings https://bugs.webkit.org/show_bug.cgi?id=84894 Patch by Alec Flett <alecflett@chromium.org> on 2012-05-07 Reviewed by Tony Chang. Source/WebCore: Test: storage/indexeddb/legacy-constants.html Update IDBObjectStore.openCursor, IDBIndex.openCursor, IDBIndex.openKeyCursor, IDBDatabase.transaction, IDBCursor.direction, IDBTransaction.mode, and IDBRequest.readyState to meet the latest spec. All of these APIs now support string-based values in addition to the legacy/deprecated enum-based values. * Modules/indexeddb/IDBCursor.cpp: (WebCore): (WebCore::IDBCursor::direction): (WebCore::IDBCursor::stringToDirection): (WebCore::IDBCursor::directionToString): * Modules/indexeddb/IDBCursor.h: (IDBCursor): * Modules/indexeddb/IDBCursor.idl: * Modules/indexeddb/IDBDatabase.cpp: (WebCore::IDBDatabase::transaction): (WebCore): * Modules/indexeddb/IDBDatabase.h: (IDBDatabase): * Modules/indexeddb/IDBDatabase.idl: * Modules/indexeddb/IDBIndex.cpp: (WebCore::IDBIndex::openCursor): (WebCore): (WebCore::IDBIndex::openKeyCursor): * Modules/indexeddb/IDBIndex.h: (WebCore::IDBIndex::openCursor): (IDBIndex): (WebCore::IDBIndex::openKeyCursor): * Modules/indexeddb/IDBIndex.idl: * Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::openCursor): (WebCore): * Modules/indexeddb/IDBObjectStore.h: (WebCore::IDBObjectStore::openCursor): (IDBObjectStore): * Modules/indexeddb/IDBObjectStore.idl: * Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::IDBRequest): (WebCore::IDBRequest::readyState): (WebCore::IDBRequest::markEarlyDeath): (WebCore::IDBRequest::resetReadyState): (WebCore::IDBRequest::abort): (WebCore::IDBRequest::finishCursor): (WebCore::IDBRequest::onSuccess): (WebCore::IDBRequest::stop): * Modules/indexeddb/IDBRequest.h: * Modules/indexeddb/IDBRequest.idl: * Modules/indexeddb/IDBTransaction.cpp: (WebCore): (WebCore::IDBTransaction::mode): (WebCore::IDBTransaction::stringToMode): (WebCore::IDBTransaction::modeToString): * Modules/indexeddb/IDBTransaction.h: (IDBTransaction): * Modules/indexeddb/IDBTransaction.idl: LayoutTests: New test for legacy constants (legacy-constants) and update all other tests to use the new string-based constants. * storage/indexeddb/basics-expected.txt: * storage/indexeddb/basics-workers-expected.txt: * storage/indexeddb/constants-expected.txt: * storage/indexeddb/create-object-store-options-expected.txt: * storage/indexeddb/cursor-added-bug-expected.txt: * storage/indexeddb/cursor-advance-expected.txt: * storage/indexeddb/cursor-continue-expected.txt: * storage/indexeddb/cursor-continue-validity-expected.txt: * storage/indexeddb/cursor-delete-expected.txt: * storage/indexeddb/cursor-inconsistency-expected.txt: * storage/indexeddb/cursor-index-delete-expected.txt: * storage/indexeddb/cursor-key-order-expected.txt: * storage/indexeddb/cursor-prev-no-duplicate-expected.txt: * storage/indexeddb/cursor-primary-key-order-expected.txt: * storage/indexeddb/cursor-reverse-bug-expected.txt: * storage/indexeddb/cursor-skip-deleted-expected.txt: * storage/indexeddb/cursor-update-expected.txt: * storage/indexeddb/data-corruption-expected.txt: * storage/indexeddb/database-quota-expected.txt: * storage/indexeddb/delete-range-expected.txt: * storage/indexeddb/error-causes-abort-by-default-expected.txt: * storage/indexeddb/exception-in-event-aborts-expected.txt: * storage/indexeddb/factory-deletedatabase-expected.txt: * storage/indexeddb/index-count-expected.txt: * storage/indexeddb/index-multientry-expected.txt: * storage/indexeddb/index-unique-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/key-type-array-expected.txt: * storage/indexeddb/keypath-edges-expected.txt: * storage/indexeddb/keypath-intrinsic-properties-expected.txt: * storage/indexeddb/legacy-constants-expected.txt: Added. * storage/indexeddb/legacy-constants.html: Added. * storage/indexeddb/mozilla/clear-expected.txt: * storage/indexeddb/mozilla/create-index-unique-expected.txt: * storage/indexeddb/mozilla/create-objectstore-basics-expected.txt: * storage/indexeddb/mozilla/cursor-mutation-expected.txt: * storage/indexeddb/mozilla/cursor-mutation-objectstore-only-expected.txt: * storage/indexeddb/mozilla/cursors-expected.txt: * storage/indexeddb/mozilla/index-prev-no-duplicate-expected.txt: * storage/indexeddb/mozilla/index-prev-no-duplicate.html: * storage/indexeddb/mozilla/indexes-expected.txt: * storage/indexeddb/mozilla/odd-result-order-expected.txt: * storage/indexeddb/mozilla/readwrite-transactions-expected.txt: * storage/indexeddb/mozilla/readyState-expected.txt: * storage/indexeddb/mozilla/resources/clear.js: (clear): * storage/indexeddb/mozilla/resources/create-index-unique.js: (createAndVerifyIndex): * storage/indexeddb/mozilla/resources/create-objectstore-basics.js: (cleanDatabase): * storage/indexeddb/mozilla/resources/cursor-mutation-objectstore-only.js: (checkCursorResultsAndSetupMutatingCursor): * storage/indexeddb/mozilla/resources/cursor-mutation.js: (setupMutatingCursor): * storage/indexeddb/mozilla/resources/cursors.js: * storage/indexeddb/mozilla/resources/indexes.js: * storage/indexeddb/mozilla/resources/odd-result-order.js: (addRecord): (deleteRecord): * storage/indexeddb/mozilla/resources/readwrite-transactions.js: (setVersionComplete): (postAdd): (postAdd2): (postPut): (postPut2): (postPut3): (postPut4): (postDelete): (postDelete2): * storage/indexeddb/mozilla/resources/readyState.js: (test): (openSuccess): (setupObjectStore): (getRecord): (finalCheck): * storage/indexeddb/mozilla/resources/versionchange.js: (postSetVersion): (postSetVersion2): * storage/indexeddb/mozilla/versionchange-expected.txt: * storage/indexeddb/mutating-cursor-expected.txt: * storage/indexeddb/noblobs-expected.txt: * storage/indexeddb/noblobs.html: * storage/indexeddb/objectstore-autoincrement-expected.txt: * storage/indexeddb/objectstore-basics-expected.txt: * storage/indexeddb/objectstore-basics-workers-expected.txt: * storage/indexeddb/objectstore-count-expected.txt: * storage/indexeddb/open-cursor-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/opencursor-key-expected.txt: * storage/indexeddb/prefetch-bugfix-108071-expected.txt: * storage/indexeddb/readonly-expected.txt: * storage/indexeddb/request-event-propagation-expected.txt: * storage/indexeddb/resources/basics.js: (test): (openCallback): * storage/indexeddb/resources/constants.js: (test): * storage/indexeddb/resources/create-object-store-options.js: (setVersionComplete): * storage/indexeddb/resources/cursor-added-bug.js: (openCursor): * storage/indexeddb/resources/cursor-advance.js: (runTest): (testAdvanceIndexNoDupe): (testAdvanceIndexPrev): (testAdvanceIndexPrevNoDupe): * storage/indexeddb/resources/cursor-continue-validity.js: (continueTest): (continueIndexTest): (testModifyContinueOrder): * storage/indexeddb/resources/cursor-continue.js: (ascendingTest): (descendingTest): * storage/indexeddb/resources/cursor-delete.js: (openCursor): (addObject): * storage/indexeddb/resources/cursor-inconsistency.js: (openBasicCursor): * storage/indexeddb/resources/cursor-index-delete.js: (openCursor): (addObject): * storage/indexeddb/resources/cursor-key-order.js: * storage/indexeddb/resources/cursor-prev-no-duplicate.js: (populateStore): (testFarRangeCursor_closed): (testFarRangeCursor_open): (testFarRangeCursor_indexClosed): (testFarRangeCursor_indexOpen): (testFarRangeCursor_indexKeyOpen): (testFarRangeCursor_indexKeyClosed): (testBoundaryCursor_closed): (testBoundaryCursor_open): (testBoundaryCursor_indexClosed): (testBoundaryCursor_indexOpen): (testBoundaryCursor_indexKeyClosed): (testBoundaryCursor_indexKeyOpen): (testNoDuplicate_closed): (testNoDuplicate_open): (testNoDuplicate_indexKeyClosed): * storage/indexeddb/resources/cursor-primary-key-order.js: (populateStore): * storage/indexeddb/resources/cursor-reverse-bug.js: (populateStore): (testCursor): * storage/indexeddb/resources/cursor-skip-deleted.js: (basicCursorTest): (reverseCursorTest): * storage/indexeddb/resources/cursor-update.js: (openBasicCursor): * storage/indexeddb/resources/data-corruption.js: (addData): (getData): * storage/indexeddb/resources/database-quota.js: (checkQuotaEnforcing): * storage/indexeddb/resources/delete-range.js: (runTests.nextTest): (runTests): * storage/indexeddb/resources/error-causes-abort-by-default.js: (addData): (transactionCompleted): (transactionAborted1): * storage/indexeddb/resources/exception-in-event-aborts.js: (startTest): (transactionAborted1): (transactionAborted2): * storage/indexeddb/resources/factory-deletedatabase.js: (getValue): * storage/indexeddb/resources/index-count.js: * storage/indexeddb/resources/index-cursor.js: (runNextTest): (testNullKeyRange): * storage/indexeddb/resources/index-multientry.js: * storage/indexeddb/resources/index-unique.js: (setVersionCompleted): * storage/indexeddb/resources/key-generator.js: (.): * storage/indexeddb/resources/key-type-array.js: * storage/indexeddb/resources/keypath-edges.js: * storage/indexeddb/resources/keypath-intrinsic-properties.js: * storage/indexeddb/resources/legacy-constants.js: Added. (test): (prepareDatabase.openreq.onsuccess.verreq.onsuccess): (prepareDatabase.openreq.onsuccess): (prepareDatabase): (populateStore): (checkNext.request.onsuccess): (checkNext): (checkNextNoDuplicate.request.onsuccess): (checkNextNoDuplicate): (checkPrev.request.onsuccess): (checkPrev): (checkPrevNoDuplicate.request.onsuccess): (checkPrevNoDuplicate): * storage/indexeddb/resources/mutating-cursor.js: (openForwardCursor): (openReverseCursor): * storage/indexeddb/resources/objectstore-autoincrement.js: (setVersionCompleted): * storage/indexeddb/resources/objectstore-basics.js: (addData): (addAgainFailure): * storage/indexeddb/resources/objectstore-count.js: * storage/indexeddb/resources/objectstore-cursor.js: (runNextTest): (testNullKeyRange): * storage/indexeddb/resources/open-cursor.js: (cursorWithKeySuccess): (cursorSuccess): * storage/indexeddb/resources/open-during-transaction.js: * storage/indexeddb/resources/opencursor-key.js: * storage/indexeddb/resources/prefetch-bugfix-108071.js: * storage/indexeddb/resources/request-event-propagation.js: (startTest): (transactionAborted): (transactionAborted2): * storage/indexeddb/resources/set_version_blocked.js: (blocked): * storage/indexeddb/resources/transaction-abort.js: (startTest): * storage/indexeddb/resources/transaction-after-close.js: (runFirstRegularTransaction): (firstTransactionComplete): (onSecondOpen): * storage/indexeddb/resources/transaction-basics.js: (testInvalidMode): * storage/indexeddb/resources/transaction-event-propagation.js: (startTest): (dbAbortBubbleCallback): * storage/indexeddb/resources/transaction-rollback.js: (setVersionComplete): (abortCallback): * storage/indexeddb/set_version_blocked-expected.txt: * storage/indexeddb/structured-clone-expected.txt: * storage/indexeddb/structured-clone.html: * storage/indexeddb/transaction-abort-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion-cross-frame-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion-cross-frame.html: * storage/indexeddb/transaction-abort-with-js-recursion-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion.html: * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/transaction-basics-expected.txt: * storage/indexeddb/transaction-event-propagation-expected.txt: * storage/indexeddb/transaction-rollback-expected.txt: * storage/indexeddb/tutorial.html: Canonical link: https://commits.webkit.org/103395@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@116337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-07 19:12:00 +00:00
trans2 = db.transaction(['store'], 'readwrite')
store_t2 = trans2.objectStore('store')
store_t2.put('c')
request = store.get(1)
store_t2.put('d')
request = store.get(2)
PASS Got "c" for key: 1
PASS Got "d" for key: 2
db.close()
Verify that keys above 2^53 result in errors.
IndexedDB: setVersion batch 8 https://bugs.webkit.org/show_bug.cgi?id=102434 Reviewed by Tony Chang. 2 lines were added to intversion-bad-parameters to capture the tests that were in the now-deleted setVersion-{null,undefined}. * storage/indexeddb/intversion-bad-parameters-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/readonly-properties-expected.txt: * storage/indexeddb/resources/intversion-bad-parameters.js: (deleteSuccess): * storage/indexeddb/resources/key-generator.js: Again awkward to call indexedDBTest all over the place. The prefix line's gotta go, and we could also pull a resetDatabase method out of indexedDBTest that would just do a delete and open. (runTests.nextTest.prepareDatabase): (runTests.nextTest.onSuccess.finishTest): (runTests.nextTest.onSuccess): (runTests.nextTest): (testAcrossConnections.prepareDatabase): * storage/indexeddb/resources/open-during-transaction.js: (prepareDatabase.event.target.transaction.oncomplete): (prepareDatabase): (tryOpens): * storage/indexeddb/resources/readonly-properties.js: (prepareDatabase): * storage/indexeddb/resources/setVersion-null.js: Removed. * storage/indexeddb/resources/setVersion-undefined.js: Removed. * storage/indexeddb/resources/transaction-after-close.js: (prepareDatabase): (firstTransactionComplete): (onFinalPutSuccess): * storage/indexeddb/resources/versionchangerequest-activedomobject.js: (testSetVersion): (upgradeNeededCallback): (successCallback): * storage/indexeddb/setVersion-null-expected.txt: Removed. * storage/indexeddb/setVersion-null.html: Removed. * storage/indexeddb/setVersion-undefined-expected.txt: Removed. * storage/indexeddb/setVersion-undefined.html: Removed. * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/versionchangerequest-activedomobject-expected.txt: Canonical link: https://commits.webkit.org/120565@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@134866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-11-16 01:14:12 +00:00
indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
IndexedDB: Replace numeric constants with strings https://bugs.webkit.org/show_bug.cgi?id=84894 Patch by Alec Flett <alecflett@chromium.org> on 2012-05-07 Reviewed by Tony Chang. Source/WebCore: Test: storage/indexeddb/legacy-constants.html Update IDBObjectStore.openCursor, IDBIndex.openCursor, IDBIndex.openKeyCursor, IDBDatabase.transaction, IDBCursor.direction, IDBTransaction.mode, and IDBRequest.readyState to meet the latest spec. All of these APIs now support string-based values in addition to the legacy/deprecated enum-based values. * Modules/indexeddb/IDBCursor.cpp: (WebCore): (WebCore::IDBCursor::direction): (WebCore::IDBCursor::stringToDirection): (WebCore::IDBCursor::directionToString): * Modules/indexeddb/IDBCursor.h: (IDBCursor): * Modules/indexeddb/IDBCursor.idl: * Modules/indexeddb/IDBDatabase.cpp: (WebCore::IDBDatabase::transaction): (WebCore): * Modules/indexeddb/IDBDatabase.h: (IDBDatabase): * Modules/indexeddb/IDBDatabase.idl: * Modules/indexeddb/IDBIndex.cpp: (WebCore::IDBIndex::openCursor): (WebCore): (WebCore::IDBIndex::openKeyCursor): * Modules/indexeddb/IDBIndex.h: (WebCore::IDBIndex::openCursor): (IDBIndex): (WebCore::IDBIndex::openKeyCursor): * Modules/indexeddb/IDBIndex.idl: * Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::openCursor): (WebCore): * Modules/indexeddb/IDBObjectStore.h: (WebCore::IDBObjectStore::openCursor): (IDBObjectStore): * Modules/indexeddb/IDBObjectStore.idl: * Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::IDBRequest): (WebCore::IDBRequest::readyState): (WebCore::IDBRequest::markEarlyDeath): (WebCore::IDBRequest::resetReadyState): (WebCore::IDBRequest::abort): (WebCore::IDBRequest::finishCursor): (WebCore::IDBRequest::onSuccess): (WebCore::IDBRequest::stop): * Modules/indexeddb/IDBRequest.h: * Modules/indexeddb/IDBRequest.idl: * Modules/indexeddb/IDBTransaction.cpp: (WebCore): (WebCore::IDBTransaction::mode): (WebCore::IDBTransaction::stringToMode): (WebCore::IDBTransaction::modeToString): * Modules/indexeddb/IDBTransaction.h: (IDBTransaction): * Modules/indexeddb/IDBTransaction.idl: LayoutTests: New test for legacy constants (legacy-constants) and update all other tests to use the new string-based constants. * storage/indexeddb/basics-expected.txt: * storage/indexeddb/basics-workers-expected.txt: * storage/indexeddb/constants-expected.txt: * storage/indexeddb/create-object-store-options-expected.txt: * storage/indexeddb/cursor-added-bug-expected.txt: * storage/indexeddb/cursor-advance-expected.txt: * storage/indexeddb/cursor-continue-expected.txt: * storage/indexeddb/cursor-continue-validity-expected.txt: * storage/indexeddb/cursor-delete-expected.txt: * storage/indexeddb/cursor-inconsistency-expected.txt: * storage/indexeddb/cursor-index-delete-expected.txt: * storage/indexeddb/cursor-key-order-expected.txt: * storage/indexeddb/cursor-prev-no-duplicate-expected.txt: * storage/indexeddb/cursor-primary-key-order-expected.txt: * storage/indexeddb/cursor-reverse-bug-expected.txt: * storage/indexeddb/cursor-skip-deleted-expected.txt: * storage/indexeddb/cursor-update-expected.txt: * storage/indexeddb/data-corruption-expected.txt: * storage/indexeddb/database-quota-expected.txt: * storage/indexeddb/delete-range-expected.txt: * storage/indexeddb/error-causes-abort-by-default-expected.txt: * storage/indexeddb/exception-in-event-aborts-expected.txt: * storage/indexeddb/factory-deletedatabase-expected.txt: * storage/indexeddb/index-count-expected.txt: * storage/indexeddb/index-multientry-expected.txt: * storage/indexeddb/index-unique-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/key-type-array-expected.txt: * storage/indexeddb/keypath-edges-expected.txt: * storage/indexeddb/keypath-intrinsic-properties-expected.txt: * storage/indexeddb/legacy-constants-expected.txt: Added. * storage/indexeddb/legacy-constants.html: Added. * storage/indexeddb/mozilla/clear-expected.txt: * storage/indexeddb/mozilla/create-index-unique-expected.txt: * storage/indexeddb/mozilla/create-objectstore-basics-expected.txt: * storage/indexeddb/mozilla/cursor-mutation-expected.txt: * storage/indexeddb/mozilla/cursor-mutation-objectstore-only-expected.txt: * storage/indexeddb/mozilla/cursors-expected.txt: * storage/indexeddb/mozilla/index-prev-no-duplicate-expected.txt: * storage/indexeddb/mozilla/index-prev-no-duplicate.html: * storage/indexeddb/mozilla/indexes-expected.txt: * storage/indexeddb/mozilla/odd-result-order-expected.txt: * storage/indexeddb/mozilla/readwrite-transactions-expected.txt: * storage/indexeddb/mozilla/readyState-expected.txt: * storage/indexeddb/mozilla/resources/clear.js: (clear): * storage/indexeddb/mozilla/resources/create-index-unique.js: (createAndVerifyIndex): * storage/indexeddb/mozilla/resources/create-objectstore-basics.js: (cleanDatabase): * storage/indexeddb/mozilla/resources/cursor-mutation-objectstore-only.js: (checkCursorResultsAndSetupMutatingCursor): * storage/indexeddb/mozilla/resources/cursor-mutation.js: (setupMutatingCursor): * storage/indexeddb/mozilla/resources/cursors.js: * storage/indexeddb/mozilla/resources/indexes.js: * storage/indexeddb/mozilla/resources/odd-result-order.js: (addRecord): (deleteRecord): * storage/indexeddb/mozilla/resources/readwrite-transactions.js: (setVersionComplete): (postAdd): (postAdd2): (postPut): (postPut2): (postPut3): (postPut4): (postDelete): (postDelete2): * storage/indexeddb/mozilla/resources/readyState.js: (test): (openSuccess): (setupObjectStore): (getRecord): (finalCheck): * storage/indexeddb/mozilla/resources/versionchange.js: (postSetVersion): (postSetVersion2): * storage/indexeddb/mozilla/versionchange-expected.txt: * storage/indexeddb/mutating-cursor-expected.txt: * storage/indexeddb/noblobs-expected.txt: * storage/indexeddb/noblobs.html: * storage/indexeddb/objectstore-autoincrement-expected.txt: * storage/indexeddb/objectstore-basics-expected.txt: * storage/indexeddb/objectstore-basics-workers-expected.txt: * storage/indexeddb/objectstore-count-expected.txt: * storage/indexeddb/open-cursor-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/opencursor-key-expected.txt: * storage/indexeddb/prefetch-bugfix-108071-expected.txt: * storage/indexeddb/readonly-expected.txt: * storage/indexeddb/request-event-propagation-expected.txt: * storage/indexeddb/resources/basics.js: (test): (openCallback): * storage/indexeddb/resources/constants.js: (test): * storage/indexeddb/resources/create-object-store-options.js: (setVersionComplete): * storage/indexeddb/resources/cursor-added-bug.js: (openCursor): * storage/indexeddb/resources/cursor-advance.js: (runTest): (testAdvanceIndexNoDupe): (testAdvanceIndexPrev): (testAdvanceIndexPrevNoDupe): * storage/indexeddb/resources/cursor-continue-validity.js: (continueTest): (continueIndexTest): (testModifyContinueOrder): * storage/indexeddb/resources/cursor-continue.js: (ascendingTest): (descendingTest): * storage/indexeddb/resources/cursor-delete.js: (openCursor): (addObject): * storage/indexeddb/resources/cursor-inconsistency.js: (openBasicCursor): * storage/indexeddb/resources/cursor-index-delete.js: (openCursor): (addObject): * storage/indexeddb/resources/cursor-key-order.js: * storage/indexeddb/resources/cursor-prev-no-duplicate.js: (populateStore): (testFarRangeCursor_closed): (testFarRangeCursor_open): (testFarRangeCursor_indexClosed): (testFarRangeCursor_indexOpen): (testFarRangeCursor_indexKeyOpen): (testFarRangeCursor_indexKeyClosed): (testBoundaryCursor_closed): (testBoundaryCursor_open): (testBoundaryCursor_indexClosed): (testBoundaryCursor_indexOpen): (testBoundaryCursor_indexKeyClosed): (testBoundaryCursor_indexKeyOpen): (testNoDuplicate_closed): (testNoDuplicate_open): (testNoDuplicate_indexKeyClosed): * storage/indexeddb/resources/cursor-primary-key-order.js: (populateStore): * storage/indexeddb/resources/cursor-reverse-bug.js: (populateStore): (testCursor): * storage/indexeddb/resources/cursor-skip-deleted.js: (basicCursorTest): (reverseCursorTest): * storage/indexeddb/resources/cursor-update.js: (openBasicCursor): * storage/indexeddb/resources/data-corruption.js: (addData): (getData): * storage/indexeddb/resources/database-quota.js: (checkQuotaEnforcing): * storage/indexeddb/resources/delete-range.js: (runTests.nextTest): (runTests): * storage/indexeddb/resources/error-causes-abort-by-default.js: (addData): (transactionCompleted): (transactionAborted1): * storage/indexeddb/resources/exception-in-event-aborts.js: (startTest): (transactionAborted1): (transactionAborted2): * storage/indexeddb/resources/factory-deletedatabase.js: (getValue): * storage/indexeddb/resources/index-count.js: * storage/indexeddb/resources/index-cursor.js: (runNextTest): (testNullKeyRange): * storage/indexeddb/resources/index-multientry.js: * storage/indexeddb/resources/index-unique.js: (setVersionCompleted): * storage/indexeddb/resources/key-generator.js: (.): * storage/indexeddb/resources/key-type-array.js: * storage/indexeddb/resources/keypath-edges.js: * storage/indexeddb/resources/keypath-intrinsic-properties.js: * storage/indexeddb/resources/legacy-constants.js: Added. (test): (prepareDatabase.openreq.onsuccess.verreq.onsuccess): (prepareDatabase.openreq.onsuccess): (prepareDatabase): (populateStore): (checkNext.request.onsuccess): (checkNext): (checkNextNoDuplicate.request.onsuccess): (checkNextNoDuplicate): (checkPrev.request.onsuccess): (checkPrev): (checkPrevNoDuplicate.request.onsuccess): (checkPrevNoDuplicate): * storage/indexeddb/resources/mutating-cursor.js: (openForwardCursor): (openReverseCursor): * storage/indexeddb/resources/objectstore-autoincrement.js: (setVersionCompleted): * storage/indexeddb/resources/objectstore-basics.js: (addData): (addAgainFailure): * storage/indexeddb/resources/objectstore-count.js: * storage/indexeddb/resources/objectstore-cursor.js: (runNextTest): (testNullKeyRange): * storage/indexeddb/resources/open-cursor.js: (cursorWithKeySuccess): (cursorSuccess): * storage/indexeddb/resources/open-during-transaction.js: * storage/indexeddb/resources/opencursor-key.js: * storage/indexeddb/resources/prefetch-bugfix-108071.js: * storage/indexeddb/resources/request-event-propagation.js: (startTest): (transactionAborted): (transactionAborted2): * storage/indexeddb/resources/set_version_blocked.js: (blocked): * storage/indexeddb/resources/transaction-abort.js: (startTest): * storage/indexeddb/resources/transaction-after-close.js: (runFirstRegularTransaction): (firstTransactionComplete): (onSecondOpen): * storage/indexeddb/resources/transaction-basics.js: (testInvalidMode): * storage/indexeddb/resources/transaction-event-propagation.js: (startTest): (dbAbortBubbleCallback): * storage/indexeddb/resources/transaction-rollback.js: (setVersionComplete): (abortCallback): * storage/indexeddb/set_version_blocked-expected.txt: * storage/indexeddb/structured-clone-expected.txt: * storage/indexeddb/structured-clone.html: * storage/indexeddb/transaction-abort-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion-cross-frame-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion-cross-frame.html: * storage/indexeddb/transaction-abort-with-js-recursion-expected.txt: * storage/indexeddb/transaction-abort-with-js-recursion.html: * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/transaction-basics-expected.txt: * storage/indexeddb/transaction-event-propagation-expected.txt: * storage/indexeddb/transaction-rollback-expected.txt: * storage/indexeddb/tutorial.html: Canonical link: https://commits.webkit.org/103395@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@116337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-07 19:12:00 +00:00
trans1 = db.transaction(['store'], 'readwrite')
store_t1 = trans1.objectStore('store')
store_t1.put('a')
request = store.get(1)
store_t1.put('b', 9007199254740992)
request = store.get(9007199254740992)
store_t1.put('c')
store_t1.put('d', 2)
request = store.get(2)
PASS Got "a" for key: 1
PASS Got "b" for key: 9007199254740992
Error event fired auto-incrementing past 2^53 (as expected)
PASS event.target.error.name is 'ConstraintError'
event.preventDefault()
PASS Got "d" for key: 2
db.close()
IndexedDB: Key generator state not maintained across connections https://bugs.webkit.org/show_bug.cgi?id=91456 Reviewed by Tony Chang. Source/WebCore: Explicitly store key generator state for each object store in the backing store, rather than deriving it from the maximum key in the data (which violates the spec if data is deleted). This change eliminates a (fragile) per-store cache of the value to simplify the code. A cache could be re-introduced, requiring an "onbeforecommit" hook for object stores, but it seems cleaner to save that for a follow-up patch. Test: storage/indexeddb/key-generator.html * Modules/indexeddb/IDBBackingStore.h: New APIs for getting/setting generator states. (IDBBackingStore): * Modules/indexeddb/IDBLevelDBBackingStore.cpp: (WebCore::IDBLevelDBBackingStore::getObjectStores): Read generator state (but currently ignored). (WebCore::IDBLevelDBBackingStore::createObjectStore): Write generator state. (WebCore): (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber): (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber): Update, optionally checking to see if the new value is greater than the old. (If caller got the value via getKeyGeneratorCurrentNumber it is safe to skip the check.) * Modules/indexeddb/IDBLevelDBBackingStore.h: (IDBLevelDBBackingStore): * Modules/indexeddb/IDBLevelDBCoding.cpp: * Modules/indexeddb/IDBLevelDBCoding.h: * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl): Ditch the cache. (WebCore::IDBObjectStoreBackendImpl::put): No need for abort task. (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys): Ditto. (WebCore::IDBObjectStoreBackendImpl::putInternal): Use the newfangled APIs below. (WebCore::IDBObjectStoreBackendImpl::generateKey): (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator): * Modules/indexeddb/IDBObjectStoreBackendImpl.h: (IDBObjectStoreBackendImpl): Source/WebKit/chromium: Add stub method implementations to test class. * tests/IDBFakeBackingStore.h: LayoutTests: Added key generator test case that spans database connections. * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/resources/key-generator.js: (testAcrossConnections.request.onsuccess.request.onsuccess.request.onsuccess): (testAcrossConnections.request.onsuccess.request.onsuccess): (testAcrossConnections.request.onsuccess): (testAcrossConnections.doFirstWrite.request.onsuccess): (testAcrossConnections.doFirstWrite): (testAcrossConnections.closeAndReopen.request.onsuccess): (testAcrossConnections.closeAndReopen): (testAcrossConnections.doSecondWrite.request.onsuccess): (testAcrossConnections.doSecondWrite.trans.oncomplete): (testAcrossConnections.doSecondWrite): Canonical link: https://commits.webkit.org/109367@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122909 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-07-18 01:07:27 +00:00
Verify that keys above 2^64 result in errors.
indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
trans1 = db.transaction(['store'], 'readwrite')
store_t1 = trans1.objectStore('store')
store_t1.put('a')
request = store.get(1)
store_t1.put('b', Math.pow(2, 64))
request = store.get(18446744073709552000)
store_t1.put('c')
store_t1.put('d', 2)
request = store.get(2)
PASS Got "a" for key: 1
PASS Got "b" for key: 18446744073709552000
Error event fired auto-incrementing past 2^64 (as expected)
PASS event.target.error.name is 'ConstraintError'
event.preventDefault()
PASS Got "d" for key: 2
db.close()
IndexedDB: Key generator state not maintained across connections https://bugs.webkit.org/show_bug.cgi?id=91456 Reviewed by Tony Chang. Source/WebCore: Explicitly store key generator state for each object store in the backing store, rather than deriving it from the maximum key in the data (which violates the spec if data is deleted). This change eliminates a (fragile) per-store cache of the value to simplify the code. A cache could be re-introduced, requiring an "onbeforecommit" hook for object stores, but it seems cleaner to save that for a follow-up patch. Test: storage/indexeddb/key-generator.html * Modules/indexeddb/IDBBackingStore.h: New APIs for getting/setting generator states. (IDBBackingStore): * Modules/indexeddb/IDBLevelDBBackingStore.cpp: (WebCore::IDBLevelDBBackingStore::getObjectStores): Read generator state (but currently ignored). (WebCore::IDBLevelDBBackingStore::createObjectStore): Write generator state. (WebCore): (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber): (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber): Update, optionally checking to see if the new value is greater than the old. (If caller got the value via getKeyGeneratorCurrentNumber it is safe to skip the check.) * Modules/indexeddb/IDBLevelDBBackingStore.h: (IDBLevelDBBackingStore): * Modules/indexeddb/IDBLevelDBCoding.cpp: * Modules/indexeddb/IDBLevelDBCoding.h: * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl): Ditch the cache. (WebCore::IDBObjectStoreBackendImpl::put): No need for abort task. (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys): Ditto. (WebCore::IDBObjectStoreBackendImpl::putInternal): Use the newfangled APIs below. (WebCore::IDBObjectStoreBackendImpl::generateKey): (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator): * Modules/indexeddb/IDBObjectStoreBackendImpl.h: (IDBObjectStoreBackendImpl): Source/WebKit/chromium: Add stub method implementations to test class. * tests/IDBFakeBackingStore.h: LayoutTests: Added key generator test case that spans database connections. * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/resources/key-generator.js: (testAcrossConnections.request.onsuccess.request.onsuccess.request.onsuccess): (testAcrossConnections.request.onsuccess.request.onsuccess): (testAcrossConnections.request.onsuccess): (testAcrossConnections.doFirstWrite.request.onsuccess): (testAcrossConnections.doFirstWrite): (testAcrossConnections.closeAndReopen.request.onsuccess): (testAcrossConnections.closeAndReopen): (testAcrossConnections.doSecondWrite.request.onsuccess): (testAcrossConnections.doSecondWrite.trans.oncomplete): (testAcrossConnections.doSecondWrite): Canonical link: https://commits.webkit.org/109367@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122909 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-07-18 01:07:27 +00:00
Ensure key generator state is maintained across connections:
IndexedDB: setVersion batch 8 https://bugs.webkit.org/show_bug.cgi?id=102434 Reviewed by Tony Chang. 2 lines were added to intversion-bad-parameters to capture the tests that were in the now-deleted setVersion-{null,undefined}. * storage/indexeddb/intversion-bad-parameters-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/readonly-properties-expected.txt: * storage/indexeddb/resources/intversion-bad-parameters.js: (deleteSuccess): * storage/indexeddb/resources/key-generator.js: Again awkward to call indexedDBTest all over the place. The prefix line's gotta go, and we could also pull a resetDatabase method out of indexedDBTest that would just do a delete and open. (runTests.nextTest.prepareDatabase): (runTests.nextTest.onSuccess.finishTest): (runTests.nextTest.onSuccess): (runTests.nextTest): (testAcrossConnections.prepareDatabase): * storage/indexeddb/resources/open-during-transaction.js: (prepareDatabase.event.target.transaction.oncomplete): (prepareDatabase): (tryOpens): * storage/indexeddb/resources/readonly-properties.js: (prepareDatabase): * storage/indexeddb/resources/setVersion-null.js: Removed. * storage/indexeddb/resources/setVersion-undefined.js: Removed. * storage/indexeddb/resources/transaction-after-close.js: (prepareDatabase): (firstTransactionComplete): (onFinalPutSuccess): * storage/indexeddb/resources/versionchangerequest-activedomobject.js: (testSetVersion): (upgradeNeededCallback): (successCallback): * storage/indexeddb/setVersion-null-expected.txt: Removed. * storage/indexeddb/setVersion-null.html: Removed. * storage/indexeddb/setVersion-undefined-expected.txt: Removed. * storage/indexeddb/setVersion-undefined.html: Removed. * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/versionchangerequest-activedomobject-expected.txt: Canonical link: https://commits.webkit.org/120565@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@134866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-11-16 01:14:12 +00:00
indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
IndexedDB: Key generator state not maintained across connections https://bugs.webkit.org/show_bug.cgi?id=91456 Reviewed by Tony Chang. Source/WebCore: Explicitly store key generator state for each object store in the backing store, rather than deriving it from the maximum key in the data (which violates the spec if data is deleted). This change eliminates a (fragile) per-store cache of the value to simplify the code. A cache could be re-introduced, requiring an "onbeforecommit" hook for object stores, but it seems cleaner to save that for a follow-up patch. Test: storage/indexeddb/key-generator.html * Modules/indexeddb/IDBBackingStore.h: New APIs for getting/setting generator states. (IDBBackingStore): * Modules/indexeddb/IDBLevelDBBackingStore.cpp: (WebCore::IDBLevelDBBackingStore::getObjectStores): Read generator state (but currently ignored). (WebCore::IDBLevelDBBackingStore::createObjectStore): Write generator state. (WebCore): (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber): (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber): Update, optionally checking to see if the new value is greater than the old. (If caller got the value via getKeyGeneratorCurrentNumber it is safe to skip the check.) * Modules/indexeddb/IDBLevelDBBackingStore.h: (IDBLevelDBBackingStore): * Modules/indexeddb/IDBLevelDBCoding.cpp: * Modules/indexeddb/IDBLevelDBCoding.h: * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl): Ditch the cache. (WebCore::IDBObjectStoreBackendImpl::put): No need for abort task. (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys): Ditto. (WebCore::IDBObjectStoreBackendImpl::putInternal): Use the newfangled APIs below. (WebCore::IDBObjectStoreBackendImpl::generateKey): (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator): * Modules/indexeddb/IDBObjectStoreBackendImpl.h: (IDBObjectStoreBackendImpl): Source/WebKit/chromium: Add stub method implementations to test class. * tests/IDBFakeBackingStore.h: LayoutTests: Added key generator test case that spans database connections. * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/resources/key-generator.js: (testAcrossConnections.request.onsuccess.request.onsuccess.request.onsuccess): (testAcrossConnections.request.onsuccess.request.onsuccess): (testAcrossConnections.request.onsuccess): (testAcrossConnections.doFirstWrite.request.onsuccess): (testAcrossConnections.doFirstWrite): (testAcrossConnections.closeAndReopen.request.onsuccess): (testAcrossConnections.closeAndReopen): (testAcrossConnections.doSecondWrite.request.onsuccess): (testAcrossConnections.doSecondWrite.trans.oncomplete): (testAcrossConnections.doSecondWrite): Canonical link: https://commits.webkit.org/109367@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122909 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-07-18 01:07:27 +00:00
db.createObjectStore('store', {autoIncrement: true})
trans = db.transaction('store', 'readwrite')
request = trans.objectStore('store').put('value1')
PASS request.result is 1
trans.objectStore('store').clear()
db.close()
IndexedDB: setVersion batch 8 https://bugs.webkit.org/show_bug.cgi?id=102434 Reviewed by Tony Chang. 2 lines were added to intversion-bad-parameters to capture the tests that were in the now-deleted setVersion-{null,undefined}. * storage/indexeddb/intversion-bad-parameters-expected.txt: * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/open-during-transaction-expected.txt: * storage/indexeddb/readonly-properties-expected.txt: * storage/indexeddb/resources/intversion-bad-parameters.js: (deleteSuccess): * storage/indexeddb/resources/key-generator.js: Again awkward to call indexedDBTest all over the place. The prefix line's gotta go, and we could also pull a resetDatabase method out of indexedDBTest that would just do a delete and open. (runTests.nextTest.prepareDatabase): (runTests.nextTest.onSuccess.finishTest): (runTests.nextTest.onSuccess): (runTests.nextTest): (testAcrossConnections.prepareDatabase): * storage/indexeddb/resources/open-during-transaction.js: (prepareDatabase.event.target.transaction.oncomplete): (prepareDatabase): (tryOpens): * storage/indexeddb/resources/readonly-properties.js: (prepareDatabase): * storage/indexeddb/resources/setVersion-null.js: Removed. * storage/indexeddb/resources/setVersion-undefined.js: Removed. * storage/indexeddb/resources/transaction-after-close.js: (prepareDatabase): (firstTransactionComplete): (onFinalPutSuccess): * storage/indexeddb/resources/versionchangerequest-activedomobject.js: (testSetVersion): (upgradeNeededCallback): (successCallback): * storage/indexeddb/setVersion-null-expected.txt: Removed. * storage/indexeddb/setVersion-null.html: Removed. * storage/indexeddb/setVersion-undefined-expected.txt: Removed. * storage/indexeddb/setVersion-undefined.html: Removed. * storage/indexeddb/transaction-after-close-expected.txt: * storage/indexeddb/versionchangerequest-activedomobject-expected.txt: Canonical link: https://commits.webkit.org/120565@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@134866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-11-16 01:14:12 +00:00
request = indexedDB.open(dbname)
IndexedDB: Key generator state not maintained across connections https://bugs.webkit.org/show_bug.cgi?id=91456 Reviewed by Tony Chang. Source/WebCore: Explicitly store key generator state for each object store in the backing store, rather than deriving it from the maximum key in the data (which violates the spec if data is deleted). This change eliminates a (fragile) per-store cache of the value to simplify the code. A cache could be re-introduced, requiring an "onbeforecommit" hook for object stores, but it seems cleaner to save that for a follow-up patch. Test: storage/indexeddb/key-generator.html * Modules/indexeddb/IDBBackingStore.h: New APIs for getting/setting generator states. (IDBBackingStore): * Modules/indexeddb/IDBLevelDBBackingStore.cpp: (WebCore::IDBLevelDBBackingStore::getObjectStores): Read generator state (but currently ignored). (WebCore::IDBLevelDBBackingStore::createObjectStore): Write generator state. (WebCore): (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber): (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber): Update, optionally checking to see if the new value is greater than the old. (If caller got the value via getKeyGeneratorCurrentNumber it is safe to skip the check.) * Modules/indexeddb/IDBLevelDBBackingStore.h: (IDBLevelDBBackingStore): * Modules/indexeddb/IDBLevelDBCoding.cpp: * Modules/indexeddb/IDBLevelDBCoding.h: * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl): Ditch the cache. (WebCore::IDBObjectStoreBackendImpl::put): No need for abort task. (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys): Ditto. (WebCore::IDBObjectStoreBackendImpl::putInternal): Use the newfangled APIs below. (WebCore::IDBObjectStoreBackendImpl::generateKey): (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator): * Modules/indexeddb/IDBObjectStoreBackendImpl.h: (IDBObjectStoreBackendImpl): Source/WebKit/chromium: Add stub method implementations to test class. * tests/IDBFakeBackingStore.h: LayoutTests: Added key generator test case that spans database connections. * storage/indexeddb/key-generator-expected.txt: * storage/indexeddb/resources/key-generator.js: (testAcrossConnections.request.onsuccess.request.onsuccess.request.onsuccess): (testAcrossConnections.request.onsuccess.request.onsuccess): (testAcrossConnections.request.onsuccess): (testAcrossConnections.doFirstWrite.request.onsuccess): (testAcrossConnections.doFirstWrite): (testAcrossConnections.closeAndReopen.request.onsuccess): (testAcrossConnections.closeAndReopen): (testAcrossConnections.doSecondWrite.request.onsuccess): (testAcrossConnections.doSecondWrite.trans.oncomplete): (testAcrossConnections.doSecondWrite): Canonical link: https://commits.webkit.org/109367@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122909 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-07-18 01:07:27 +00:00
db = request.result
trans = db.transaction('store', 'readwrite')
request = trans.objectStore('store').put('value2')
PASS request.result is 2
PASS successfullyParsed is true
TEST COMPLETE