diff options
author | dgrogan@chromium.org <dgrogan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-17 12:32:56 +0000 |
---|---|---|
committer | dgrogan@chromium.org <dgrogan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-17 12:32:56 +0000 |
commit | 06ccb7aefdde0e8af1e28af68cb9bb37bdbb858b (patch) | |
tree | 1cd560b250b6c6ad67788e469acaf776909f2fbb | |
parent | c13cf71f757da556fd5949d50701db560f92c5ec (diff) | |
download | chromium_src-06ccb7aefdde0e8af1e28af68cb9bb37bdbb858b.zip chromium_src-06ccb7aefdde0e8af1e28af68cb9bb37bdbb858b.tar.gz chromium_src-06ccb7aefdde0e8af1e28af68cb9bb37bdbb858b.tar.bz2 |
Remove calls to setVersion from browser tests
BUG=161542
Review URL: https://chromiumcodereview.appspot.com/11412047
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168413 0039d316-1c4b-4281-b951-d872f2087c98
19 files changed, 152 insertions, 322 deletions
diff --git a/content/browser/in_process_webkit/indexed_db_browsertest.cc b/content/browser/in_process_webkit/indexed_db_browsertest.cc index 5d7d794..3c0a2f9 100644 --- a/content/browser/in_process_webkit/indexed_db_browsertest.cc +++ b/content/browser/in_process_webkit/indexed_db_browsertest.cc @@ -103,9 +103,7 @@ IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTest, TransactionGetTest) { SimpleTest(GetTestUrl("indexeddb", "transaction_get_test.html")); } -// Needs to be disabled until after WK 129037 rolls into chromium and we can -// update this expectation. -IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTest, DISABLED_KeyTypesTest) { +IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTest, KeyTypesTest) { SimpleTest(GetTestUrl("indexeddb", "key_types_test.html")); } @@ -360,15 +358,15 @@ IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTest, VersionChangeCrashResilience) { // Verify that open DB connections are closed when a tab is destroyed. IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTest, ConnectionsClosedOnTabClose) { NavigateAndWaitForTitle(shell(), "version_change_blocked.html", "#tab1", - "setVersion(1) complete"); + "setVersion(2) complete"); // Start on a different URL to force a new renderer process. Shell* new_shell = CreateBrowser(); NavigateToURL(new_shell, GURL(chrome::kAboutBlankURL)); NavigateAndWaitForTitle(new_shell, "version_change_blocked.html", "#tab2", - "setVersion(2) blocked"); + "setVersion(3) blocked"); - string16 expected_title16(ASCIIToUTF16("setVersion(2) complete")); + string16 expected_title16(ASCIIToUTF16("setVersion(3) complete")); TitleWatcher title_watcher(new_shell->web_contents(), expected_title16); base::KillProcess( diff --git a/content/test/data/indexeddb/bug_109187.js b/content/test/data/indexeddb/bug_109187.js index 1eae86a..76e4152 100644 --- a/content/test/data/indexeddb/bug_109187.js +++ b/content/test/data/indexeddb/bug_109187.js @@ -9,19 +9,17 @@ function test() { var DBNAME = 'multiEntry-crash-test'; var request = indexedDB.deleteDatabase(DBNAME); request.onsuccess = function (e) { - request = indexedDB.open(DBNAME); - request.onsuccess = function (e) { - var db = request.result; - request = db.setVersion('1'); - request.onsuccess = function (e) { - var store = db.createObjectStore('storeName'); - window.index1 = store.createIndex('index1Name', 'prop1'); - window.index2 = store.createIndex( - 'index2Name', 'prop2', {multiEntry: true}); - shouldBeFalse("window.index1.multiEntry"); - shouldBeTrue("window.index2.multiEntry"); - done(); - }; + request = indexedDB.open(DBNAME, 1); + request.onerror = unexpectedErrorCallback; + request.onblocked = unexpectedBlockedCallback; + request.onupgradeneeded = function (e) { + var store = db.createObjectStore('storeName'); + window.index1 = store.createIndex('index1Name', 'prop1'); + window.index2 = store.createIndex( + 'index2Name', 'prop2', {multiEntry: true}); + shouldBeFalse("window.index1.multiEntry"); + shouldBeTrue("window.index2.multiEntry"); + done(); }; }; } diff --git a/content/test/data/indexeddb/bug_90635.js b/content/test/data/indexeddb/bug_90635.js index a208cb8..e59d54f 100644 --- a/content/test/data/indexeddb/bug_90635.js +++ b/content/test/data/indexeddb/bug_90635.js @@ -18,24 +18,20 @@ function testPart1() var delreq = window.indexedDB.deleteDatabase('bug90635'); delreq.onerror = unexpectedErrorCallback; delreq.onsuccess = function() { - var openreq = window.indexedDB.open('bug90635'); + var openreq = window.indexedDB.open('bug90635', 1); openreq.onerror = unexpectedErrorCallback; - openreq.onsuccess = function(e) { - var db = openreq.result; - var setverreq = db.setVersion('1'); - setverreq.onerror = unexpectedErrorCallback; - setverreq.onsuccess = function(e) { - var transaction = setverreq.result; + openreq.onblocked = unexpectedBlockedCallback; + openreq.onupgradeneeded = function(e) { + db = openreq.result; + var transaction = openreq.transaction; + transaction.onabort = unexpectedAbortCallback; - db.createObjectStore('store1'); - db.createObjectStore('store2', {keyPath: ''}); - db.createObjectStore('store3', {keyPath: 'some_path'}); - - transaction.onabort = unexpectedAbortCallback; - transaction.oncomplete = function() { - test_store(db, 'first run'); - }; - }; + db.createObjectStore('store1'); + db.createObjectStore('store2', {keyPath: ''}); + db.createObjectStore('store3', {keyPath: 'some_path'}); + }; + openreq.onsuccess = function() { + test_store(db, 'first run'); }; }; } diff --git a/content/test/data/indexeddb/common.js b/content/test/data/indexeddb/common.js index 11d2adc..befa4ba 100644 --- a/content/test/data/indexeddb/common.js +++ b/content/test/data/indexeddb/common.js @@ -121,3 +121,19 @@ function shouldBeEqualToString(a, b) var unevaledString = '"' + b.replace(/\\/g, "\\\\").replace(/"/g, "\"") + '"'; shouldBe(a, unevaledString); } + +function indexedDBTest(upgradeCallback, optionalOpenCallback) { + dbname = self.location.pathname.substring( + 1 + self.location.pathname.lastIndexOf("/")); + var deleteRequest = indexedDB.deleteDatabase(dbname); + deleteRequest.onerror = unexpectedErrorCallback; + deleteRequest.onblocked = unexpectedBlockedCallback; + deleteRequest.onsuccess = function() { + var openRequest = indexedDB.open(dbname); + openRequest.onerror = unexpectedErrorCallback; + openRequest.onupgradeneeded = upgradeCallback; + openRequest.onblocked = unexpectedBlockedCallback; + if (optionalOpenCallback) + openRequest.onsuccess = optionalOpenCallback; + }; +} diff --git a/content/test/data/indexeddb/cursor_prefetch.js b/content/test/data/indexeddb/cursor_prefetch.js index 88b9c83..bb587cc 100644 --- a/content/test/data/indexeddb/cursor_prefetch.js +++ b/content/test/data/indexeddb/cursor_prefetch.js @@ -10,32 +10,14 @@ var kMinPrefetchAmount = 5; var kNumberOfItems = 200; function test() { - indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB; - IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction - IDBCursor = window.IDBCursor || window.webkitIDBCursor; - IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange; - - request = indexedDB.open('cursor-prefetch'); - request.onsuccess = openSuccess; - request.onerror = unexpectedErrorCallback; -} - -function openSuccess() { - window.db = event.target.result; - - request = db.setVersion('new version'); - request.onsuccess = setVersionSuccess; - request.onerror = unexpectedErrorCallback; + indexedDBTest(setVersionSuccess, fillObjectStore); } function setVersionSuccess() { debug("setVersionSuccess():"); - window.trans = event.target.result; + window.db = event.target.result; + window.trans = event.target.transaction; shouldBeTrue("trans !== null"); - trans.onabort = unexpectedAbortCallback; - trans.oncomplete = fillObjectStore; - - deleteAllObjectStores(db); var store = db.createObjectStore('store'); store.createIndex('index', ''); } diff --git a/content/test/data/indexeddb/cursor_test.js b/content/test/data/indexeddb/cursor_test.js index 142d0ae..49e037f 100644 --- a/content/test/data/indexeddb/cursor_test.js +++ b/content/test/data/indexeddb/cursor_test.js @@ -52,6 +52,7 @@ function dataAddedSuccess() function populateObjectStore() { debug('Populating object store'); + db = event.target.result; deleteAllObjectStores(db); window.objectStore = db.createObjectStore('test'); var request = objectStore.add('myValue', 3.14); @@ -59,19 +60,6 @@ function populateObjectStore() request.onerror = unexpectedErrorCallback; } -function setVersion() -{ - debug('setVersion'); - window.db = event.target.result; - var request = db.setVersion('new version'); - request.onsuccess = populateObjectStore; - request.onerror = unexpectedErrorCallback; -} - -function test() -{ - debug('Connecting to indexedDB'); - var request = webkitIndexedDB.open('name'); - request.onsuccess = setVersion; - request.onerror = unexpectedErrorCallback; +function test() { + indexedDBTest(populateObjectStore); } diff --git a/content/test/data/indexeddb/database_test.js b/content/test/data/indexeddb/database_test.js index 840c5bd..caaa1a9 100644 --- a/content/test/data/indexeddb/database_test.js +++ b/content/test/data/indexeddb/database_test.js @@ -2,16 +2,20 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +function test() { + indexedDBTest(populateObjectStore); +} + function populateObjectStore() { + db = event.target.result; debug('Populating object store'); - deleteAllObjectStores(db); window.objectStore = db.createObjectStore('employees', {keyPath: 'id'}); shouldBe("objectStore.name", "'employees'"); shouldBe("objectStore.keyPath", "'id'"); - shouldBe('db.name', '"name"'); - shouldBe('db.version', '"1.0"'); + shouldBe('db.name', 'dbname'); + shouldBe('db.version', '1'); shouldBe('db.objectStoreNames.length', '1'); shouldBe('db.objectStoreNames[0]', '"employees"'); @@ -21,27 +25,3 @@ function populateObjectStore() done(); } - -function setVersion() -{ - debug('setVersion'); - window.db = event.target.result; - var request = db.setVersion('1.0'); - request.onsuccess = populateObjectStore; - request.onerror = unexpectedErrorCallback; -} - -function test() -{ - if ('webkitIndexedDB' in window) { - indexedDB = webkitIndexedDB; - IDBCursor = webkitIDBCursor; - IDBKeyRange = webkitIDBKeyRange; - IDBTransaction = webkitIDBTransaction; - } - - debug('Connecting to indexedDB'); - var request = indexedDB.open('name'); - request.onsuccess = setVersion; - request.onerror = unexpectedErrorCallback; -} diff --git a/content/test/data/indexeddb/index_test.js b/content/test/data/indexeddb/index_test.js index aabe192..1c21835 100644 --- a/content/test/data/indexeddb/index_test.js +++ b/content/test/data/indexeddb/index_test.js @@ -126,7 +126,7 @@ function dataAddedSuccess() function populateObjectStore() { debug('Populating object store'); - deleteAllObjectStores(db); + db = event.target.result; window.objectStore = db.createObjectStore('test'); var myValue = {'aKey': 21, 'aValue': '!42'}; var request = objectStore.add(myValue, 0); @@ -134,26 +134,7 @@ function populateObjectStore() request.onerror = unexpectedErrorCallback; } -function setVersion() -{ - debug('setVersion'); - window.db = event.target.result; - var request = db.setVersion('new version'); - request.onsuccess = populateObjectStore; - request.onerror = unexpectedErrorCallback; +function test() { + indexedDBTest(populateObjectStore); } -function test() -{ - if ('webkitIndexedDB' in window) { - indexedDB = webkitIndexedDB; - IDBCursor = webkitIDBCursor; - IDBKeyRange = webkitIDBKeyRange; - IDBTransaction = webkitIDBTransaction; - } - - debug('Connecting to indexedDB'); - var request = indexedDB.open('name'); - request.onsuccess = setVersion; - request.onerror = unexpectedErrorCallback; -} diff --git a/content/test/data/indexeddb/key_path_test.js b/content/test/data/indexeddb/key_path_test.js index 566015a..e31c343 100644 --- a/content/test/data/indexeddb/key_path_test.js +++ b/content/test/data/indexeddb/key_path_test.js @@ -43,28 +43,13 @@ function populateObjectStore() function createObjectStore() { debug('createObjectStore'); - deleteAllObjectStores(db); + db = event.target.result; window.objectStore = db.createObjectStore('test', {keyPath: 'keyPath'}); count = 0; populateObjectStore(); } -function setVersion() -{ - debug('setVersion'); - window.db = event.target.result; - var request = db.setVersion('new version'); - request.onsuccess = createObjectStore; - request.onerror = unexpectedErrorCallback; -} - function test() { - debug("Test IndexedDB's KeyPath."); - debug("Opening IndexedDB"); - request = webkitIndexedDB.open('name'); - request.onsuccess = setVersion; - request.onerror = unexpectedErrorCallback; + indexedDBTest(createObjectStore); } - -var successfullyParsed = true; diff --git a/content/test/data/indexeddb/key_types_test.js b/content/test/data/indexeddb/key_types_test.js index 5c913b0..63ea776 100644 --- a/content/test/data/indexeddb/key_types_test.js +++ b/content/test/data/indexeddb/key_types_test.js @@ -8,28 +8,13 @@ window.IDBDatabaseException = window.IDBDatabaseException || window.webkitIDBDatabaseException; function test() { - prepareDatabase(); + indexedDBTest(prepareDatabase, testValidKeys); } -function prepareDatabase() { - var databaseName = 'key-test-db'; - var deleteRequest = indexedDB.deleteDatabase(databaseName); - deleteRequest.onerror = unexpectedErrorCallback; - deleteRequest.onsuccess = function() { - var openreq = indexedDB.open(databaseName); - openreq.onerror = unexpectedErrorCallback; - openreq.onsuccess = function() { - db = openreq.result; - shouldBe('db.version', '""'); - var verreq = db.setVersion('1'); - verreq.onerror = unexpectedErrorCallback; - verreq.onsuccess = function() { - var trans = verreq.result; - db.createObjectStore('store'); - trans.oncomplete = testValidKeys; - }; - }; - }; +function prepareDatabase() +{ + db = event.target.result; + db.createObjectStore('store'); } var valid_keys = [ diff --git a/content/test/data/indexeddb/object_store_test.js b/content/test/data/indexeddb/object_store_test.js index 290a757..d067451 100644 --- a/content/test/data/indexeddb/object_store_test.js +++ b/content/test/data/indexeddb/object_store_test.js @@ -88,7 +88,8 @@ function dataAddedSuccess() function populateObjectStore() { - window.transaction = event.target.result; + window.transaction = event.target.transaction; + db = event.target.result; transaction.onabort = unexpectedAbortCallback; debug('Populating object store'); deleteAllObjectStores(db); @@ -108,19 +109,6 @@ function populateObjectStore() request.onerror = unexpectedErrorCallback; } -function setVersion() -{ - debug('setVersion'); - window.db = event.target.result; - var request = db.setVersion('1.0'); - request.onsuccess = populateObjectStore; - request.onerror = unexpectedErrorCallback; -} - -function test() -{ - debug('Connecting to indexedDB'); - var request = webkitIndexedDB.open('name'); - request.onsuccess = setVersion; - request.onerror = unexpectedErrorCallback; +function test() { + indexedDBTest(populateObjectStore); } diff --git a/content/test/data/indexeddb/quota_test.js b/content/test/data/indexeddb/quota_test.js index fa39230..3196e0c 100644 --- a/content/test/data/indexeddb/quota_test.js +++ b/content/test/data/indexeddb/quota_test.js @@ -18,26 +18,12 @@ function initUsageCallback(usage, quota) { debug("original quota is " + displaySize(origReturnedQuota)); debug("original usage is " + displaySize(origReturnedUsage)); - request = webkitIndexedDB.open('database-quota'); - request.onsuccess = openSuccess; - request.onerror = unexpectedErrorCallback; + indexedDBTest(prepareDatabase, initQuotaEnforcing); } -function openSuccess() { - window.db = event.target.result; - - request = db.setVersion('new version'); - request.onsuccess = setVersionSuccess; - request.onerror = unexpectedErrorCallback; -} - -function setVersionSuccess() { - window.trans = event.target.result; - trans.onabort = unexpectedAbortCallback; - trans.oncomplete = initQuotaEnforcing; - - deleteAllObjectStores(db); - +function prepareDatabase() +{ + db = event.target.result; objectStore = db.createObjectStore("test123"); } diff --git a/content/test/data/indexeddb/shared.js b/content/test/data/indexeddb/shared.js index 9442623..e8ec1ab 100644 --- a/content/test/data/indexeddb/shared.js +++ b/content/test/data/indexeddb/shared.js @@ -22,3 +22,18 @@ function unexpectedCompleteCallback() { result('fail - unexpected complete callback'); } + +function unexpectedSuccessCallback() +{ + result('fail - unexpected success callback'); +} + +function unexpectedUpgradeNeededCallback() +{ + result('fail - unexpected upgradeneeded callback'); +} + +function unexpectedBlockedCallback() +{ + result('fail - unexpected blocked callback'); +} diff --git a/content/test/data/indexeddb/transaction_get_test.js b/content/test/data/indexeddb/transaction_get_test.js index c0f41db..0af15af 100644 --- a/content/test/data/indexeddb/transaction_get_test.js +++ b/content/test/data/indexeddb/transaction_get_test.js @@ -44,24 +44,13 @@ function startTransaction() function populateObjectStore() { + db = event.target.result; deleteAllObjectStores(db); window.objectStore = db.createObjectStore('storeName'); var request = objectStore.add('myValue', 'myKey'); request.onerror = unexpectedErrorCallback; - event.target.result.oncomplete = startTransaction; } -function setVersion() -{ - window.db = event.target.result; - var request = db.setVersion('new version'); - request.onsuccess = populateObjectStore; - request.onerror = unexpectedErrorCallback; -} - -function test() -{ - request = webkitIndexedDB.open('name'); - request.onsuccess = setVersion; - request.onerror = unexpectedErrorCallback; +function test() { + indexedDBTest(populateObjectStore, startTransaction); } diff --git a/content/test/data/indexeddb/transaction_run_forever.js b/content/test/data/indexeddb/transaction_run_forever.js index 0faf189..3a79340 100644 --- a/content/test/data/indexeddb/transaction_run_forever.js +++ b/content/test/data/indexeddb/transaction_run_forever.js @@ -47,23 +47,12 @@ function onSetVersionComplete() function onSetVersion() { // We are now in a set version transaction. - var setVersionTransaction = event.target.result; - setVersionTransaction.oncomplete = onSetVersionComplete; - setVersionTransaction.onerror = unexpectedErrorCallback; - debug('Creating object store.'); + db = event.target.result; deleteAllObjectStores(db); var objectStore = db.createObjectStore('employees', {keyPath: 'id'}); } -function setVersion() -{ - window.db = event.target.result; - var request = db.setVersion('1.0'); - request.onsuccess = onSetVersion; - request.onerror = unexpectedErrorCallback; -} - function test() { if ('webkitIndexedDB' in window) { @@ -72,9 +61,5 @@ function test() IDBKeyRange = webkitIDBKeyRange; IDBTransaction = webkitIDBTransaction; } - - debug('Connecting to indexedDB.'); - var request = indexedDB.open('name'); - request.onsuccess = setVersion; - request.onerror = unexpectedErrorCallback; + indexedDBTest(onSetVersion, onSetVersionComplete); } diff --git a/content/test/data/indexeddb/transaction_test.js b/content/test/data/indexeddb/transaction_test.js index c7fea74..e1a47dd 100644 --- a/content/test/data/indexeddb/transaction_test.js +++ b/content/test/data/indexeddb/transaction_test.js @@ -61,23 +61,12 @@ function onSetVersionComplete() function onSetVersion() { // We are now in a set version transaction. - var setVersionTransaction = event.target.result; - setVersionTransaction.oncomplete = onSetVersionComplete; - setVersionTransaction.onerror = unexpectedErrorCallback; - + window.db = event.target.result; debug('Creating object store.'); deleteAllObjectStores(db); db.createObjectStore('employees', {keyPath: 'id'}); } -function setVersion() -{ - window.db = event.target.result; - var request = db.setVersion('1.0'); - request.onsuccess = onSetVersion; - request.onerror = unexpectedErrorCallback; -} - function test() { if ('webkitIndexedDB' in window) { @@ -86,9 +75,5 @@ function test() IDBKeyRange = webkitIDBKeyRange; IDBTransaction = webkitIDBTransaction; } - - debug('Connecting to indexedDB.'); - var request = indexedDB.open('name'); - request.onsuccess = setVersion; - request.onerror = unexpectedErrorCallback; + indexedDBTest(onSetVersion, onSetVersionComplete); } diff --git a/content/test/data/indexeddb/value_size_test.js b/content/test/data/indexeddb/value_size_test.js index b8954d8..f1a8a5f 100644 --- a/content/test/data/indexeddb/value_size_test.js +++ b/content/test/data/indexeddb/value_size_test.js @@ -4,36 +4,16 @@ function test() { - if ('webkitIndexedDB' in window) { - indexedDB = webkitIndexedDB; - IDBTransaction = webkitIDBTransaction; - IDBDatabaseException = webkitIDBDatabaseException; - } - - debug('Deleting previous database'); - var DBNAME = 'value-size', VERSION = 1; - var request = indexedDB.deleteDatabase(DBNAME); - request.onerror = unexpectedErrorCallback; - request.onsuccess = function () { - debug('Opening database connection'); - request = indexedDB.open(DBNAME); - request.onerror = unexpectedErrorCallback; - request.onsuccess = function () { - db = request.result; - debug('Setting version'); - request = db.setVersion(VERSION); - request.onerror = unexpectedErrorCallback; - request.onsuccess = function () { - debug('Creating object store'); - var store = db.createObjectStore('store'); - store.put("FIRST!!!111!", -Infinity); - var transaction = request.result; - transaction.oncomplete = function () { - setTimeout(testUnderLimit, 0); - }; - }; - }; - }; + indexedDBTest(prepareDatabase, function() { + setTimeout(testUnderLimit, 0); + }); +} +function prepareDatabase() +{ + db = event.target.result; + debug('Creating object store'); + var store = db.createObjectStore('store'); + store.put("FIRST!!!111!", -Infinity); } function repeat(string, len) diff --git a/content/test/data/indexeddb/version_change_blocked.js b/content/test/data/indexeddb/version_change_blocked.js index 17048b3..e931040 100644 --- a/content/test/data/indexeddb/version_change_blocked.js +++ b/content/test/data/indexeddb/version_change_blocked.js @@ -5,51 +5,50 @@ function test() { if (document.location.hash === '#tab1') { - prepareDatabase(0, function () { doSetVersion(1); }); + prepareDatabase(function () { doSetVersion(2); }); } else if (document.location.hash === '#tab2') { - doSetVersion(2); + doSetVersion(3); } else { result('fail - unexpected hash'); } } -function prepareDatabase(version, callback) +function prepareDatabase(callback) { // Prepare the database, then exit normally var delreq = window.indexedDB.deleteDatabase('version-change-blocked'); delreq.onerror = unexpectedErrorCallback; delreq.onsuccess = function() { - var openreq = window.indexedDB.open('version-change-blocked'); - openreq.onerror = unexpectedErrorCallback; - openreq.onsuccess = function(e) { - var db = openreq.result; - var setverreq = db.setVersion(String(version)); - setverreq.onerror = unexpectedErrorCallback; - setverreq.onsuccess = function(e) { - var transaction = setverreq.result; - transaction.onabort = unexpectedAbortCallback; - transaction.oncomplete = function (e) { - db.close(); - callback(); - }; - }; - }; + reOpen(callback); + }; +} + +function reOpen(callback) +{ + request = indexedDB.open('version-change-blocked'); + request.onerror = unexpectedErrorCallback; + request.onblocked = unexpectedBlockedCallback; + request.onupgradeneeded = function() { + db = event.target.result; + db.createObjectStore("someobjectstore"); + }; + request.onsuccess = function() { + db.close(); + callback(); }; } function doSetVersion(version) { // Open the database and try a setVersion - var openreq = window.indexedDB.open('version-change-blocked'); + var openreq = window.indexedDB.open('version-change-blocked', version); openreq.onerror = unexpectedErrorCallback; - openreq.onsuccess = function(e) { - window.db = openreq.result; - var setverreq = window.db.setVersion(String(version)); - setverreq.onerror = unexpectedErrorCallback; - setverreq.onblocked = function(e) { - result('setVersion(' + version + ') blocked'); - }; - setverreq.onsuccess = function(e) { + var upgradeneededComplete = false; + openreq.onblocked = function(e) { + result('setVersion(' + version + ') blocked'); + }; + openreq.onupgradeneeded = function(e) { + openreq.transaction.oncomplete = function(e2) { result('setVersion(' + version + ') complete'); }; }; diff --git a/content/test/data/indexeddb/version_change_crash.js b/content/test/data/indexeddb/version_change_crash.js index 3833c98..7fa1465 100644 --- a/content/test/data/indexeddb/version_change_crash.js +++ b/content/test/data/indexeddb/version_change_crash.js @@ -23,20 +23,14 @@ function testPart1() var delreq = window.indexedDB.deleteDatabase('version-change-crash'); delreq.onerror = unexpectedErrorCallback; delreq.onsuccess = function() { - var openreq = window.indexedDB.open('version-change-crash'); + var openreq = window.indexedDB.open('version-change-crash', 1); openreq.onerror = unexpectedErrorCallback; + openreq.onblocked = unexpectedBlockedCallback; + openreq.onupgradeneeded = function(e) { + openreq.result.createObjectStore('store1'); + }; openreq.onsuccess = function(e) { - var db = openreq.result; - var setverreq = db.setVersion('1'); - setverreq.onerror = unexpectedErrorCallback; - setverreq.onsuccess = function(e) { - var transaction = setverreq.result; - db.createObjectStore('store1'); - transaction.onabort = unexpectedAbortCallback; - transaction.oncomplete = function (e) { - result('pass - part1 - complete'); - }; - }; + result('pass - part1 - complete'); }; }; } @@ -46,23 +40,21 @@ function testPart2() // Start a VERSION_CHANGE then crash // Set version 2, twiddle stores and crash - var openreq = window.indexedDB.open('version-change-crash'); + var openreq = window.indexedDB.open('version-change-crash', 2); openreq.onerror = unexpectedErrorCallback; - openreq.onsuccess = function(e) { + openreq.onblocked = unexpectedBlockedCallback; + openreq.onsuccess = unexpectedSuccessCallback; + openreq.onupgradeneeded = function(e) { var db = openreq.result; - var setverreq = db.setVersion('2'); - setverreq.onerror = unexpectedErrorCallback; - setverreq.onsuccess = function(e) { - var transaction = setverreq.result; - transaction.onabort = unexpectedAbortCallback; - transaction.oncomplete = unexpectedCompleteCallback; + var transaction = openreq.transaction; + transaction.onabort = unexpectedAbortCallback; + transaction.oncomplete = unexpectedCompleteCallback; - var store = db.createObjectStore('store2'); - result('pass - part2 - crash me'); + var store = db.createObjectStore('store2'); + result('pass - part2 - crash me'); - // Keep adding to the transaction so it can't commit - (function loop() { store.put(0, 0).onsuccess = loop; }()); - }; + // Keep adding to the transaction so it can't commit + (function loop() { store.put(0, 0).onsuccess = loop; }()); }; } @@ -73,9 +65,11 @@ function testPart3() // Check version var openreq = window.indexedDB.open('version-change-crash'); openreq.onerror = unexpectedErrorCallback; + openreq.onblocked = unexpectedBlockedCallback; + openreq.onupgradeneeded = unexpectedUpgradeNeededCallback; openreq.onsuccess = function(e) { var db = openreq.result; - if (db.version !== '1') { + if (db.version !== 1) { result('fail - version incorrect'); return; } |