IndexedDB: convert tests from setVersion to upgradeneeded
authordgrogan@chromium.org <dgrogan@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 12 Nov 2012 18:06:32 +0000 (18:06 +0000)
committerdgrogan@chromium.org <dgrogan@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 12 Nov 2012 18:06:32 +0000 (18:06 +0000)
https://bugs.webkit.org/show_bug.cgi?id=101676

Reviewed by Tony Chang.

A la bug 92037, add a function to shared.js that sets up the database
for tests where opening and versioning isn't the focus.

* storage/indexeddb/create-object-store-options-expected.txt:
* storage/indexeddb/createObjectStore-name-argument-required-expected.txt:
* storage/indexeddb/createObjectStore-null-name-expected.txt:
  ...many tests and expected files...

* storage/indexeddb/resources/shared.js:
  The new utility function indexedDBTest lives here.

* storage/indexeddb/values-odd-types-expected.txt:

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

198 files changed:
LayoutTests/ChangeLog
LayoutTests/storage/indexeddb/create-object-store-options-expected.txt
LayoutTests/storage/indexeddb/createObjectStore-name-argument-required-expected.txt
LayoutTests/storage/indexeddb/createObjectStore-null-name-expected.txt
LayoutTests/storage/indexeddb/cursor-added-bug-expected.txt
LayoutTests/storage/indexeddb/cursor-advance-expected.txt
LayoutTests/storage/indexeddb/cursor-continue-dir-expected.txt
LayoutTests/storage/indexeddb/cursor-continue-expected.txt
LayoutTests/storage/indexeddb/cursor-continue-validity-expected.txt
LayoutTests/storage/indexeddb/cursor-delete-expected.txt
LayoutTests/storage/indexeddb/cursor-inconsistency-expected.txt
LayoutTests/storage/indexeddb/cursor-index-delete-expected.txt
LayoutTests/storage/indexeddb/cursor-key-order-expected.txt
LayoutTests/storage/indexeddb/cursor-prev-no-duplicate-expected.txt
LayoutTests/storage/indexeddb/cursor-primary-key-order-expected.txt
LayoutTests/storage/indexeddb/cursor-reverse-bug-expected.txt
LayoutTests/storage/indexeddb/cursor-skip-deleted-expected.txt
LayoutTests/storage/indexeddb/cursor-update-expected.txt
LayoutTests/storage/indexeddb/cursor-update-value-argument-required-expected.txt
LayoutTests/storage/indexeddb/cursor-value-expected.txt
LayoutTests/storage/indexeddb/data-corruption-expected.txt
LayoutTests/storage/indexeddb/database-deletepending-flag-expected.txt
LayoutTests/storage/indexeddb/delete-range-expected.txt
LayoutTests/storage/indexeddb/deleteIndex-expected.txt
LayoutTests/storage/indexeddb/deleteObjectStore-name-argument-required-expected.txt
LayoutTests/storage/indexeddb/deleteObjectStore-null-name-expected.txt
LayoutTests/storage/indexeddb/deleted-objects-expected.txt
LayoutTests/storage/indexeddb/error-causes-abort-by-default-expected.txt
LayoutTests/storage/indexeddb/exception-in-event-aborts-expected.txt
LayoutTests/storage/indexeddb/get-keyrange-expected.txt
LayoutTests/storage/indexeddb/index-basics-expected.txt
LayoutTests/storage/indexeddb/index-basics-workers-expected.txt
LayoutTests/storage/indexeddb/index-count-expected.txt
LayoutTests/storage/indexeddb/index-cursor-expected.txt
LayoutTests/storage/indexeddb/index-duplicate-keypaths-expected.txt
LayoutTests/storage/indexeddb/index-get-key-argument-required-expected.txt
LayoutTests/storage/indexeddb/index-unique-expected.txt
LayoutTests/storage/indexeddb/invalid-keys-expected.txt
LayoutTests/storage/indexeddb/key-sort-order-across-types-expected.txt
LayoutTests/storage/indexeddb/key-sort-order-date-expected.txt
LayoutTests/storage/indexeddb/key-type-array-expected.txt
LayoutTests/storage/indexeddb/key-type-infinity-expected.txt
LayoutTests/storage/indexeddb/keypath-arrays-expected.txt
LayoutTests/storage/indexeddb/keypath-basics-expected.txt
LayoutTests/storage/indexeddb/keypath-edges-expected.txt
LayoutTests/storage/indexeddb/keypath-fetch-key-expected.txt
LayoutTests/storage/indexeddb/keypath-intrinsic-properties-expected.txt
LayoutTests/storage/indexeddb/legacy-constants-expected.txt
LayoutTests/storage/indexeddb/list-ordering-expected.txt
LayoutTests/storage/indexeddb/mozilla/add-twice-failure-expected.txt
LayoutTests/storage/indexeddb/mozilla/autoincrement-indexes-expected.txt
LayoutTests/storage/indexeddb/mozilla/bad-keypath-expected.txt
LayoutTests/storage/indexeddb/mozilla/clear-expected.txt
LayoutTests/storage/indexeddb/mozilla/create-index-unique-expected.txt
LayoutTests/storage/indexeddb/mozilla/create-index-with-integer-keys-expected.txt
LayoutTests/storage/indexeddb/mozilla/create-objectstore-basics-expected.txt
LayoutTests/storage/indexeddb/mozilla/create-objectstore-null-name-expected.txt
LayoutTests/storage/indexeddb/mozilla/cursor-mutation-expected.txt
LayoutTests/storage/indexeddb/mozilla/cursor-mutation-objectstore-only-expected.txt
LayoutTests/storage/indexeddb/mozilla/cursors-expected.txt
LayoutTests/storage/indexeddb/mozilla/delete-result-expected.txt
LayoutTests/storage/indexeddb/mozilla/indexes-expected.txt
LayoutTests/storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt
LayoutTests/storage/indexeddb/mozilla/key-requirements-expected.txt
LayoutTests/storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt
LayoutTests/storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt
LayoutTests/storage/indexeddb/mozilla/object-cursors-expected.txt
LayoutTests/storage/indexeddb/mozilla/object-identity-expected.txt
LayoutTests/storage/indexeddb/mozilla/object-store-inline-autoincrement-key-added-on-put-expected.txt
LayoutTests/storage/indexeddb/mozilla/objectstorenames-expected.txt
LayoutTests/storage/indexeddb/mozilla/put-get-values-expected.txt
LayoutTests/storage/indexeddb/mozilla/readonly-transactions-expected.txt
LayoutTests/storage/indexeddb/mozilla/readwrite-transactions-expected.txt
LayoutTests/storage/indexeddb/mozilla/remove-index-expected.txt
LayoutTests/storage/indexeddb/mozilla/resources/add-twice-failure.js
LayoutTests/storage/indexeddb/mozilla/resources/autoincrement-indexes.js
LayoutTests/storage/indexeddb/mozilla/resources/bad-keypath.js
LayoutTests/storage/indexeddb/mozilla/resources/clear.js
LayoutTests/storage/indexeddb/mozilla/resources/create-index-unique.js
LayoutTests/storage/indexeddb/mozilla/resources/create-index-with-integer-keys.js
LayoutTests/storage/indexeddb/mozilla/resources/create-objectstore-basics.js
LayoutTests/storage/indexeddb/mozilla/resources/create-objectstore-null-name.js
LayoutTests/storage/indexeddb/mozilla/resources/cursor-mutation-objectstore-only.js
LayoutTests/storage/indexeddb/mozilla/resources/cursor-mutation.js
LayoutTests/storage/indexeddb/mozilla/resources/cursors.js
LayoutTests/storage/indexeddb/mozilla/resources/delete-result.js
LayoutTests/storage/indexeddb/mozilla/resources/indexes.js
LayoutTests/storage/indexeddb/mozilla/resources/key-requirements-delete-null-key.js
LayoutTests/storage/indexeddb/mozilla/resources/key-requirements-inline-and-passed.js
LayoutTests/storage/indexeddb/mozilla/resources/key-requirements-put-no-key.js
LayoutTests/storage/indexeddb/mozilla/resources/key-requirements.js
LayoutTests/storage/indexeddb/mozilla/resources/object-cursors.js
LayoutTests/storage/indexeddb/mozilla/resources/object-identity.js
LayoutTests/storage/indexeddb/mozilla/resources/object-store-inline-autoincrement-key-added-on-put.js
LayoutTests/storage/indexeddb/mozilla/resources/objectstorenames.js
LayoutTests/storage/indexeddb/mozilla/resources/put-get-values.js
LayoutTests/storage/indexeddb/mozilla/resources/readonly-transactions.js
LayoutTests/storage/indexeddb/mozilla/resources/readwrite-transactions.js
LayoutTests/storage/indexeddb/mozilla/resources/remove-index.js
LayoutTests/storage/indexeddb/mutating-cursor-expected.txt
LayoutTests/storage/indexeddb/objectStore-required-arguments-expected.txt
LayoutTests/storage/indexeddb/objectstore-autoincrement-expected.txt
LayoutTests/storage/indexeddb/objectstore-clear-expected.txt
LayoutTests/storage/indexeddb/objectstore-count-expected.txt
LayoutTests/storage/indexeddb/objectstore-cursor-expected.txt
LayoutTests/storage/indexeddb/objectstore-removeobjectstore-expected.txt
LayoutTests/storage/indexeddb/open-cursor-expected.txt
LayoutTests/storage/indexeddb/opencursor-key-expected.txt
LayoutTests/storage/indexeddb/pending-activity-expected.txt
LayoutTests/storage/indexeddb/pending-activity-workers-expected.txt
LayoutTests/storage/indexeddb/prefetch-bugfix-108071-expected.txt
LayoutTests/storage/indexeddb/queued-commands-expected.txt
LayoutTests/storage/indexeddb/request-continue-abort-expected.txt
LayoutTests/storage/indexeddb/request-event-propagation-expected.txt
LayoutTests/storage/indexeddb/resources/create-object-store-options.js
LayoutTests/storage/indexeddb/resources/createObjectStore-name-argument-required.js
LayoutTests/storage/indexeddb/resources/createObjectStore-null-name.js
LayoutTests/storage/indexeddb/resources/cursor-added-bug.js
LayoutTests/storage/indexeddb/resources/cursor-advance.js
LayoutTests/storage/indexeddb/resources/cursor-continue-dir.js
LayoutTests/storage/indexeddb/resources/cursor-continue-validity.js
LayoutTests/storage/indexeddb/resources/cursor-continue.js
LayoutTests/storage/indexeddb/resources/cursor-delete.js
LayoutTests/storage/indexeddb/resources/cursor-inconsistency.js
LayoutTests/storage/indexeddb/resources/cursor-index-delete.js
LayoutTests/storage/indexeddb/resources/cursor-key-order.js
LayoutTests/storage/indexeddb/resources/cursor-prev-no-duplicate.js
LayoutTests/storage/indexeddb/resources/cursor-primary-key-order.js
LayoutTests/storage/indexeddb/resources/cursor-reverse-bug.js
LayoutTests/storage/indexeddb/resources/cursor-skip-deleted.js
LayoutTests/storage/indexeddb/resources/cursor-update-value-argument-required.js
LayoutTests/storage/indexeddb/resources/cursor-update.js
LayoutTests/storage/indexeddb/resources/cursor-value.js
LayoutTests/storage/indexeddb/resources/data-corruption.js
LayoutTests/storage/indexeddb/resources/database-deletepending-flag.js
LayoutTests/storage/indexeddb/resources/delete-range.js
LayoutTests/storage/indexeddb/resources/deleteIndex.js
LayoutTests/storage/indexeddb/resources/deleteObjectStore-name-argument-required.js
LayoutTests/storage/indexeddb/resources/deleteObjectStore-null-name.js
LayoutTests/storage/indexeddb/resources/deleted-objects.js
LayoutTests/storage/indexeddb/resources/error-causes-abort-by-default.js
LayoutTests/storage/indexeddb/resources/exception-in-event-aborts.js
LayoutTests/storage/indexeddb/resources/get-keyrange.js
LayoutTests/storage/indexeddb/resources/index-basics.js
LayoutTests/storage/indexeddb/resources/index-count.js
LayoutTests/storage/indexeddb/resources/index-cursor.js
LayoutTests/storage/indexeddb/resources/index-duplicate-keypaths.js
LayoutTests/storage/indexeddb/resources/index-get-key-argument-required.js
LayoutTests/storage/indexeddb/resources/index-unique.js
LayoutTests/storage/indexeddb/resources/invalid-keys.js
LayoutTests/storage/indexeddb/resources/key-sort-order-across-types.js
LayoutTests/storage/indexeddb/resources/key-sort-order-date.js
LayoutTests/storage/indexeddb/resources/key-type-array.js
LayoutTests/storage/indexeddb/resources/key-type-infinity.js
LayoutTests/storage/indexeddb/resources/keypath-arrays.js
LayoutTests/storage/indexeddb/resources/keypath-basics.js
LayoutTests/storage/indexeddb/resources/keypath-edges.js
LayoutTests/storage/indexeddb/resources/keypath-fetch-key.js
LayoutTests/storage/indexeddb/resources/keypath-intrinsic-properties.js
LayoutTests/storage/indexeddb/resources/legacy-constants.js
LayoutTests/storage/indexeddb/resources/list-ordering.js
LayoutTests/storage/indexeddb/resources/mutating-cursor.js
LayoutTests/storage/indexeddb/resources/objectStore-required-arguments.js
LayoutTests/storage/indexeddb/resources/objectstore-autoincrement.js
LayoutTests/storage/indexeddb/resources/objectstore-clear.js
LayoutTests/storage/indexeddb/resources/objectstore-count.js
LayoutTests/storage/indexeddb/resources/objectstore-cursor.js
LayoutTests/storage/indexeddb/resources/objectstore-removeobjectstore.js
LayoutTests/storage/indexeddb/resources/open-cursor.js
LayoutTests/storage/indexeddb/resources/opencursor-key.js
LayoutTests/storage/indexeddb/resources/pending-activity.js
LayoutTests/storage/indexeddb/resources/prefetch-bugfix-108071.js
LayoutTests/storage/indexeddb/resources/queued-commands.js
LayoutTests/storage/indexeddb/resources/request-continue-abort.js
LayoutTests/storage/indexeddb/resources/request-event-propagation.js
LayoutTests/storage/indexeddb/resources/shared.js
LayoutTests/storage/indexeddb/resources/transaction-abort.js
LayoutTests/storage/indexeddb/resources/transaction-active-flag.js
LayoutTests/storage/indexeddb/resources/transaction-and-objectstore-calls.js
LayoutTests/storage/indexeddb/resources/transaction-complete-workers.js
LayoutTests/storage/indexeddb/resources/transaction-crash-on-abort.js
LayoutTests/storage/indexeddb/resources/transaction-event-propagation.js
LayoutTests/storage/indexeddb/resources/transaction-read-only.js
LayoutTests/storage/indexeddb/resources/transaction-rollback.js
LayoutTests/storage/indexeddb/resources/transaction-storeNames-required.js
LayoutTests/storage/indexeddb/resources/value-undefined.js
LayoutTests/storage/indexeddb/resources/values-odd-types.js
LayoutTests/storage/indexeddb/transaction-abort-expected.txt
LayoutTests/storage/indexeddb/transaction-active-flag-expected.txt
LayoutTests/storage/indexeddb/transaction-and-objectstore-calls-expected.txt
LayoutTests/storage/indexeddb/transaction-complete-workers-expected.txt
LayoutTests/storage/indexeddb/transaction-crash-on-abort-expected.txt
LayoutTests/storage/indexeddb/transaction-event-propagation-expected.txt
LayoutTests/storage/indexeddb/transaction-read-only-expected.txt
LayoutTests/storage/indexeddb/transaction-rollback-expected.txt
LayoutTests/storage/indexeddb/transaction-storeNames-required-expected.txt
LayoutTests/storage/indexeddb/value-undefined-expected.txt
LayoutTests/storage/indexeddb/values-odd-types-expected.txt

