summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgrogan@chromium.org <dgrogan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-17 12:32:56 +0000
committerdgrogan@chromium.org <dgrogan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-17 12:32:56 +0000
commit06ccb7aefdde0e8af1e28af68cb9bb37bdbb858b (patch)
tree1cd560b250b6c6ad67788e469acaf776909f2fbb
parentc13cf71f757da556fd5949d50701db560f92c5ec (diff)
downloadchromium_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
-rw-r--r--content/browser/in_process_webkit/indexed_db_browsertest.cc10
-rw-r--r--content/test/data/indexeddb/bug_109187.js24
-rw-r--r--content/test/data/indexeddb/bug_90635.js28
-rw-r--r--content/test/data/indexeddb/common.js16
-rw-r--r--content/test/data/indexeddb/cursor_prefetch.js24
-rw-r--r--content/test/data/indexeddb/cursor_test.js18
-rw-r--r--content/test/data/indexeddb/database_test.js34
-rw-r--r--content/test/data/indexeddb/index_test.js25
-rw-r--r--content/test/data/indexeddb/key_path_test.js19
-rw-r--r--content/test/data/indexeddb/key_types_test.js25
-rw-r--r--content/test/data/indexeddb/object_store_test.js20
-rw-r--r--content/test/data/indexeddb/quota_test.js22
-rw-r--r--content/test/data/indexeddb/shared.js15
-rw-r--r--content/test/data/indexeddb/transaction_get_test.js17
-rw-r--r--content/test/data/indexeddb/transaction_run_forever.js19
-rw-r--r--content/test/data/indexeddb/transaction_test.js19
-rw-r--r--content/test/data/indexeddb/value_size_test.js40
-rw-r--r--content/test/data/indexeddb/version_change_blocked.js53
-rw-r--r--content/test/data/indexeddb/version_change_crash.js46
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;
}