index 20f102b..26dbb81 100644 (file)
@@ -1,3 +1,23 @@
+2012-11-12  David Grogan  <dgrogan@chromium.org>
+
+        IndexedDB: convert tests from setVersion to upgradeneeded
+        https://bugs.webkit.org/show_bug.cgi?id=101676
+
+        Reviewed by Tony Chang.
+
+        A la bug 92037, add a function to shared.js that sets up the database
+        for tests where opening and versioning isn't the focus.
+
+        * storage/indexeddb/create-object-store-options-expected.txt:
+        * storage/indexeddb/createObjectStore-name-argument-required-expected.txt:
+        * storage/indexeddb/createObjectStore-null-name-expected.txt:
+          ...many tests and expected files...
+
+        * storage/indexeddb/resources/shared.js:
+          The new utility function indexedDBTest lives here.
+
+        * storage/indexeddb/values-odd-types-expected.txt:
+
 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
 
         MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
index 383ba9a..4933d69 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's createObjectStore's various options
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('create-object-store-options')
-db = event.target.result
-request = db.setVersion('version 1')
-Deleted all object stores.
+dbname = "create-object-store-options.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('a', {keyPath: 'a'})
 db.createObjectStore('b')
 db.createObjectStore('c', {autoIncrement: true});
index ef8ee0d..7ede956 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB createObjectStore name argument is required
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,10 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
+dbname = "createObjectStore-name-argument-required.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
 PASS db.createObjectStore(); threw exception TypeError: Not enough arguments.
 PASS successfullyParsed is true
 
index a3f51e3..fe1d05b 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB createObjectStore null handling
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "createObjectStore-null-name.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore(null);
 PASS objectStore.name is "null"
 PASS successfullyParsed is true
index d22299c..44e633f 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB cursor iterates correctly over values added during iteration.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,11 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('cursor-delete')
-db = event.target.result
-db.setVersion('new version')
-trans = event.target.result
+dbname = "cursor-added-bug.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
+trans = event.target.transaction
 PASS trans is non-null.
-Deleted all object stores.
 objectStore = db.createObjectStore('test')
 objectStore.add(1, 1)
 objectStore.add(2, 2)
index 6fdc6e7..bd90945 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB cursor.advance().
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-openSuccess():
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
-trans = request.result
+dbname = "cursor-advance.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore(objectStoreName);
 Now create the indexes.
 objectStore.createIndex(indexData[i].name, indexData[i].keyPath, indexData[i].options);
index d01dd77..282a487 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test that continue() calls against cursors are validated by direction.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-dbname = self.location.pathname
+dbname = "cursor-continue-dir.html"
 indexedDB.deleteDatabase(dbname)
-request = indexedDB.open(dbname)
-db = request.result
-db.setVersion('1')
+indexedDB.open(dbname)
 store = db.createObjectStore('store')
 store.put(1,1)
 store.put(2,2)
index 0a620b6..290dcf5 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's IDBCursor.continue() with a key parameter.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('cursor-continue')
-db = event.target.result
-db.setVersion('new version')
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "cursor-continue.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('someObjectStore')
 objectStore.createIndex('someIndex', 'x')
 objectStore.add({'x': testData[nextToAdd]}, nextToAdd)
index 6c96a37..eadfa5f 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's IDBCursor.continue() behavior when called beyond normal scope.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,11 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('cursor-continue')
-db = event.target.result
-db.setVersion('new version')
-trans = event.target.result
+dbname = "cursor-continue-validity.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
+trans = event.target.transaction
 PASS trans is non-null.
-Deleted all object stores.
 db.createObjectStore('someObjectStore')
 objectStore.createIndex('someIndex', 'x')
 objectStore.add({'x': 0 }, 0)
index 48d375a..8955302 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's openCursor.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,12 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('cursor-delete')
-db = event.target.result
-db.setVersion('new version')
+dbname = "cursor-delete.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 setVersionSuccess():
 trans = event.target.result
 PASS trans is non-null.
-Deleted all object stores.
 objectStore = db.createObjectStore('test')
 objectStore.add('myValue1', 'myKey1')
 objectStore.add('myValue2', 'myKey2')
index e6a3c9c..b362c07 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test consistency of IndexedDB's cursor objects.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,12 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('cursor-inconsistency')
-db = event.target.result
-db.setVersion('new version')
+dbname = "cursor-inconsistency.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 setVersionSuccess():
-trans = event.target.result
+trans = event.target.transaction
 PASS trans is non-null.
-Deleted all object stores.
 objectStore = db.createObjectStore('basicStore')
 objectStore.add('someValue1', 'someKey1').onerror = unexpectedErrorCallback
 objectStore.add('someValue2', 'someKey2').onerror = unexpectedErrorCallback
index ea88593..7a3591c 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's openCursor.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,11 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('cursor-index-delete')
-db = event.target.result
-db.setVersion('new version')
-setVersionSuccess():
-trans = event.target.result
+dbname = "cursor-index-delete.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
+trans = event.target.transaction
 PASS trans is non-null.
-Deleted all object stores.
 objectStore = db.createObjectStore('test')
 objectStore.createIndex('testIndex', 'x')
 objectStore.add({x: 1}, 'myKey1')
index 7935cd1..3e9302a 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB keys ordering and readback from cursors.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-
-indexedDB.deleteDatabase('cursor-key-order')
-openreq = indexedDB.open('cursor-key-order')
-db = openreq.result
-verreq = db.setVersion('1')
+dbname = "cursor-key-order.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('store')
 
 populating store...
index af7427f..76fd086 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB behavior when iterating backwards with and without NO_DUPLICATE
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-
-openreq = indexedDB.open('cursor-prev-no-duplicate')
-db = openreq.result
-verreq = db.setVersion('1')
-Deleted all object stores.
+dbname = "cursor-prev-no-duplicate.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('store')
 store.createIndex('index', 'sorted')
 
index a1f79bb..b5eda74 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB primary key ordering and readback from cursors.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-
-indexedDB.deleteDatabase('cursor-primary-key-order')
-openRequest = indexedDB.open('cursor-primary-key-order')
-db = openRequest.result
-versionChangeRequest = db.setVersion('1')
+dbname = "cursor-primary-key-order.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('store')
 index = store.createIndex('index', 'indexKey')
 
index 2eab74c..bda4729 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB keys ordering and readback from cursors.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-
-openreq = indexedDB.open('cursor-reverse-bug')
-db = openreq.result
-verreq = db.setVersion('1')
-Deleted all object stores.
+dbname = "cursor-reverse-bug.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('store')
 store.createIndex('index', '')
 
index d2f6545..5429ef4 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's cursor skips deleted entries.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,12 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('cursor-skip-deleted')
-db = event.target.result
-db.setVersion('new version')
+dbname = "cursor-skip-deleted.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 setVersionSuccess():
-trans = event.target.result
+trans = event.target.transaction
 PASS trans is non-null.
-Deleted all object stores.
 objectStore = db.createObjectStore('store', {keyPath: 'id'})
 objectStore.createIndex('nameIndex', 'name')
 
index 3ea5b6b..f4bc1e5 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's cursor update.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,11 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('cursor-update')
-db = event.target.result
-db.setVersion('new version')
+dbname = "cursor-update.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 setVersionSuccess():
-trans = event.target.result
+trans = event.target.transaction
 PASS trans is non-null.
 Deleted all object stores.
 objectStore = db.createObjectStore('basicStore')
index da404d9..624f7c1 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB cursor.update required arguments
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "cursor-update-value-argument-required.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('autoIncrement', { autoIncrement: true });
 request = objectStore.openCursor();
 keys = [1, -1, 0, 10, 2000, 'q', 'z', 'two', 'b', 'a'];
index 974dceb..4830ac1 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's cursor value property.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-request = indexedDB.open('cursor-value')
-db = request.result
-request = db.setVersion('new version')
-transaction = request.result
-Deleted all object stores.
+dbname = "cursor-value.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('store')
 
 testCursor():
index 55d00d7..7b73985 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test that data inserted into IndexedDB does not get corrupted on disk.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,14 +5,12 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('data-corruption')
-openSuccess():
-db = event.target.result
-db.setVersion('new version')
+dbname = "data-corruption.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 setVersionSuccess():
-trans = event.target.result
+trans = event.target.transaction
 PASS trans is non-null.
-Deleted all object stores.
 db.createObjectStore('storeName')
 addData():
 transaction = db.transaction(['storeName'], 'readwrite')
index 66b044c..05b23e9 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB IDBDatabase internal delete pending flag
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,15 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-dbname = self.location.pathname
+dbname = "database-deletepending-flag.html"
 indexedDB.deleteDatabase(dbname)
-
-Open a connection and set a sentinel version:
-version = '10'
-request = indexedDB.open(dbname)
-connection = request.result
-request = connection.setVersion(version)
-PASS connection.version is version
+indexedDB.open(dbname, 5)
 connection.createObjectStore('store')
 PASS connection.objectStoreNames.length is 1
 
index 481f0e0..4c14fa4 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's IDBObjectStore.delete(IDBKeyRange) method.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-request = indexedDB.deleteDatabase('delete-range')
-request = indexedDB.open('delete-range')
-db = request.result
-request = db.setVersion('1')
-trans = request.result
+dbname = "delete-range.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('store')
 
 trans = db.transaction('store', 'readwrite')
index 9877e1a..a996ac2 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB deleteIndex method
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('deleteIndex')
-db = event.target.result
-request = db.setVersion('1')
-transaction = event.target.result;
-Deleted all object stores.
+dbname = "deleteIndex.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('foo');
 Expecting exception from objectStore.deleteIndex('first')
 PASS Exception was thrown.
index 687a2d5..a7a9580 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB deleteObjectStore required argument
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "deleteObjectStore-name-argument-required.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 PASS db.deleteObjectStore(); threw exception TypeError: Not enough arguments.
 PASS successfullyParsed is true
 
index 79e13ef..0a8c80b 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB deleteObjectStore required argument
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "deleteObjectStore-null-name.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('null');
 db.deleteObjectStore(null);
 PASS successfullyParsed is true
index 7be78c9..f1e9418 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test that IndexedDB objects that have been deleted throw exceptions
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-dbname = self.location.pathname
-request = indexedDB.deleteDatabase(dbname)
-
-openDatabase():
-request = indexedDB.open(dbname)
-connection = request.result
-request = connection.setVersion('1')
+dbname = "deleted-objects.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 
 deletedStore = connection.createObjectStore('deletedStore')
 store = connection.createObjectStore('store')
index 47fc7a6..22b1b9f 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Verify that a transaction with an error aborts unless preventDefault() is called.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,14 +5,12 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('error-causes-abort-by-default')
-db = event.target.result
-db.setVersion('new version')
+dbname = "error-causes-abort-by-default.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 setVersionSuccess():
-trans = event.target.result
+trans = event.target.transaction
 PASS trans is non-null.
-trans.oncomplete = addData
-Deleted all object stores.
 db.createObjectStore('storeName', null)
 trans = db.transaction(['storeName'], 'readwrite')
 trans.onabort = unexpectedAbortCallback
index 4639c59..078fb97 100644 (file)
@@ -1,6 +1,5 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
-CONSOLE MESSAGE: line 57: Uncaught this exception is expected
-CONSOLE MESSAGE: line 57: Uncaught this exception is expected
+CONSOLE MESSAGE: line 35: Uncaught this exception is expected
+CONSOLE MESSAGE: line 35: Uncaught this exception is expected
 Test exceptions in IDBRequest handlers cause aborts.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -8,14 +7,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('exception-in-event-aborts')
-db = event.target.result
-db.setVersion('new version')
-setVersionSuccess():
-trans = event.target.result
-PASS trans is non-null.
-trans.oncomplete = startTest
-Deleted all object stores.
+dbname = "exception-in-event-aborts.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('storeName', null)
 store.add({x: 'value', y: 'zzz'}, 'key')
 
index c396235..0af7361 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's IDBObjectStore.get(IDBKeyRange) method.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('cursor-continue')
-db = event.target.result
-db.setVersion('new version')
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "get-keyrange.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('someObjectStore')
 objectStore.createIndex('someIndex', 'x')
 objectStore.add({'x': 0 }, 0)
index f3e7b42..18184e2 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test the basics of IndexedDB's webkitIDBIndex.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,11 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('index-basics')
-db = event.target.result
-db.setVersion('new version')
-setVersionSuccess():
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "index-basics.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
+
+prepareDatabase():
 db.createObjectStore('storeName', null)
 store.createIndex('indexName', 'x')
 store.createIndex('indexName2', 'y', {unique: false})
index f2706a8..1687b77 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 [Worker] Test the basics of IndexedDB's webkitIDBIndex.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -7,13 +6,11 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 Starting worker: resources/index-basics.js
 [Worker] indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 [Worker] 
-[Worker] indexedDB.open('index-basics')
-[Worker] db = event.target.result
-[Worker] db.setVersion('new version')
-[Worker] setVersionSuccess():
-[Worker] trans = event.target.result
-PASS [Worker] trans is non-null.
-[Worker] Deleted all object stores.
+[Worker] dbname = "index-basics.js"
+[Worker] indexedDB.deleteDatabase(dbname)
+[Worker] indexedDB.open(dbname)
+[Worker] 
+[Worker] prepareDatabase():
 [Worker] db.createObjectStore('storeName', null)
 [Worker] store.createIndex('indexName', 'x')
 [Worker] store.createIndex('indexName2', 'y', {unique: false})
index 9daa3db..5884214 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's IDBIndex.count().
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,14 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('index-count')
-db = event.target.result
-db.setVersion('new version')
-
-preparing database
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "index-count.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('storeName', null)
 store.createIndex('indexName', '')
 PASS store.indexNames.contains('indexName') is true
index 1ea5104..f6ee97e 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's webkitIDBIndex.openCursor + the cursor it produces in depth.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('index-cursor')
-db = event.target.result
-db.setVersion('new version')
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "index-cursor.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('someObjectStore')
 objectStore.createIndex('someIndex', 'x')
 objectStore.add({'x': testData[nextToAdd]}, nextToAdd)
index 3e5d60d..0244831 100644 (file)
@@ -6,10 +6,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('store-index-collision')
-db = event.target.result
-db.setVersion('1')
-Deleted all object stores.
+dbname = "index-duplicate-keypaths.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('collideWithIndex', {keyPath: 'foo'})
 index = store.createIndex('foo', 'foo')
 objectStore.put({foo: 10})
index bc09d52..e367123 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB index .get() required argument
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "index-get-key-argument-required.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('foo', { keyPath: 'id', autoIncrement: true });
 index = objectStore.createIndex('first', 'first');
 PASS index.get(); threw exception TypeError: Not enough arguments.
index b292d07..3688ed9 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test features of IndexedDB's unique indices.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('index-unique')
-db = event.target.result
-db.setVersion('new version')
-deleteExisting():
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "index-unique.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('store')
 store.createIndex('index', 'x', {unique: true})
 setVersionCompleted():
index 025dcd1..a7843a8 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB invalid keys
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "invalid-keys.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('foo');
 Expecting exception from request = objectStore.put('value', void 0)
 PASS Exception was thrown.
index 23ece60..6562898 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB key comparison
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "key-sort-order-across-types.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('foo');
 request = objectStore.add([], Infinity);
 request = objectStore.add([], -Infinity);
index aa0384b..147092a 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB key comparison
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "key-sort-order-date.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('foo');
 date1 = new Date(1000);
 request = objectStore.add([], date1);
index 10ae24a..1f08494 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB key types
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = openreq.result
-request = db.setVersion('1')
-preparing database
-Deleted all object stores.
+dbname = "key-type-array.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('store');
 
 trans = db.transaction('store', 'readwrite')
index ea06eaa..80161ce 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB key types
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "key-type-infinity.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('foo');
 test key as infinity
 request = objectStore.add([], Infinity);
index 0f1b578..18e02bd 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB Array-type keyPaths
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.deleteDatabase('keypath-arrays')
-indexedDB.open('keypath-arrays')
-
-openSuccess():
-db = event.target.result
-request = db.setVersion('1')
+dbname = "keypath-arrays.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('store', {keyPath: ['a', 'b']})
 store.createIndex('index', ['c', 'd'])
 Expecting exception from db.createObjectStore('store-with-generator', {keyPath: ['a', 'b'], autoIncrement: true})
index b77dbd2..c9487e8 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test for valid and invalid keypaths
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-
-testValidKeyPaths():
-Deleted all object stores.
+dbname = "keypath-basics.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('name')
 PASS store.keyPath is null
 Deleted all object stores.
index cdeecd6..29d132a 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB keyPath edge cases
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.deleteDatabase('keypath-edges')
-indexedDB.open('keypath-edges')
-
-openSuccess():
-db = event.target.result
-request = db.setVersion('1')
+dbname = "keypath-edges.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('store-with-path', {keyPath: 'foo'})
 db.createObjectStore('store-with-path-and-generator', {keyPath: 'foo', autoIncrement: true})
 
index 8fef4a1..230f1cd 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB keyPaths
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,9 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
+dbname = "keypath-fetch-key.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 
 testing simple identifier
 Deleted all object stores.
index caa791e..4b49554 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB keyPath with intrinsic properties
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.deleteDatabase('keypath-intrinsic-properties')
-indexedDB.open('keypath-intrinsic-properties')
-
-openSuccess():
-db = event.target.result
-request = db.setVersion('1')
+dbname = "keypath-intrinsic-properties.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('store', {keyPath: 'id'})
 store.createIndex('string length', 'string.length')
 store.createIndex('array length', 'array.length')
index 4a5b925..330d497 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 CONSOLE MESSAGE: Numeric transaction modes are deprecated in IDBDatabase.transaction. Use "readonly" or "readwrite".
 CONSOLE MESSAGE: Numeric transaction modes are deprecated in IDBDatabase.transaction. Use "readonly" or "readwrite".
 CONSOLE MESSAGE: Numeric direction values are deprecated in openCursor and openKeyCursor. Use "next", "nextunique", "prev", or "prevunique".
@@ -19,11 +18,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-
-openreq = indexedDB.open('legacy-constants')
-db = openreq.result
-verreq = db.setVersion('1')
-Deleted all object stores.
+dbname = "legacy-constants.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('store')
 store.createIndex('index', 'value')
 
index 14d69ad..9697d21 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test string list ordering in IndexedDB.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,17 +5,13 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
+dbname = "list-ordering.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 check that the expected order is the canonical JS sort order:
 sorted_order = expected_order.slice(); sorted_order.sort()
 PASS areArraysEqual(sorted_order, expected_order) is true
 
-testStoresAndIndexes():
-indexedDB.deleteDatabase('list-ordering')
-indexedDB.open('list-ordering')
-db = request.result
-PASS db.version is 1
-db.setVersion('1')
-
 Object stores:
 db.createObjectStore("𝄞")
 db.createObjectStore("�")
index 89b7e03..f398bff 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB behavior adding the same property twice
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "add-twice-failure.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('foo');
 key = 10
 request = objectStore.add({}, key);
index 7c46cca..dcbc3f6 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB indexes against autoincrementing keys
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "autoincrement-indexes.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('autoincrement-id', { keyPath: 'id', autoIncrement: true });
 objectStore.createIndex('first', 'first');
 objectStore.createIndex('second', 'second');
index db728aa..f26e120 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB adding property with invalid keypath
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "bad-keypath.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('foo', { keyPath: 'keyPath' });
 request = objectStore.add({ keyPath: 'foo' });
 Expecting exception from request = objectStore.add({});
index 6f181d9..4f6db6d 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's clearing an object store
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "clear.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('foo', { autoIncrement: true });
 request = objectStore.add({});
 Expecting exception from db.transaction('foo').objectStore('foo').clear();
index d5f4eea..e7b21a2 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's creating unique index and updating indexNames
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "create-index-unique.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('a', { keyPath: 'id', autoIncrement: true });
 index = objectStore.createIndex(indexName, indexKeyPath, { unique: true });
 PASS index.name is indexName
index 053dbbd..cb076d8 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's creating index with integer keys
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "create-index-with-integer-keys.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('foo', { keyPath: 'id' });
 data = { id: 16, num: 42 };
 objectStore.add(data);
index 42a9d9c..0236820 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's creating object store and updating properties
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "create-objectstore-basics.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore(info.name, info.options);
 PASS objectStore.name is info.name
 PASS objectStore.indexNames.length is 0
index 372fde1..fca59d9 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's creating object store with null name
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "create-objectstore-null-name.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore(null);
 PASS objectStore.name is 'null'
 PASS successfullyParsed is true
index 1747eb5..9c402d8 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's cursor mutation
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,14 +5,11 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-
-indexedDB.deleteDatabase(name)
-indexedDB.open(name)
-db = event.target.result
-db.setVersion('1')
+dbname = "cursor-mutation.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 
 setupObjectStoreAndCreateIndex():
-trans = request.result
 objectStore = db.createObjectStore('foo', { keyPath: 'ss' })
 index = objectStore.createIndex('name', 'name', { unique: true })
 objectStoreData = [
@@ -29,7 +25,6 @@ objectStore.add(objectStoreData[1])
 objectStore.add(objectStoreData[2])
 objectStore.add(objectStoreData[3])
 objectStore.add(objectStoreData[4])
-trans.oncomplete = checkCursorResults
 
 setupCursor():
 count = 0
index 152de2b..e6eef32 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's cursor mutation during object store cursor iteration
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-openSuccess():
-db = event.target.result
-request = db.setVersion('1')
-setupObjectStore():
-Deleted all object stores.
+dbname = "cursor-mutation-objectstore-only.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('foo', { keyPath: 'ss' });
 objectStoreData = [
         { ss: '237-23-7732', name: 'Bob' },
index 49b4a29..899edb8 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB cursor behavior
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "cursors.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('autoIncrement', { autoIncrement: true });
 request = objectStore.openCursor();
 PASS event.target.result is null
index 41e4148..6a5afa1 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB: result property after deleting existing and non-existing record
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "delete-result.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('foo', { keyPath: 'id', autoIncrement: true });
 request = objectStore.add({});
 id = event.target.result;
index e1b85df..8d50186 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB: iterating through index cursors with keys and key ranges
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-openSuccess():
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "indexes.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore(objectStoreName);
 First, add all our data to the object store.
 request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
index b2cb3c1..83c2b4f 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's behavior deleting entry with no key
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('version 1')
-Deleted all object stores.
+dbname = "key-requirements-delete-null-key.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('bar');
 Expecting exception from objectStore.delete(null);
 PASS Exception was thrown.
index 6a11079..d3ff058 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's event.target.result after add() and put()
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "key-requirements.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('foo', { autoIncrement: true });
 request = objectStore.add({});
 key1 = event.target.result;
index dbe953c..ea94a9f 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's behavior adding inline and passed key simultaneously
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-openSuccess():
-db = event.target.result
-request = db.setVersion('version 1')
-cleanDatabase():
-Deleted all object stores.
+dbname = "key-requirements-inline-and-passed.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('baz', { keyPath: 'id' });
 Expecting exception from objectStore.add({id: 5}, 5);
 PASS Exception was thrown.
index aa77f0e..fb71614 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's behavior puting without key
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "key-requirements-put-no-key.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('bar');
 Expecting exception from objectStore.put({});
 PASS Exception was thrown.
index 6d06200..9b6d56e 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's index cursors
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "object-cursors.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 autoIncrement = false;
 objectStore = db.createObjectStore('a', { keyPath: 'id', autoIncrement: autoIncrement });
 objectStore.createIndex(indexes[j].name, 'name', indexes[j].options);
index 25ac6e0..128a7f2 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB: object identity
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,18 +5,16 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
+dbname = "object-identity.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 transaction = event.target.transaction;
-Deleted all object stores.
 objectStore1 = db.createObjectStore('foo');
 objectStore2 = transaction.objectStore('foo');
 PASS objectStore1 === objectStore2 is true
 index1 = objectStore1.createIndex('bar', 'key');
 index2 = objectStore2.index('bar');
 PASS index1 === index2 is true
-transaction.oncomplete = testIdentitySomeMore;
 transaction = db.transaction('foo');
 objectStore3 = transaction.objectStore('foo');
 objectStore4 = transaction.objectStore('foo');
index 78f99dc..0189f17 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB adding an autoincremented key and retrieving it successfully
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "object-store-inline-autoincrement-key-added-on-put.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 test = {
         name: 'inline key; key generator',
         autoIncrement: true,
index 0e5969c..92e2e5d 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's objectStoreNames array
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "objectstorenames.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore(objectStoreName, { keyPath: 'id', autoIncrement: true });
 PASS 'objectStoreNames' in db is true
 PASS db.objectStoreNames.length is 1
index 259618c..49f889f 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's putting and getting values in an object store
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "put-get-values.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 testString = { key: 0, value: 'testString' };
 testInt = { key: 1, value: 1002 };
 objectStore = db.createObjectStore('Objects', { autoIncrement: false });
index ea1670c..24b44a8 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's readonly transactions
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "readonly-transactions.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore(osName, { autoIncrement: true });
 Expecting exception from db.transaction([osName]).objectStore(osName).add({});
 PASS Exception was thrown.
index 34a9345..62700a3 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's read/write transactions
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "readwrite-transactions.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore(osName, { autoIncrement: true });
 request = db.transaction([osName], 'readwrite').objectStore(osName).add({});
 PASS event.target.transaction.mode is 'readwrite'
index 9ca917f..b7972bb 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's creating and deleting indexes
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "remove-index.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore(objectStoreName, { keyPath: 'foo' });
 PASS db.objectStoreNames.length is 1
 PASS db.objectStoreNames.item(0) is objectStoreName
index 29e3d58..0411f46 100644 (file)
@@ -11,28 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB behavior adding the same property twice");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo');");
     key = evalAndLog("key = 10");
@@ -54,5 +37,3 @@ function addSecondExpectedError()
     shouldBe("event.target.errorCode", "IDBDatabaseException.CONSTRAINT_ERR");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 2da96e7..6487dac 100644 (file)
@@ -11,29 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB indexes against autoincrementing keys");
 
-function test()
+indexedDBTest(prepareDatabase, setVersionComplete);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = setupObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setupObjectStore()
-{
-    trans = event.target.result;
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     objectStore = evalAndLog("objectStore = db.createObjectStore('autoincrement-id', { keyPath: 'id', autoIncrement: true });");
     evalAndLog("objectStore.createIndex('first', 'first');");
@@ -50,7 +32,6 @@ function setupIndexes()
     key = evalAndLog("key = event.target.result;");
     shouldBeFalse("key == null");
     debug("expected key is " + key);
-    trans.oncomplete = setVersionComplete;
 }
 
 function setVersionComplete()
@@ -85,5 +66,3 @@ function checkThirdIndex()
     shouldBe("event.target.result.id", "key");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index d3eb0b2..3d4351b 100644 (file)
@@ -11,28 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB adding property with invalid keypath");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo', { keyPath: 'keyPath' });");
     request = evalAndLog("request = objectStore.add({ keyPath: 'foo' });");
@@ -45,5 +28,3 @@ function addFirstSuccess()
     evalAndExpectException("request = objectStore.add({});", "IDBDatabaseException.DATA_ERR");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 2b1bb9c..f2280df 100644 (file)
@@ -11,33 +11,14 @@ if (this.importScripts) {
 
 description("Test IndexedDB's clearing an object store");
 
-function test()
+indexedDBTest(prepareDatabase, clear);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo', { autoIncrement: true });");
     request = evalAndLog("request = objectStore.add({});");
     request.onerror = unexpectedErrorCallback;
-    event.target.result.oncomplete = clear;
 }
 
 function clear()
@@ -55,5 +36,3 @@ function areWeClearYet()
     shouldBe("cursor", "null");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 0d7410c..42c3e85 100644 (file)
@@ -11,29 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's creating unique index and updating indexNames");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createAndVerifyIndex;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createAndVerifyIndex()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore('a', { keyPath: 'id', autoIncrement: true });");
 
     indexName = "1";
@@ -55,5 +37,3 @@ function createAndVerifyIndex()
     shouldBe("event.target.transaction.mode", "'versionchange'");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index c0d8ab1..2588b72 100644 (file)
@@ -11,29 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's creating index with integer keys");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = setupObjectStoreAndCreateIndex;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setupObjectStoreAndCreateIndex()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo', { keyPath: 'id' });");
     data = evalAndLog("data = { id: 16, num: 42 };");
     evalAndLog("objectStore.add(data);");
@@ -51,5 +33,3 @@ function verifyKeyCursor()
     shouldBe("cursor.primaryKey", "data.id");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 4a78788..80c75b7 100644 (file)
@@ -11,29 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's creating object store and updating properties");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStoreInfo = [
         { name: "1", options: { autoIncrement: true } },
         { name: "2", options: { autoIncrement: false } },
@@ -64,5 +46,3 @@ function cleanDatabase()
 
     finishJSTest();
 }
-
-test();
index cb1bd20..3cfc0ce 100644 (file)
@@ -11,33 +11,13 @@ if (this.importScripts) {
 
 description("Test IndexedDB's creating object store with null name");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore(null);");
     shouldBe("objectStore.name", "'null'");
 
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 247c0d2..eabdace 100644 (file)
@@ -11,31 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's cursor mutation during object store cursor iteration");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    debug("openSuccess():");
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = setupObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setupObjectStore()
-{
-    debug("setupObjectStore():");
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo', { keyPath: 'ss' });");
     objectStoreData = evalAndLog("objectStoreData = [\n" + 
 "        { ss: '237-23-7732', name: 'Bob' },\n" + 
@@ -136,5 +116,3 @@ function checkMutatingCursorResults()
     shouldBe("sawRemoved", "true");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index c11b445..a3bf957 100644 (file)
@@ -11,33 +11,14 @@ if (this.importScripts) {
 
 description("Test IndexedDB's cursor mutation");
 
-function test()
-{
-    removeVendorPrefixes();
-
-    debug("");
-    name = 'cursor-mutation';
-    request = evalAndLog("indexedDB.deleteDatabase(name)");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function () {
-        request = evalAndLog("indexedDB.open(name)");
-        request.onerror = unexpectedErrorCallback;
-        request.onsuccess = function () {
-            evalAndLog("db = event.target.result");
-            request = evalAndLog("db.setVersion('1')");
-            request.onerror = unexpectedErrorCallback;
-            request.onsuccess = setupObjectStoreAndCreateIndex;          
-        };
-    };
-}
-
-function setupObjectStoreAndCreateIndex()
+indexedDBTest(prepareDatabase, checkCursorResults);
+function prepareDatabase()
 {
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     debug("");
     debug("setupObjectStoreAndCreateIndex():");
 
-    trans = evalAndLog("trans = request.result");
-
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo', { keyPath: 'ss' })");
     index = evalAndLog("index = objectStore.createIndex('name', 'name', { unique: true })");
     objectStoreData = evalAndLog("objectStoreData = [\n" + 
@@ -58,7 +39,6 @@ function setupObjectStoreAndCreateIndex()
         evalAndLog("objectStore.add(objectStoreData[" + i + "])");
     }
 
-    evalAndLog("trans.oncomplete = checkCursorResults");
     setupCursor();
 }
 
@@ -177,5 +157,3 @@ function checkMutatingCursorResults()
     shouldBe("sawRemoved", "false");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 18897da..c33f693 100644 (file)
@@ -11,29 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB cursor behavior");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = testGroup1;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function testGroup1()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("db.createObjectStore('autoIncrement', { autoIncrement: true });");
 
     request = evalAndLog("request = objectStore.openCursor();");
@@ -383,5 +365,3 @@ function testGroup15()
       }
     }
 }
-
-test();
\ No newline at end of file
index 6faa240..5ecb00b 100644 (file)
@@ -11,27 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB: result property after deleting existing and non-existing record");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createObjectStore()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo', { keyPath: 'id', autoIncrement: true });");
     request = evalAndLog("request = objectStore.add({});");
     request.onsuccess = deleteRecord1;
@@ -59,5 +43,3 @@ function finalCheck()
     shouldBe("event.target.result", "undefined");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 4f75c2d..3688e38 100644 (file)
@@ -11,21 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB: iterating through index cursors with keys and key ranges");
 
-function test()
+indexedDBTest(prepareDatabase, setVersionComplete);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    debug("openSuccess():");
-    db = evalAndLog("db = event.target.result");
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStoreName = "People";
 
     objectStoreData = [
@@ -70,16 +60,6 @@ function openSuccess()
         { key: "237-23-7734", value: { name: "Ron", height: 73, weight: 180 } }
     ];
 
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createAndPopulateObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createAndPopulateObjectStore()
-{
-    deleteAllObjectStores(db);
-    trans = event.target.result;
-
     objectStore = evalAndLog("objectStore = db.createObjectStore(objectStoreName);");
 
     debug("First, add all our data to the object store.");
@@ -102,7 +82,6 @@ function createIndexes()
       evalAndLog("objectStore.createIndex(indexData[i].name, indexData[i].keyPath, indexData[i].options);");
     }
     shouldBe("objectStore.indexNames.length", "indexData.length");
-    trans.oncomplete = setVersionComplete;
 }
 
 function setVersionComplete()
@@ -1006,5 +985,3 @@ function testGroup30()
         }
     }
 }
-
-test();
\ No newline at end of file
index ff062c3..a38bfca 100644 (file)
@@ -11,31 +11,12 @@ if (this.importScripts) {
 
 description("Test IndexedDB's behavior deleting entry with no key");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('version 1')");
-    request.onsuccess = cleanDatabaseAndCreateObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabaseAndCreateObjectStore()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore('bar');");
     evalAndExpectException("objectStore.delete(null);", "IDBDatabaseException.DATA_ERR");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 287a800..a22c1ca 100644 (file)
@@ -11,33 +11,12 @@ if (this.importScripts) {
 
 description("Test IndexedDB's behavior adding inline and passed key simultaneously");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    debug("openSuccess():");
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('version 1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    debug("cleanDatabase():");
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore('baz', { keyPath: 'id' });");
     evalAndExpectException("objectStore.add({id: 5}, 5);", "IDBDatabaseException.DATA_ERR");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 46764ce..d964e89 100644 (file)
@@ -11,31 +11,12 @@ if (this.importScripts) {
 
 description("Test IndexedDB's behavior puting without key");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore('bar');");
     evalAndExpectException("objectStore.put({});", "IDBDatabaseException.DATA_ERR");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 072c54f..88e08c8 100644 (file)
@@ -11,28 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's event.target.result after add() and put()");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo', { autoIncrement: true });");
     request = evalAndLog("request = objectStore.add({});");
     request.onsuccess = postAdd;
@@ -70,5 +53,3 @@ function postPut3()
     shouldBe("event.target.result", "key2");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 93da208..05ccfae 100644 (file)
@@ -11,28 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's index cursors");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     autoIncrement = evalAndLog("autoIncrement = false;");
     objectStore = evalAndLog("objectStore = db.createObjectStore('a', { keyPath: 'id', autoIncrement: autoIncrement });");
     indexes = [
@@ -81,5 +64,3 @@ function setupAutoIncrement()
     request.onsuccess = postAdd;
     request.onerror = unexpectedErrorCallback;
 }
-
-test();
index b39cda4..8cd08bc 100644 (file)
@@ -11,35 +11,18 @@ if (this.importScripts) {
 
 description("Test IndexedDB: object identity");
 
-function test()
-{
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createObjectStoreAndIndex;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createObjectStoreAndIndex()
+indexedDBTest(prepareDatabase, testIdentitySomeMore);
+function prepareDatabase()
 {
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     transaction = evalAndLog("transaction = event.target.transaction;");
-    deleteAllObjectStores(db);
     objectStore1 = evalAndLog("objectStore1 = db.createObjectStore('foo');");
     objectStore2 = evalAndLog("objectStore2 = transaction.objectStore('foo');");
     shouldBeTrue("objectStore1 === objectStore2");
     index1 = evalAndLog("index1 = objectStore1.createIndex('bar', 'key');");
     index2 = evalAndLog("index2 = objectStore2.index('bar');");
     shouldBeTrue("index1 === index2");
-    evalAndLog("transaction.oncomplete = testIdentitySomeMore;");
 }
 
 function testIdentitySomeMore()
@@ -61,5 +44,3 @@ function testIdentitySomeMore()
 
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index d79a77f..64e0c5f 100644 (file)
@@ -11,28 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB adding an autoincremented key and retrieving it successfully");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = setupObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setupObjectStore()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     test = evalAndLog("test = {\n" +
 "        name: 'inline key; key generator',\n" +
 "        autoIncrement: true,\n" +
@@ -59,5 +42,3 @@ function getSuccess()
     shouldBe("event.target.result.id", "id");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 3f5a102..4f56a81 100644 (file)
@@ -11,28 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's objectStoreNames array");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     objectStoreName = "a";
     objectStore = evalAndLog("objectStore = db.createObjectStore(objectStoreName, { keyPath: 'id', autoIncrement: true });");
@@ -42,5 +25,3 @@ function cleanDatabase()
     shouldBe("db.objectStoreNames.item(0)", "objectStoreName");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index e4306bb..84f9c0e 100644 (file)
@@ -11,27 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's putting and getting values in an object store");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     testString = evalAndLog("testString = { key: 0, value: 'testString' };");
     testInt = evalAndLog("testInt = { key: 1, value: 1002 };");
@@ -103,5 +87,3 @@ function postGetIntAutoIncrement()
     shouldBe("event.target.result", "testInt.value");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 4a943be..bd51980 100644 (file)
@@ -11,32 +11,14 @@ if (this.importScripts) {
 
 description("Test IndexedDB's readonly transactions");
 
-function test()
+indexedDBTest(prepareDatabase, setVersionComplete);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     osName = "test store";
     objectStore = evalAndLog("objectStore = db.createObjectStore(osName, { autoIncrement: true });");
-    event.target.result.oncomplete = setVersionComplete;
 }
 
 function setVersionComplete()
@@ -53,5 +35,3 @@ function setVersionComplete()
     evalAndExpectException("db.transaction(osName).objectStore(osName).delete(key2);", "IDBDatabaseException.READ_ONLY_ERR");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index aafa6f3..03b8960 100644 (file)
@@ -11,32 +11,14 @@ if (this.importScripts) {
 
 description("Test IndexedDB's read/write transactions");
 
-function test()
+indexedDBTest(prepareDatabase, setVersionComplete);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     osName = "test store";
     objectStore = evalAndLog("objectStore = db.createObjectStore(osName, { autoIncrement: true });");
-    event.target.result.oncomplete = setVersionComplete;
 }
 
 function setVersionComplete()
@@ -109,5 +91,3 @@ function postDelete2()
     shouldBe("event.target.transaction.mode", "'readwrite'");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 496dda6..d3acc7d 100644 (file)
@@ -11,28 +11,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's creating and deleting indexes");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createAndDeleteIndex;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createAndDeleteIndex()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     objectStoreName = "test store";
     objectStore = evalAndLog("objectStore = db.createObjectStore(objectStoreName, { keyPath: 'foo' });");
@@ -50,5 +33,3 @@ function createAndDeleteIndex()
 
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index c9e6871..dfdf467 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test mutating an IndexedDB's objectstore from a cursor.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('mutating-cursor')
-db = event.target.result
-db.setVersion('1')
-setVersionSuccess():
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "mutating-cursor.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('store')
 objectStore.add(1, 1).onerror = unexpectedErrorCallback
 objectStore.add(2, 2).onerror = unexpectedErrorCallback
index 5141656..29bd88a 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB object store required arguments
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,10 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "objectStore-required-arguments.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('foo');
 PASS objectStore.put(); threw exception TypeError: Not enough arguments.
 PASS objectStore.add(); threw exception TypeError: Not enough arguments.
index 3c05de7..1c21c89 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's IDBObjectStore auto-increment feature.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,14 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('objectstore-autoincrement')
-openSuccess():
-db = event.target.result
-db.setVersion('new version')
-setVersionSuccess():
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "objectstore-autoincrement.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 createObjectStore():
 store = db.createObjectStore('StoreWithKeyPath', {keyPath: 'id', autoIncrement: true})
 db.createObjectStore('StoreWithAutoIncrement', {autoIncrement: true})
index c5096fc..f83eef1 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's webkitIDBObjectStore.clear().
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('objectstore-clear')
-db = event.target.result
-db.setVersion('new version')
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "objectstore-clear.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('storeName', null)
 store.createIndex('indexName', '')
 PASS store.indexNames.contains('indexName') is true
index 67c7657..c2a948c 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's IDBObjectStore.count().
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,14 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('objectstore-count')
-db = event.target.result
-db.setVersion('new version')
-
-preparing database
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "objectstore-count.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('storeName', null)
 adding 0 ... 99
 
index a2ebf4d..8ac30ed 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's objectStore.openCursor + the cursor it produces in depth.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,12 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('objectstore-cursor')
-db = event.target.result
-db.setVersion('new version')
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "objectstore-cursor.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('someObjectStore')
 
 Verify that specifying an invalid direction raises an exception:
index e11f101..f6c8bb1 100644 (file)
@@ -6,12 +6,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('objectstore-removeobjectstore')
-db = event.target.result
-db.setVersion('new version')
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "objectstore-removeobjectstore.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('storeName', null)
 store.createIndex('indexName', '')
 PASS store.indexNames.contains('indexName') is true
index 8dd259a..114c730 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test IndexedDB's openCursor.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('open-cursor')
-db = event.target.result
-db.setVersion('new version')
-setVersionSuccess():
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "open-cursor.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('test')
 objectStore.add('myValue', 'myKey')
 Opening cursor
index bcb674a..a6e1167 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test openCursor/openKeyCursor with raw IDBKeys.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,11 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open(name)
-openSuccess():
-db = event.target.result
-request = db.setVersion('1')
-Deleted all object stores.
+dbname = "opencursor-key.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore(objectStoreName);
 First, add all our data to the object store.
 request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key);
index e0c7b14..8cdbe48 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Checks that garbage collection doesn't reclaim objects with pending activity
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -7,13 +6,10 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
 dbname = "pending-activity.html"
-
-prepareDatabase():
 indexedDB.deleteDatabase(dbname)
 indexedDB.open(dbname)
-db = request.result
-PASS db.version is 1
-db.setVersion('1')
+
+prepareDatabase():
 store = db.createObjectStore('store')
 store.put(0, 0)
 
index 44c4174..7f2984f 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 [Worker] Checks that garbage collection doesn't reclaim objects with pending activity
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -8,13 +7,10 @@ Starting worker: resources/pending-activity.js
 [Worker] indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 [Worker] 
 [Worker] dbname = "pending-activity.js"
-[Worker] 
-[Worker] prepareDatabase():
 [Worker] indexedDB.deleteDatabase(dbname)
 [Worker] indexedDB.open(dbname)
-[Worker] db = request.result
-PASS [Worker] db.version is 1
-[Worker] db.setVersion('1')
+[Worker] 
+[Worker] prepareDatabase():
 [Worker] store = db.createObjectStore('store')
 [Worker] store.put(0, 0)
 [Worker] 
index 86abaf6..00222c5 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test for crbug.com/108071
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.deleteDatabase(DBNAME)
-indexedDB.open(DBNAME)
-db = event.target.result
-db.setVersion('new version')
-setVersionSuccess():
-trans = event.target.result
-PASS trans is non-null.
+dbname = "prefetch-bugfix-108071.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 objectStore = db.createObjectStore('store', {keyPath: 'id'})
 
 resetObjectStore():
index 65f76e1..148fe99 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Verify that queuing up several commands works (and they all fire).
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('queued-commands')
-db = event.target.result
-db.setVersion('new version')
-setVersionSuccess():
-trans = event.target.result
-PASS trans is non-null.
-Deleted all object stores.
+dbname = "queued-commands.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('storeName')
 store.createIndex('indexName', 'x')
 store.add({x: 'value', y: 'zzz'}, 'key')
index 672ebaf..68837a2 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Regression test for IDBRequest issue calling continue on a cursor then aborting.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,13 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-dbname = self.location.pathname
-indexedDB.deleteDatabase('dbname')
-request = indexedDB.open('dbname')
-db = request.result
-db.setVersion('1')
-
-onUpgrade:
+dbname = "request-continue-abort.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 db.createObjectStore('store')
 
 testCursor:
index b67c23d..ebd6a2a 100644 (file)
@@ -1,4 +1,3 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
 Test event propogation on IDBRequest.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -6,14 +5,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-indexedDB.open('request-event-propagation')
-db = event.target.result
-db.setVersion('new version')
-setVersionSuccess():
-trans = event.target.result
-PASS trans is non-null.
-trans.oncomplete = startTest
-Deleted all object stores.
+dbname = "request-event-propagation.html"
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
 store = db.createObjectStore('storeName', null)
 store.add({x: 'value', y: 'zzz'}, 'key')
 Verify that handler fires and that not preventing default will result in an abort
index 7039bc0..b8672e1 100644 (file)
@@ -5,34 +5,16 @@ if (this.importScripts) {
 
 description("Test IndexedDB's createObjectStore's various options");
 
-function test()
+indexedDBTest(prepareDatabase, setVersionComplete);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    request = evalAndLog("indexedDB.open('create-object-store-options')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('version 1')");
-    request.onsuccess = cleanDatabase;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function cleanDatabase()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
 
     evalAndLog("db.createObjectStore('a', {keyPath: 'a'})");
     evalAndLog("db.createObjectStore('b')");
 
     debug("db.createObjectStore('c', {autoIncrement: true});");
     db.createObjectStore('c', {autoIncrement: true});
-    event.target.result.oncomplete = setVersionComplete;
 }
 
 function setVersionComplete()
@@ -77,5 +59,3 @@ function checkB()
 
     finishJSTest();
 }
-
-test();
index 91d9a7a..b72c26b 100644 (file)
@@ -5,31 +5,10 @@ if (this.importScripts) {
 
 description("Test IndexedDB createObjectStore name argument is required");
 
-function test()
-{
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
     db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createAndPopulateObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createAndPopulateObjectStore()
-{
-    deleteAllObjectStores(db);
-
     shouldThrow("db.createObjectStore();");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 35d7c09..0b608a8 100644 (file)
@@ -5,32 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB createObjectStore null handling");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createAndPopulateObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createAndPopulateObjectStore()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
     objectStore = evalAndLog("db.createObjectStore(null);");
     shouldBeEqualToString("objectStore.name", "null");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 74ddbc4..37dfd3f 100644 (file)
@@ -5,33 +5,13 @@ if (this.importScripts) {
 
 description("Test IndexedDB cursor iterates correctly over values added during iteration.");
 
-test();
-
-function test()
-{
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('cursor-delete')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
+indexedDBTest(prepareDatabase, openCursor);
+function prepareDatabase()
 {
-    var db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = setVersionSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersionSuccess()
-{
-    trans = evalAndLog("trans = event.target.result");
+    db = event.target.result;
+    trans = evalAndLog("trans = event.target.transaction");
     shouldBeNonNull("trans");
     trans.onabort = unexpectedAbortCallback;
-    trans.oncomplete = openCursor;
-
-    deleteAllObjectStores(db);
 
     var objectStore = evalAndLog("objectStore = db.createObjectStore('test')");
     evalAndLog("objectStore.add(1, 1)");
index 6868a75..fa8660d 100644 (file)
@@ -27,38 +27,20 @@ var indexData = [
     { name: "weight", keyPath: "weight", options: { unique: false } }
 ];
 
-function test()
+indexedDBTest(prepareDatabase, onOpen);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    name = window.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    debug("openSuccess():");
-    db = evalAndLog("db = event.target.result");
-
+    db = event.target.result;
     objectStoreName = "People";
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createObjectStore;
-    request.onerror = unexpectedErrorCallback;
+    objectStore = evalAndLog("objectStore = db.createObjectStore(objectStoreName);");
+    createIndexes();
 }
 
-function createObjectStore(request)
+function onOpen()
 {
-    deleteAllObjectStores(db);
-    trans = evalAndLog("trans = request.result");
-    objectStore = evalAndLog("objectStore = db.createObjectStore(objectStoreName);");
-    createIndexes();
-    trans.oncomplete = function() {
-        evalAndLog("trans = db.transaction(objectStoreName, 'readwrite')");
-        evalAndLog("objectStore = trans.objectStore(objectStoreName)");
-        populateObjectStore();
-    };
+    evalAndLog("trans = db.transaction(objectStoreName, 'readwrite')");
+    evalAndLog("objectStore = trans.objectStore(objectStoreName)");
+    populateObjectStore();
 }
 
 function populateObjectStore()
@@ -402,5 +384,3 @@ function testDelete()
     request.onsuccess = deleteSecond;
     request.onerror = unexpectedErrorCallback;
 }
-
-test();
index bfec0eb..b7b4d06 100644 (file)
@@ -5,34 +5,14 @@ if (this.importScripts) {
 
 description("Test that continue() calls against cursors are validated by direction.");
 
-function test()
+indexedDBTest(prepareDatabase, testCursors);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    evalAndLog("dbname = self.location.pathname");
-    request = evalAndLog("indexedDB.deleteDatabase(dbname)");
-    request.onerror = unexpectedErrorCallback;
-    request.onblocked = unexpectedBlockedCallback;
-    request.onsuccess = function() {
-        evalAndLog("request = indexedDB.open(dbname)");
-        request.onerror = unexpectedErrorCallback;
-        request.onsuccess = function() {
-            evalAndLog("db = request.result");
-            request = evalAndLog("db.setVersion('1')");
-            request.onerror = unexpectedErrorCallback;
-            request.onblocked = unexpectedBlockedCallback;
-            request.onsuccess = function() {
-                trans = request.result;
-                trans.onabort = unexpectedAbortCallback;
-
-                evalAndLog("store = db.createObjectStore('store')");
-                for (i = 1; i <= 10; ++i) {
-                    evalAndLog("store.put(" + i + "," + i + ")");
-                }
-
-                trans.oncomplete = testCursors;
-            };
-        };
-    };
+    db = event.target.result;
+    evalAndLog("store = db.createObjectStore('store')");
+    for (i = 1; i <= 10; ++i) {
+        evalAndLog("store.put(" + i + "," + i + ")");
+    }
 }
 
 function testCursors()
@@ -71,5 +51,3 @@ function testReverseCursor()
         finishJSTest();
     };
 }
-
-test();
index adfe8c7..e4d0cfa 100644 (file)
@@ -11,36 +11,14 @@ var date = new Date();
 // if we're in a pre-fetched state or not
 self.testLength = 25;
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    openDatabase();
-}
-
-function openDatabase()
-{
-    result = evalAndLog("indexedDB.open('cursor-continue')");
-    result.onsuccess = setVersion;
-    result.onerror = unexpectedErrorCallback;
-}
-
-function setVersion()
-{
-    self.db = evalAndLog("db = event.target.result");
-
-    result = evalAndLog("db.setVersion('new version')");
-    result.onsuccess = deleteExisting;
-    result.onerror = unexpectedErrorCallback;
-}
-
-function deleteExisting()
-{
-    self.trans = evalAndLog("trans = event.target.result");
+    db = event.target.result;
+    self.trans = evalAndLog("trans = event.target.transaction");
     shouldBeNonNull("trans");
     trans.onabort = unexpectedAbortCallback;
 
-    deleteAllObjectStores(db);
-
     self.objectStore = evalAndLog("db.createObjectStore('someObjectStore')");
     self.indexObject = evalAndLog("objectStore.createIndex('someIndex', 'x')");
     self.nextToAdd = 0;
@@ -176,5 +154,3 @@ function modifyContinueOrderCallback()
         finishJSTest();
     }
 }
-
-test();
index 5f5ae35..c3750fe 100644 (file)
@@ -29,35 +29,11 @@ self.testData = [
     "the BIGGEST string"
 ];
 
-function test()
+indexedDBTest(prepareDatabase, onTransactionComplete);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    openDatabase();
-}
-
-function openDatabase()
-{
-    result = evalAndLog("indexedDB.open('cursor-continue')");
-    result.onsuccess = setVersion;
-    result.onerror = unexpectedErrorCallback;
-}
-
-function setVersion()
-{
-    self.db = evalAndLog("db = event.target.result");
-
-    result = evalAndLog("db.setVersion('new version')");
-    result.onsuccess = deleteExisting;
-    result.onerror = unexpectedErrorCallback;
-}
-
-function deleteExisting()
-{
-    self.trans = evalAndLog("trans = event.target.result");
-    shouldBeNonNull("trans");
-    trans.onabort = unexpectedAbortCallback;
-
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     self.objectStore = evalAndLog("db.createObjectStore('someObjectStore')");
     self.indexObject = evalAndLog("objectStore.createIndex('someIndex', 'x')");
@@ -252,7 +228,6 @@ function descendingErrorTestEqual()
             shouldBe("event.target.result.primaryKey", "15");
             evalAndLog("cursor = event.target.result");
             evalAndExpectException("event.target.result.continue('A bit2')", "IDBDatabaseException.DATA_ERR", "'DataError'");
-            self.trans.oncomplete = onTransactionComplete;
             return;
         } else {
            testFailed("Illegal stage.");
@@ -266,5 +241,3 @@ function onTransactionComplete()
     evalAndExpectException("cursor.continue()", "IDBDatabaseException.TRANSACTION_INACTIVE_ERR", "'TransactionInactiveError'");
     finishJSTest();
 }
-
-test();
index 425ff77..26c48a1 100644 (file)
@@ -5,34 +5,14 @@ if (this.importScripts) {
 
 description("Test IndexedDB's openCursor.");
 
-test();
-
-function test()
-{
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('cursor-delete')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    var db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = setVersionSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersionSuccess()
+indexedDBTest(prepareDatabase, openCursor);
+function prepareDatabase()
 {
+    db = event.target.result;
     debug("setVersionSuccess():");
     self.trans = evalAndLog("trans = event.target.result");
     shouldBeNonNull("trans");
     trans.onabort = unexpectedAbortCallback;
-    trans.oncomplete = openCursor;
-
-    deleteAllObjectStores(db);
 
     var objectStore = evalAndLog("objectStore = db.createObjectStore('test')");
     evalAndLog("objectStore.add('myValue1', 'myKey1')");
@@ -102,4 +82,4 @@ function verifyObjectDeleted()
 {
     shouldBe("event.target.result", "undefined");
     finishJSTest();
-}
\ No newline at end of file
+}
index 5f24882..392d514 100644 (file)
@@ -5,41 +5,20 @@ if (this.importScripts) {
 
 description("Test consistency of IndexedDB's cursor objects.");
 
-test();
-
-function test()
-{
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('cursor-inconsistency')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    var db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = setVersionSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersionSuccess()
+indexedDBTest(prepareDatabase, openBasicCursor);
+function prepareDatabase()
 {
+    db = event.target.result;
     debug("setVersionSuccess():");
-    self.trans = evalAndLog("trans = event.target.result");
+    self.trans = evalAndLog("trans = event.target.transaction");
     shouldBeNonNull("trans");
     trans.onabort = unexpectedAbortCallback;
-    trans.oncomplete = openBasicCursor;
-
-    deleteAllObjectStores(db);
 
     var objectStore = evalAndLog("objectStore = db.createObjectStore('basicStore')");
     evalAndLog("objectStore.add('someValue1', 'someKey1').onerror = unexpectedErrorCallback");
     evalAndLog("objectStore.add('someValue2', 'someKey2').onerror = unexpectedErrorCallback");
     evalAndLog("objectStore.add('someValue3', 'someKey3').onerror = unexpectedErrorCallback");
     evalAndLog("objectStore.add('someValue4', 'someKey4').onerror = unexpectedErrorCallback");
-
 }
 
 function openBasicCursor()
@@ -82,4 +61,4 @@ function transactionComplete()
 {
     debug("transactionComplete()");
     finishJSTest();
-}
\ No newline at end of file
+}
index d1ae969..4332b94 100644 (file)
@@ -5,35 +5,15 @@ if (this.importScripts) {
 
 description("Test IndexedDB's openCursor.");
 
-test();
-
-function test()
-{
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('cursor-index-delete')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    var db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = setVersionSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersionSuccess()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    debug("setVersionSuccess():");
-    self.trans = evalAndLog("trans = event.target.result");
+    db = event.target.result;
+    self.trans = evalAndLog("trans = event.target.transaction");
     shouldBeNonNull("trans");
     trans.onabort = unexpectedAbortCallback;
     trans.oncomplete = openCursor;
 
-    deleteAllObjectStores(db);
-
     objectStore = evalAndLog("objectStore = db.createObjectStore('test')");
     evalAndLog("objectStore.createIndex('testIndex', 'x')");
 
@@ -106,4 +86,4 @@ function verifyObjectDeleted()
 {
     shouldBe("event.target.result", "undefined");
     finishJSTest();
-}
\ No newline at end of file
+}
index edce580..fde159c 100644 (file)
@@ -5,31 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB keys ordering and readback from cursors.");
 
-function test()
-{
-    removeVendorPrefixes();
-
-    prepareDatabase();
-}
-
+indexedDBTest(prepareDatabase, populateStore);
 function prepareDatabase()
 {
-    debug("");
-    deleteRequest = evalAndLog("indexedDB.deleteDatabase('cursor-key-order')");
-    deleteRequest.onerror = unexpectedErrorCallback;
-    deleteRequest.onsuccess = function () {
-        evalAndLog("openreq = indexedDB.open('cursor-key-order')");
-        openreq.onerror = unexpectedErrorCallback;
-        openreq.onsuccess = function() {
-            evalAndLog("db = openreq.result");
-            evalAndLog("verreq = db.setVersion('1')");
-            verreq.onerror = unexpectedErrorCallback;
-            verreq.onsuccess = function() {
-                evalAndLog("db.createObjectStore('store')");
-                verreq.result.oncomplete = populateStore;
-            };
-        };
-    };
+    db = event.target.result;
+    evalAndLog("db.createObjectStore('store')");
 }
 
 self.keys = [
@@ -225,5 +205,3 @@ function testKeyCompare()
         }
     }
 }
-
-test();
\ No newline at end of file
index 2b0833b..82dd292 100644 (file)
@@ -5,31 +5,12 @@ if (this.importScripts) {
 
 description("Test IndexedDB behavior when iterating backwards with and without NO_DUPLICATE");
 
-function test()
-{
-    removeVendorPrefixes();
-
-    prepareDatabase();
-}
-
+indexedDBTest(prepareDatabase, populateStore);
 function prepareDatabase()
 {
-    debug("");
-    evalAndLog("openreq = indexedDB.open('cursor-prev-no-duplicate')");
-    openreq.onerror = unexpectedErrorCallback;
-    openreq.onsuccess = function()
-    {
-        evalAndLog("db = openreq.result");
-        evalAndLog("verreq = db.setVersion('1')");
-        verreq.onerror = unexpectedErrorCallback;
-        verreq.onsuccess = function()
-        {
-            deleteAllObjectStores(db);
-            store = evalAndLog("store = db.createObjectStore('store')");
-            evalAndLog("store.createIndex('index', 'sorted')");
-            verreq.result.oncomplete = populateStore;
-        };
-    };
+    db = event.target.result;
+    store = evalAndLog("store = db.createObjectStore('store')");
+    evalAndLog("store.createIndex('index', 'sorted')");
 }
 
 function populateStore()
@@ -232,5 +213,3 @@ function runTest(openCursor, exp)
 
     return result;
 }
-
-test();
\ No newline at end of file
index 0119ded..cbc5732 100644 (file)
@@ -5,32 +5,12 @@ if (this.importScripts) {
 
 description("Test IndexedDB primary key ordering and readback from cursors.");
 
-function test()
-{
-    removeVendorPrefixes();
-
-    prepareDatabase();
-}
-
+indexedDBTest(prepareDatabase, populateStore);
 function prepareDatabase()
 {
-    debug("");
-    deleteRequest = evalAndLog("indexedDB.deleteDatabase('cursor-primary-key-order')");
-    deleteRequest.onerror = unexpectedErrorCallback;
-    deleteRequest.onsuccess = function () {
-        evalAndLog("openRequest = indexedDB.open('cursor-primary-key-order')");
-        openRequest.onerror = unexpectedErrorCallback;
-        openRequest.onsuccess = function() {
-            evalAndLog("db = openRequest.result");
-            evalAndLog("versionChangeRequest = db.setVersion('1')");
-            versionChangeRequest.onerror = unexpectedErrorCallback;
-            versionChangeRequest.onsuccess = function() {
-                evalAndLog("store = db.createObjectStore('store')");
-                evalAndLog("index = store.createIndex('index', 'indexKey')");
-                versionChangeRequest.result.oncomplete = populateStore;
-            };
-        };
-    };
+    db = event.target.result;
+    evalAndLog("store = db.createObjectStore('store')");
+    evalAndLog("index = store.createIndex('index', 'indexKey')");
 }
 
 self.keys = [
@@ -97,5 +77,3 @@ function checkStore()
         }
     };
 }
-
-test();
\ No newline at end of file
index 3c2d513..a9506b9 100644 (file)
@@ -5,29 +5,12 @@ if (this.importScripts) {
 
 description("Test IndexedDB keys ordering and readback from cursors.");
 
-function test()
-{
-    removeVendorPrefixes();
-
-    prepareDatabase();
-}
-
+indexedDBTest(prepareDatabase, populateStore);
 function prepareDatabase()
 {
-    debug("");
-    evalAndLog("openreq = indexedDB.open('cursor-reverse-bug')");
-    openreq.onerror = unexpectedErrorCallback;
-    openreq.onsuccess = function() {
-        evalAndLog("db = openreq.result");
-        evalAndLog("verreq = db.setVersion('1')");
-        verreq.onerror = unexpectedErrorCallback;
-        verreq.onsuccess = function() {
-            deleteAllObjectStores(db);
-            store = evalAndLog("store = db.createObjectStore('store')");
-            evalAndLog("store.createIndex('index', '')");
-            verreq.result.oncomplete = populateStore;
-        };
-    };
+    db = event.target.result;
+    store = evalAndLog("store = db.createObjectStore('store')");
+    evalAndLog("store.createIndex('index', '')");
 }
 
 function populateStore()
@@ -97,5 +80,3 @@ function testCursor()
     indexKeyReq = evalAndLog("indexKeyReq = index.openKeyCursor(IDBKeyRange.upperBound(test.upperBound, test.open), 'prev')");
     indexKeyReq.onsuccess = testFunction;
 }
-
-test();
\ No newline at end of file
index 6360074..e653052 100644 (file)
@@ -10,34 +10,14 @@ var names = ['Alpha', 'Bravo', 'Charlie', 'Delta', 'Echo', 'Foxtrot', 'Golf',
              'Oscar', 'Papa', 'Quebec', 'Romeo', 'Sierra', 'Tango', 'Uniform',
              'Victor', 'Whiskey', 'X-ray', 'Yankee', 'Zulu'];
 
-test();
-
-function test()
-{
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('cursor-skip-deleted')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    var db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = setVersionSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersionSuccess()
+indexedDBTest(prepareDatabase, basicCursorTest);
+function prepareDatabase()
 {
+    db = event.target.result;
     debug("setVersionSuccess():");
-    self.trans = evalAndLog("trans = event.target.result");
+    self.trans = evalAndLog("trans = event.target.transaction");
     shouldBeNonNull("trans");
     trans.onabort = unexpectedAbortCallback;
-    trans.oncomplete = basicCursorTest;
-
-    deleteAllObjectStores(db);
 
     var objectStore = evalAndLog("objectStore = db.createObjectStore('store', {keyPath: 'id'})");
     evalAndLog("objectStore.createIndex('nameIndex', 'name')");
@@ -190,4 +170,4 @@ function transactionComplete()
 {
     debug("transactionComplete():");
     finishJSTest();
-}
\ No newline at end of file
+}
index 17b51d9..2ce30a7 100644 (file)
@@ -5,29 +5,10 @@ if (this.importScripts) {
 
 description("Test IndexedDB cursor.update required arguments");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = testGroup1;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function testGroup1()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
     objectStore = evalAndLog("db.createObjectStore('autoIncrement', { autoIncrement: true });");
 
     request = evalAndLog("request = objectStore.openCursor();");
@@ -68,5 +49,3 @@ function testGroup3()
         finishJSTest();
     }
 }
-
-test();
\ No newline at end of file
index 789e62d..ab5f41c 100644 (file)
@@ -5,29 +5,12 @@ if (this.importScripts) {
 
 description("Test IndexedDB's cursor update.");
 
-test();
-
-function test()
-{
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('cursor-update')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    var db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = setVersionSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersionSuccess()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
+    db = event.target.result;
     debug("setVersionSuccess():");
-    self.trans = evalAndLog("trans = event.target.result");
+    self.trans = evalAndLog("trans = event.target.transaction");
     shouldBeNonNull("trans");
     trans.onabort = unexpectedAbortCallback;
     trans.oncomplete = openBasicCursor;
@@ -232,4 +215,4 @@ function transactionComplete()
 {
     debug("transactionComplete()");
     finishJSTest();
-}
\ No newline at end of file
+}
index 91efe87..dd6866a 100644 (file)
@@ -5,25 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's cursor value property.");
 
-removeVendorPrefixes();
-openDatabase();
-
-function openDatabase()
+indexedDBTest(prepareDatabase, testCursor);
+function prepareDatabase()
 {
-    evalAndLog("request = indexedDB.open('cursor-value')");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function() {
-        evalAndLog("db = request.result");
-        evalAndLog("request = db.setVersion('new version')");
-        request.onerror = unexpectedErrorCallback;
-        request.onsuccess = function() {
-            evalAndLog("transaction = request.result");
-            transaction.onabort = unexpectedAbortCallback;
-            deleteAllObjectStores(db);
-            evalAndLog("db.createObjectStore('store')");
-            transaction.oncomplete = testCursor;
-        };
-    };
+    db = event.target.result;
+    evalAndLog("db.createObjectStore('store')");
 }
 
 function testCursor()
@@ -121,4 +107,4 @@ function ensureModificationsNotPersisted()
         shouldBe("cursor.value.foo", "undefined");
     };
     transaction.oncomplete = finishJSTest;
- }
\ No newline at end of file
+ }
index 2a08bf1..9d7e959 100644 (file)
@@ -5,33 +5,14 @@ if (this.importScripts) {
 
 description("Test that data inserted into IndexedDB does not get corrupted on disk.");
 
-function test()
-{
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('data-corruption')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    debug("openSuccess():");
-    self.db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = setVersionSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersionSuccess()
+indexedDBTest(prepareDatabase, addData);
+function prepareDatabase()
 {
+    db = event.target.result;
     debug("setVersionSuccess():");
-    self.trans = evalAndLog("trans = event.target.result");
+    self.trans = evalAndLog("trans = event.target.transaction");
     shouldBeNonNull("trans");
     trans.onabort = unexpectedAbortCallback;
-    trans.oncomplete = addData;
-
-    deleteAllObjectStores(db);
 
     evalAndLog("db.createObjectStore('storeName')");
 }
@@ -61,5 +42,3 @@ function doCheck()
     shouldBe("event.target.result.x.toString()", "testDate.toString()");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index e1ac108..7737b39 100644 (file)
@@ -5,37 +5,12 @@ if (this.importScripts) {
 
 description("Test IndexedDB IDBDatabase internal delete pending flag");
 
-function test()
+indexedDBTest(prepareDatabase, testDatabaseDelete, 5);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    evalAndLog("dbname = self.location.pathname");
-    request = evalAndLog("indexedDB.deleteDatabase(dbname)");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = openConnection;
-}
-
-function openConnection()
-{
-    debug("");
-    debug("Open a connection and set a sentinel version:");
-    evalAndLog("version = '10'");
-    evalAndLog("request = indexedDB.open(dbname)");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function() {
-        evalAndLog("connection = request.result");
-        evalAndLog("request = connection.setVersion(version)");
-        request.onerror = unexpectedErrorCallback;
-        request.onblocked = unexpectedBlockedCallback;
-        request.onsuccess = function() {
-            trans = request.result;
-            trans.onabort = unexpectedAbortCallback;
-            shouldBe("connection.version", "version");
-            evalAndLog("connection.createObjectStore('store')");
-            shouldBe("connection.objectStoreNames.length", "1");
-            trans.oncomplete = testDatabaseDelete;
-        };
-    };
+    connection = event.target.result;
+    evalAndLog("connection.createObjectStore('store')");
+    shouldBe("connection.objectStoreNames.length", "1");
 }
 
 function testDatabaseDelete()
@@ -86,5 +61,3 @@ function testDatabaseDelete()
         finishJSTest();
     };
 }
-
-test();
index a2e145e..38b225f 100644 (file)
@@ -5,29 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's IDBObjectStore.delete(IDBKeyRange) method.");
 
-function test()
+indexedDBTest(prepareDatabase, runTests);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    evalAndLog("request = indexedDB.deleteDatabase('delete-range')");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function () {
-        evalAndLog("request = indexedDB.open('delete-range')");
-        request.onerror = unexpectedErrorCallback;
-        request.onsuccess = function () {
-            evalAndLog("db = request.result");
-            evalAndLog("request = db.setVersion('1')");
-            request.onerror = unexpectedErrorCallback;
-            request.onsuccess = function () {
-                evalAndLog("trans = request.result");
-                trans.onabort = unexpectedAbortCallback;
-
-                evalAndLog("db.createObjectStore('store')");
-
-                trans.oncomplete = runTests;
-            };
-        };
-    }
+    db = event.target.result;
+    evalAndLog("db.createObjectStore('store')");
 }
 
 function checkKeys(expected, callback)
@@ -86,5 +68,3 @@ function runTests()
     }
     nextTest();
 }
-
-test();
\ No newline at end of file
index 6734fee..b48c594 100644 (file)
@@ -5,31 +5,10 @@ if (this.importScripts) {
 
 description("Test IndexedDB deleteIndex method");
 
-function test()
+indexedDBTest(prepareDatabase, postTwiddling);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('deleteIndex')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = twiddleIndexes;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function twiddleIndexes()
-{
-    transaction = evalAndLog("transaction = event.target.result;");
-    transaction.onerror = unexpectedErrorCallback;
-    transaction.onabort = unexpectedAbortCallback;
-    transaction.oncomplete = postTwiddling;
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo');");
     evalAndExpectException("objectStore.deleteIndex('first')", "DOMException.NOT_FOUND_ERR", "'NotFoundError'");
     shouldThrow("objectStore.deleteIndex()"); // TypeError: not enough arguments.
@@ -46,5 +25,3 @@ function postTwiddling()
     evalAndExpectException("objectStore.deleteIndex('second')", "IDBDatabaseException.TRANSACTION_INACTIVE_ERR", "'TransactionInactiveError'");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 0367bbf..12387e9 100644 (file)
@@ -5,31 +5,10 @@ if (this.importScripts) {
 
 description("Test IndexedDB deleteObjectStore required argument");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createAndPopulateObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createAndPopulateObjectStore()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
     shouldThrow("db.deleteObjectStore();");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index baa6317..0b2e497 100644 (file)
@@ -5,32 +5,12 @@ if (this.importScripts) {
 
 description("Test IndexedDB deleteObjectStore required argument");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createAndPopulateObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createAndPopulateObjectStore()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
 
     evalAndLog("db.createObjectStore('null');");
     evalAndLog("db.deleteObjectStore(null);");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 84e5d62..72eefe5 100644 (file)
@@ -5,80 +5,60 @@ if (this.importScripts) {
 
 description("Test that IndexedDB objects that have been deleted throw exceptions");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    evalAndLog("dbname = self.location.pathname");
-    evalAndLog("request = indexedDB.deleteDatabase(dbname)");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = openDatabase;
-}
+    trans = event.target.transaction;
+    connection = event.target.result;
 
-function openDatabase()
-{
     debug("");
-    debug("openDatabase():");
-    evalAndLog("request = indexedDB.open(dbname)");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function() {
-        evalAndLog("connection = request.result");
-        evalAndLog("request = connection.setVersion('1')");
-        request.onerror = unexpectedErrorCallback;
-        request.onsuccess = function() {
-            trans = request.result;
+    evalAndLog("deletedStore = connection.createObjectStore('deletedStore')");
+    evalAndLog("store = connection.createObjectStore('store')");
+    evalAndLog("deletedIndex = store.createIndex('deletedIndex', 'path')");
 
-            debug("");
-            evalAndLog("deletedStore = connection.createObjectStore('deletedStore')");
-            evalAndLog("store = connection.createObjectStore('store')");
-            evalAndLog("deletedIndex = store.createIndex('deletedIndex', 'path')");
-
-            debug("");
-            evalAndLog("connection.deleteObjectStore('deletedStore')");
-            evalAndLog("store.deleteIndex('deletedIndex')");
+    debug("");
+    evalAndLog("connection.deleteObjectStore('deletedStore')");
+    evalAndLog("store.deleteIndex('deletedIndex')");
 
-            debug("");
-            evalAndExpectException("deletedStore.put(0, 0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.add(0, 0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.delete(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.delete(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.get(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.get(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.clear()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.openCursor()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.openCursor(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.openCursor(0, 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.openCursor(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.openCursor(IDBKeyRange.only(0), 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.createIndex('name', 'path')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.index('name')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.deleteIndex('name')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.count()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.count(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedStore.count(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    debug("");
+    evalAndExpectException("deletedStore.put(0, 0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.add(0, 0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.delete(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.delete(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.get(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.get(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.clear()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.openCursor()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.openCursor(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.openCursor(0, 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.openCursor(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.openCursor(IDBKeyRange.only(0), 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.createIndex('name', 'path')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.index('name')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.deleteIndex('name')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.count()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.count(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedStore.count(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
 
-            debug("");
-            evalAndExpectException("deletedIndex.openCursor()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.openCursor(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.openCursor(0, 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.openCursor(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.openCursor(IDBKeyRange.only(0), 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.openKeyCursor()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.openKeyCursor(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.openKeyCursor(0, 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.openKeyCursor(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.openKeyCursor(IDBKeyRange.only(0), 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.get(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.get(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.getKey(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.getKey(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.count()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.count(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
-            evalAndExpectException("deletedIndex.count(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    debug("");
+    evalAndExpectException("deletedIndex.openCursor()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.openCursor(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.openCursor(0, 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.openCursor(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.openCursor(IDBKeyRange.only(0), 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.openKeyCursor()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.openKeyCursor(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.openKeyCursor(0, 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.openKeyCursor(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.openKeyCursor(IDBKeyRange.only(0), 'next')", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.get(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.get(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.getKey(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.getKey(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.count()", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.count(0)", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
+    evalAndExpectException("deletedIndex.count(IDBKeyRange.only(0))", "DOMException.INVALID_STATE_ERR", "'InvalidStateError'");
 
-            trans.onabort = unexpectedAbortCallback;
-            trans.oncomplete = finishJSTest;
-        };
-    };
+    trans.onabort = unexpectedAbortCallback;
+    trans.oncomplete = finishJSTest;
 }
-
-test();
index d8b762c..a7d8b09 100644 (file)
@@ -5,33 +5,14 @@ if (this.importScripts) {
 
 description("Verify that a transaction with an error aborts unless preventDefault() is called.");
 
-function test()
-{
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('error-causes-abort-by-default')");
-    request.onsuccess = setVersion;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersion()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = deleteExisting;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function deleteExisting()
+indexedDBTest(prepareDatabase, addData);
+function prepareDatabase()
 {
+    db = event.target.result;
     debug("setVersionSuccess():");
-    self.trans = evalAndLog("trans = event.target.result");
+    self.trans = evalAndLog("trans = event.target.transaction");
     shouldBeNonNull("trans");
     trans.onabort = unexpectedAbortCallback;
-    evalAndLog("trans.oncomplete = addData");
-
-    deleteAllObjectStores(db);
-
     evalAndLog("db.createObjectStore('storeName', null)");
 }
 
@@ -97,5 +78,3 @@ function transactionAborted2()
     testPassed("Transaction aborted");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 578c3cd..3796643 100644 (file)
@@ -5,33 +5,11 @@ if (this.importScripts) {
 
 description("Test exceptions in IDBRequest handlers cause aborts.");
 
-function test()
+indexedDBTest(prepareDatabase, startTest);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('exception-in-event-aborts')");
-    request.onsuccess = setVersion;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersion()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = deleteExisting;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function deleteExisting()
-{
-    debug("setVersionSuccess():");
-    self.trans = evalAndLog("trans = event.target.result");
-    shouldBeNonNull("trans");
-    trans.onabort = unexpectedAbortCallback;
-    evalAndLog("trans.oncomplete = startTest");
-
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     store = evalAndLog("store = db.createObjectStore('storeName', null)");
     request = evalAndLog("store.add({x: 'value', y: 'zzz'}, 'key')");
     request.onerror = unexpectedErrorCallback;
@@ -117,5 +95,3 @@ function transactionCompleted2()
     debug("");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 810f530..a1cf57f 100644 (file)
@@ -5,36 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's IDBObjectStore.get(IDBKeyRange) method.");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    openDatabase();
-}
-
-function openDatabase()
-{
-    result = evalAndLog("indexedDB.open('cursor-continue')");
-    result.onsuccess = setVersion;
-    result.onerror = unexpectedErrorCallback;
-}
-
-function setVersion()
-{
-    self.db = evalAndLog("db = event.target.result");
-
-    result = evalAndLog("db.setVersion('new version')");
-    result.onsuccess = deleteExisting;
-    result.onerror = unexpectedErrorCallback;
-}
-
-function deleteExisting()
-{
-    self.trans = evalAndLog("trans = event.target.result");
-    shouldBeNonNull("trans");
-    trans.onabort = unexpectedAbortCallback;
-
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     self.testLength = 10;
     self.objectStore = evalAndLog("db.createObjectStore('someObjectStore')");
     self.index = evalAndLog("objectStore.createIndex('someIndex', 'x')");
@@ -178,5 +153,3 @@ function getNullTest(store, method, resultPath, finish)
     evalAndExpectException(store + "." + method + "(null)", "IDBDatabaseException.DATA_ERR", "'DataError'");
     evalAndLog(finish);
 }
-
-test();
index a4961f6..f9bfd44 100644 (file)
@@ -5,34 +5,12 @@ if (this.importScripts) {
 
 description("Test the basics of IndexedDB's webkitIDBIndex.");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase(evt)
 {
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('index-basics')");
-    request.onsuccess = setVersion;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersion(evt)
-{
-    event = evt;
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = deleteExisting;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function deleteExisting(evt)
-{
-    event = evt;
-    debug("setVersionSuccess():");
-    self.trans = evalAndLog("trans = event.target.result");
-    shouldBeNonNull("trans");
-    trans.onabort = unexpectedAbortCallback;
-
-    deleteAllObjectStores(db);
-
+    preamble(evt);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     self.store = evalAndLog("db.createObjectStore('storeName', null)");
     self.indexObject = evalAndLog("store.createIndex('indexName', 'x')");
     self.indexObject2 = evalAndLog("store.createIndex('indexName2', 'y', {unique: false})");
@@ -344,6 +322,3 @@ function index3Count(evt)
 
     finishJSTest();
 }
-
-var jsTestIsAsync = true;
-test();
index 4d4cd40..74981e8 100644 (file)
@@ -5,28 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's IDBIndex.count().");
 
-function test()
-{
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('index-count')");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function() {
-        db = evalAndLog("db = event.target.result");
-        request = evalAndLog("db.setVersion('new version')");
-        request.onerror = unexpectedErrorCallback;
-        request.onsuccess = prepareDatabase;
-    };
-}
-
+indexedDBTest(prepareDatabase, verifyCount);
 function prepareDatabase()
 {
-    debug("");
-    debug("preparing database");
-    self.trans = evalAndLog("trans = event.target.result");
-    shouldBeNonNull("trans");
-
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     store = evalAndLog("store = db.createObjectStore('storeName', null)");
 
     self.index = evalAndLog("store.createIndex('indexName', '')");
@@ -37,7 +20,6 @@ function prepareDatabase()
         request = store.add(i, i);
         request.onerror = unexpectedErrorCallback;
     }
-    trans.oncomplete = verifyCount;
 }
 
 function verifyCount()
@@ -150,5 +132,3 @@ function verifyCountWithKey()
 
     nextTest();
 }
-
-test();
\ No newline at end of file
index f005401..20ae230 100644 (file)
@@ -18,29 +18,11 @@ self.testData = [
     "the BIGEST string"
 ];
 
-function openDatabase()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    result = evalAndLog("indexedDB.open('index-cursor')");
-    result.onsuccess = setVersion;
-    result.onerror = unexpectedErrorCallback;
-}
-
-function setVersion()
-{
-    self.db = evalAndLog("db = event.target.result");
-
-    result = evalAndLog("db.setVersion('new version')");
-    result.onsuccess = deleteExisting;
-    result.onerror = unexpectedErrorCallback;
-}
-
-function deleteExisting()
-{
-    self.trans = evalAndLog("trans = event.target.result");
-    shouldBeNonNull("trans");
-    trans.onabort = unexpectedAbortCallback;
-
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     self.objectStore = evalAndLog("db.createObjectStore('someObjectStore')");
     self.indexObject = evalAndLog("objectStore.createIndex('someIndex', 'x')");
@@ -245,6 +227,3 @@ function testNullKeyRange()
     request.onsuccess = cursorIteration;
     request.onerror = unexpectedErrorCallback;
 }
-
-removeVendorPrefixes();
-openDatabase(); // The first step.
index c888d84..5167b28 100644 (file)
@@ -5,34 +5,13 @@ if (this.importScripts) {
 
 description("Test the use of identical keypaths between objectstores and indexes");
 
-function test()
+indexedDBTest(prepareDatabase, storeCollidedStoreIndexData);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('store-index-collision')");
-    request.onsuccess = testCollideStoreIndexSetup;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function testCollideStoreIndexSetup(evt)
-{
-    event = evt;
-    evalAndLog("db = event.target.result");
-    request = evalAndLog("db.setVersion('1')");
-    request.onsuccess = testCollideStoreIndex;
-    request.onerror = unexpectedErrorCallback;
-    request.onblocked = unexpectedBlockedCallback;
-}
-
-function testCollideStoreIndex(event)
-{
-    deleteAllObjectStores(db);
-    var trans = event.target.result;
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     evalAndLog("store = db.createObjectStore('collideWithIndex', {keyPath: 'foo'})");
     evalAndLog("index = store.createIndex('foo', 'foo')");
-
-    trans.oncomplete = storeCollidedStoreIndexData;
-    trans.onerror = unexpectedErrorCallback;
-    trans.onabort = unexpectedAbortCallback;
 }
 
 function resultShouldBe(v) {
@@ -101,6 +80,3 @@ function storeCollidedAutoIncrementData()
 function testCollideIndexIndexSetup() {
     finishJSTest();
 }
-
-var jsTestIsAsync = true;
-test();
index 67af48e..2372b7d 100644 (file)
@@ -5,34 +5,14 @@ if (this.importScripts) {
 
 description("Test IndexedDB index .get() required argument");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createAndPopulateObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createAndPopulateObjectStore()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo', { keyPath: 'id', autoIncrement: true });");
     index = evalAndLog("index = objectStore.createIndex('first', 'first');");
     shouldThrow("index.get();");
     shouldThrow("index.getKey();");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 3a2e361..28502b2 100644 (file)
@@ -5,37 +5,14 @@ if (this.importScripts) {
 
 description("Test features of IndexedDB's unique indices.");
 
-function test()
+indexedDBTest(prepareDatabase, setVersionCompleted);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('index-unique')");
-    request.onsuccess = setVersion;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersion()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = deleteExisting;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function deleteExisting()
-{
-    debug("deleteExisting():");
-    var trans = evalAndLog("trans = event.target.result");
-    shouldBeNonNull("trans");
-    trans.onabort = unexpectedAbortCallback;
-    trans.oncomplete = setVersionCompleted;
-
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     self.store = evalAndLog("db.createObjectStore('store')");
     self.indexObject = evalAndLog("store.createIndex('index', 'x', {unique: true})");
-
-    // Let setVersion transaction complete.
 }
 
 function setVersionCompleted()
@@ -133,5 +110,3 @@ function finalAddSuccess() {
     request.onerror = unexpectedErrorCallback;
     request.onsuccess = finishJSTest;
 }
-
-test();
\ No newline at end of file
index d36a098..96007ae 100644 (file)
@@ -5,29 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB invalid keys");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = testGroup1;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function testGroup1()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("db.createObjectStore('foo');");
     testInvalidKeys();
 }
@@ -59,5 +41,3 @@ function testInvalidKeys()
 
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 7d1f426..62dfce2 100644 (file)
@@ -5,29 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB key comparison");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = addKey1;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function addKey1()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("db.createObjectStore('foo');");
     request = evalAndLog("request = objectStore.add([], Infinity);");
     request.onsuccess = addKey2;
@@ -80,5 +62,3 @@ function openACursor()
         }
     }
 }
-
-test();
\ No newline at end of file
index 9e7cafb..6e23162 100644 (file)
@@ -5,29 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB key comparison");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = addKey1;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function addKey1()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("db.createObjectStore('foo');");
     date1 = evalAndLog("date1 = new Date(1000);");
     request = evalAndLog("request = objectStore.add([], date1);");
@@ -77,5 +59,3 @@ function openACursor()
         }
     }
 }
-
-test();
\ No newline at end of file
index 1416507..779331f 100644 (file)
@@ -5,30 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB key types");
 
-function test()
+indexedDBTest(prepareDatabase, testValidArrayKeys);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    openreq = evalAndLog("indexedDB.open(name)");
-    openreq.onsuccess = openSuccess;
-    openreq.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    evalAndLog("db = openreq.result");
-    setverreq = evalAndLog("request = db.setVersion('1')");
-    setverreq.onsuccess = setVersionSuccess;
-    setverreq.onerror = unexpectedErrorCallback;
-}
-
-function setVersionSuccess()
-{
-    debug("preparing database");
-    trans = setverreq.result;
-    trans.oncomplete = testValidArrayKeys;
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("db.createObjectStore('store');");
     debug("");
 }
@@ -186,5 +167,3 @@ function testDepthLimits()
 
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 78ac89b..33535f3 100644 (file)
@@ -5,29 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB key types");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = testGroup1;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function testGroup1()
-{
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     objectStore = evalAndLog("db.createObjectStore('foo');");
     debug("test key as infinity");
     request = evalAndLog("request = objectStore.add([], Infinity);");
@@ -47,5 +29,3 @@ function testGroup3()
 {
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 386688d..ad1b977 100644 (file)
@@ -5,42 +5,21 @@ if (this.importScripts) {
 
 description("Test IndexedDB Array-type keyPaths");
 
-function test()
+indexedDBTest(prepareDatabase, testKeyPaths);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
+    evalAndLog("store = db.createObjectStore('store', {keyPath: ['a', 'b']})");
+    evalAndLog("store.createIndex('index', ['c', 'd'])");
 
-    request = evalAndLog("indexedDB.deleteDatabase('keypath-arrays')");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function () {
-        request = evalAndLog("indexedDB.open('keypath-arrays')");
-        request.onerror = unexpectedErrorCallback;
-        request.onsuccess = openSuccess;
-    };
-}
+    evalAndExpectException("db.createObjectStore('store-with-generator', {keyPath: ['a', 'b'], autoIncrement: true})", "DOMException.INVALID_ACCESS_ERR");
+    evalAndExpectException("store.createIndex('index-multientry', ['e', 'f'], {multiEntry: true})", "DOMException.INVALID_ACCESS_ERR");
 
-function openSuccess()
-{
     debug("");
-    debug("openSuccess():");
-    db = evalAndLog("db = event.target.result");
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function () {
-        transaction = request.result;
-        transaction.onabort = unexpectedAbortCallback;
-        evalAndLog("store = db.createObjectStore('store', {keyPath: ['a', 'b']})");
-        evalAndLog("store.createIndex('index', ['c', 'd'])");
-
-        evalAndExpectException("db.createObjectStore('store-with-generator', {keyPath: ['a', 'b'], autoIncrement: true})", "DOMException.INVALID_ACCESS_ERR");
-        evalAndExpectException("store.createIndex('index-multientry', ['e', 'f'], {multiEntry: true})", "DOMException.INVALID_ACCESS_ERR");
-
-        debug("");
-        debug("Empty arrays are not valid key paths:");
-        evalAndExpectException("db.createObjectStore('store-keypath-empty-array', {keyPath: []})", "DOMException.SYNTAX_ERR");
-        evalAndExpectException("store.createIndex('index-keypath-empty-array', [])", "DOMException.SYNTAX_ERR");
-
-        transaction.oncomplete = testKeyPaths;
-    };
+    debug("Empty arrays are not valid key paths:");
+    evalAndExpectException("db.createObjectStore('store-keypath-empty-array', {keyPath: []})", "DOMException.SYNTAX_ERR");
+    evalAndExpectException("store.createIndex('index-keypath-empty-array', [])", "DOMException.SYNTAX_ERR");
 }
 
 function testKeyPaths()
@@ -82,5 +61,3 @@ function testKeyPaths()
 
     transaction.oncomplete = finishJSTest;
 }
-
-test();
index dcd8d4e..faa00ad 100644 (file)
@@ -5,30 +5,11 @@ if (this.importScripts) {
 
 description("Test for valid and invalid keypaths");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = testValidKeyPaths;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function testValidKeyPaths()
-{
-    debug("");
-    debug("testValidKeyPaths():");
-    deleteAllObjectStores(db);
-
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     evalAndLog("store = db.createObjectStore('name')");
     shouldBeNull("store.keyPath");
     deleteAllObjectStores(db);
@@ -168,5 +149,3 @@ function testInvalidKeyPaths()
 
     finishJSTest();
 }
-
-test();
index b16803a..a092f5c 100644 (file)
@@ -5,33 +5,13 @@ if (this.importScripts) {
 
 description("Test IndexedDB keyPath edge cases");
 
-function test()
+indexedDBTest(prepareDatabase, testKeyPaths);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    request = evalAndLog("indexedDB.deleteDatabase('keypath-edges')");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function () {
-        request = evalAndLog("indexedDB.open('keypath-edges')");
-        request.onerror = unexpectedErrorCallback;
-        request.onsuccess = openSuccess;
-    };
-}
-
-function openSuccess()
-{
-    debug("");
-    debug("openSuccess():");
-    db = evalAndLog("db = event.target.result");
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function () {
-        transaction = request.result;
-        transaction.onabort = unexpectedAbortCallback;
-        evalAndLog("db.createObjectStore('store-with-path', {keyPath: 'foo'})");
-        evalAndLog("db.createObjectStore('store-with-path-and-generator', {keyPath: 'foo', autoIncrement: true})");
-        transaction.oncomplete = testKeyPaths;
-    };
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
+    evalAndLog("db.createObjectStore('store-with-path', {keyPath: 'foo'})");
+    evalAndLog("db.createObjectStore('store-with-path-and-generator', {keyPath: 'foo', autoIncrement: true})");
 }
 
 function testKeyPaths()
@@ -106,5 +86,3 @@ function testKeyPathsAndGenerator()
     transaction.onabort = unexpectedAbortCallback;
     transaction.oncomplete = finishJSTest;
 }
-
-test();
\ No newline at end of file
index 265fdf9..006f070 100644 (file)
@@ -5,51 +5,38 @@ if (this.importScripts) {
 
 description("Test IndexedDB keyPaths");
 
-function test()
-{
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
+testData = [{ name: "simple identifier",
+              value: {id:10},
+              keyPath: "id",
+              key: 10 },
+            { name: "simple identifiers",
+              value: {id1:10, id2:20},
+              keyPath: "id1",
+              key: 10 },
+            { name: "nested identifiers",
+              value: {outer:{inner:10}},
+              keyPath: "outer.inner",
+              key: 10 },
+            { name: "nested identifiers with distractions",
+              value: {outer:{inner:10}, inner:{outer:20}},
+              keyPath: "outer.inner",
+              key: 10 },
+];
+nextToOpen = 0;
 
-    testData = [{ name: "simple identifier",
-                  value: {id:10},
-                  keyPath: "id",
-                  key: 10 },
-                { name: "simple identifiers",
-                  value: {id1:10, id2:20},
-                  keyPath: "id1",
-                  key: 10 },
-                { name: "nested identifiers",
-                  value: {outer:{inner:10}},
-                  keyPath: "outer.inner",
-                  key: 10 },
-                { name: "nested identifiers with distractions",
-                  value: {outer:{inner:10}, inner:{outer:20}},
-                  keyPath: "outer.inner",
-                  key: 10 },
-    ];
-    nextToOpen = 0;
-    request.onsuccess = createAndPopulateObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createAndPopulateObjectStore()
+indexedDBTest(prepareDatabase);
+var db = null;
+var trans = null;
+function prepareDatabase()
 {
+    db = db || event.target.result;
+    if (!trans) {
+        trans = event.target.transaction;
+        trans.onabort = unexpectedAbortCallback;
+    }
     debug("");
     debug("testing " + testData[nextToOpen].name);
-
     deleteAllObjectStores(db);
-
     objectStore = evalAndLog("objectStore = db.createObjectStore(testData[nextToOpen].name, {keyPath: testData[nextToOpen].keyPath});");
     result = evalAndLog("result = objectStore.add(testData[nextToOpen].value);");
     result.onerror = unexpectedErrorCallback;
@@ -72,10 +59,8 @@ function checkCursor()
         testFailed("cursor is null");
     }
     if (++nextToOpen < testData.length) {
-        createAndPopulateObjectStore();
+        prepareDatabase();
     } else {
         finishJSTest();
     }
 }
-
-test();
\ No newline at end of file
index 4319bcc..f762c8f 100644 (file)
@@ -5,35 +5,14 @@ if (this.importScripts) {
 
 description("Test IndexedDB keyPath with intrinsic properties");
 
-function test()
+indexedDBTest(prepareDatabase, testKeyPaths);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    request = evalAndLog("indexedDB.deleteDatabase('keypath-intrinsic-properties')");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function () {
-        request = evalAndLog("indexedDB.open('keypath-intrinsic-properties')");
-        request.onerror = unexpectedErrorCallback;
-        request.onsuccess = openSuccess;
-    };
-}
-
-function openSuccess()
-{
-    debug("");
-    debug("openSuccess():");
-    db = evalAndLog("db = event.target.result");
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function () {
-        transaction = request.result;
-        transaction.onabort = unexpectedAbortCallback;
-        evalAndLog("store = db.createObjectStore('store', {keyPath: 'id'})");
-        evalAndLog("store.createIndex('string length', 'string.length')");
-        evalAndLog("store.createIndex('array length', 'array.length')");
-
-        transaction.oncomplete = testKeyPaths;
-    };
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
+    evalAndLog("store = db.createObjectStore('store', {keyPath: 'id'})");
+    evalAndLog("store.createIndex('string length', 'string.length')");
+    evalAndLog("store.createIndex('array length', 'array.length')");
 }
 
 function testKeyPaths()
@@ -84,5 +63,3 @@ function testKeyPaths()
 
     transaction.oncomplete = finishJSTest;
 }
-
-test();
index 93adf94..464ea6e 100644 (file)
@@ -5,30 +5,13 @@ if (this.importScripts) {
 
 description("Test that legacy direction/mode constants work");
 
-function test()
-{
-    removeVendorPrefixes();
-    prepareDatabase();
-}
-
+indexedDBTest(prepareDatabase, populateStore);
 function prepareDatabase()
 {
-    debug("");
-    evalAndLog("openreq = indexedDB.open('legacy-constants')");
-    openreq.onerror = unexpectedErrorCallback;
-    openreq.onsuccess = function()
-    {
-        evalAndLog("db = openreq.result");
-        evalAndLog("verreq = db.setVersion('1')");
-        verreq.onerror = unexpectedErrorCallback;
-        verreq.onsuccess = function()
-        {
-            deleteAllObjectStores(db);
-            nstore = evalAndLog("store = db.createObjectStore('store')");
-            evalAndLog("store.createIndex('index', 'value')");
-            verreq.result.oncomplete = populateStore;
-        };
-    };
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
+    nstore = evalAndLog("store = db.createObjectStore('store')");
+    evalAndLog("store.createIndex('index', 'value')");
 }
 function populateStore()
 {
@@ -131,5 +114,3 @@ function testObsoleteConstants()
 
     finishJSTest();
 }
-
-test();
index 75f0325..4398dba 100644 (file)
@@ -32,53 +32,29 @@ for (i = 0; i < permuted_order.length - 2; i += 2) {
     permuted_order[i + 1] = tmp;
 }
 
-function test()
+indexedDBTest(prepareDatabase, finishJSTest);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
     debug("check that the expected order is the canonical JS sort order:");
     evalAndLog("sorted_order = expected_order.slice(); sorted_order.sort()");
     shouldBeTrue("areArraysEqual(sorted_order, expected_order)");
-    testStoresAndIndexes();
-}
 
-function testStoresAndIndexes()
-{
     debug("");
-    debug("testStoresAndIndexes():");
-    request = evalAndLog("indexedDB.deleteDatabase('list-ordering')");
-    request.onerror = unexpectedErrorCallback;
-    request.onsuccess = function(e) {
-        request = evalAndLog("indexedDB.open('list-ordering')");
-        request.onerror = unexpectedErrorCallback;
-        request.onsuccess = function(e) {
-            evalAndLog("db = request.result");
-            shouldBe("db.version", "1");
-            request = evalAndLog("db.setVersion('1')");
-            request.onerror = unexpectedErrorCallback;
-            request.onsuccess = function(e) {
-                trans = request.result;
-
-                debug("");
-                debug("Object stores:");
-                permuted_order.forEach(function (name) {
-                    evalAndLog("db.createObjectStore(" + JSON.stringify(name) +")");
-                });
+    debug("Object stores:");
+    permuted_order.forEach(function (name) {
+        evalAndLog("db.createObjectStore(" + JSON.stringify(name) +")");
+    });
 
-                shouldBeTrue("areArraysEqual(db.objectStoreNames, expected_order)");
+    shouldBeTrue("areArraysEqual(db.objectStoreNames, expected_order)");
 
-                debug("");
-                debug("Indexes:");
-                store = evalAndLog("store = db.createObjectStore('store')");
-                permuted_order.forEach(function (name) {
-                    evalAndLog("store.createIndex(" + JSON.stringify(name) +", 'keyPath')");
-                });
-
-                shouldBeTrue("areArraysEqual(store.indexNames, expected_order)");
+    debug("");
+    debug("Indexes:");
+    store = evalAndLog("store = db.createObjectStore('store')");
+    permuted_order.forEach(function (name) {
+        evalAndLog("store.createIndex(" + JSON.stringify(name) +", 'keyPath')");
+    });
 
-                trans.oncomplete = finishJSTest;
-            };
-        };
-    };
+    shouldBeTrue("areArraysEqual(store.indexNames, expected_order)");
 }
-
-test();
index acdbc91..f6677a8 100644 (file)
@@ -5,34 +5,11 @@ if (this.importScripts) {
 
 description("Test mutating an IndexedDB's objectstore from a cursor.");
 
-test();
-
-function test()
+indexedDBTest(prepareDatabase, openForwardCursor);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('mutating-cursor')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    var db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('1')");
-    request.onsuccess = setVersionSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersionSuccess()
-{
-    debug("setVersionSuccess():");
-    self.trans = evalAndLog("trans = event.target.result");
-    shouldBeNonNull("trans");
-    trans.onabort = unexpectedAbortCallback;
-    trans.oncomplete = openForwardCursor;
-
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     var objectStore = evalAndLog("objectStore = db.createObjectStore('store')");
     evalAndLog("objectStore.add(1, 1).onerror = unexpectedErrorCallback");
@@ -129,4 +106,4 @@ function reverseCursorComplete()
 {
     debug("reverseCursorComplete()");
     finishJSTest();
-}
\ No newline at end of file
+}
index d295bfc..70a4640 100644 (file)
@@ -5,28 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB object store required arguments");
 
-function test()
+indexedDBTest(prepareDatabase);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-
-    name = self.location.pathname;
-    request = evalAndLog("indexedDB.open(name)");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("request = db.setVersion('1')");
-    request.onsuccess = createAndPopulateObjectStore;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function createAndPopulateObjectStore()
-{
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     objectStore = evalAndLog("objectStore = db.createObjectStore('foo');");
     shouldThrow("objectStore.put();");
@@ -39,5 +22,3 @@ function createAndPopulateObjectStore()
     shouldThrow("objectStore.deleteIndex();");
     finishJSTest();
 }
-
-test();
\ No newline at end of file
index 862a055..5493c09 100644 (file)
@@ -5,33 +5,11 @@ if (this.importScripts) {
 
 description("Test IndexedDB's IDBObjectStore auto-increment feature.");
 
-function test()
+indexedDBTest(prepareDatabase, setVersionCompleted);
+function prepareDatabase()
 {
-    removeVendorPrefixes();
-    request = evalAndLog("indexedDB.open('objectstore-autoincrement')");
-    request.onsuccess = openSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function openSuccess()
-{
-    debug("openSuccess():");
-    self.db = evalAndLog("db = event.target.result");
-
-    request = evalAndLog("db.setVersion('new version')");
-    request.onsuccess = setVersionSuccess;
-    request.onerror = unexpectedErrorCallback;
-}
-
-function setVersionSuccess()
-{
-    debug("setVersionSuccess():");
-    self.trans = evalAndLog("trans = event.target.result");
-    shouldBeNonNull("trans");
-    trans.onabort = unexpectedAbortCallback;
-    trans.oncomplete = setVersionCompleted;
-
-    deleteAllObjectStores(db);
+    db = event.target.result;
+    event.target.transaction.onabort = unexpectedAbortCallback;
 
     debug("createObjectStore():");
     self.store = evalAndLog("store = db.createObjectStore('StoreWithKeyPath', {keyPath: 'id', autoIncrement: true})");
@@ -46,8 +24,6 @@ function setVersionSuccess()
     shouldBe("storeNames.contains('StoreWithAutoIncrement')", "true");
     shouldBe("storeNames.contains('PlainOldStore')", "true");
     shouldBe("storeNames.length", "4");
-
-    // Let the setVersion transaction complete.
 }
 
 function setVersionCompleted()
@@ -189,5 +165,3 @@ function testLongKeyPath()
         cursor.continue();
     };
 }
-
-test();
\ No newline at end of file