Modified: trunk/LayoutTests/ChangeLog (134843 => 134844)
--- trunk/LayoutTests/ChangeLog 2012-11-15 23:46:07 UTC (rev 134843)
+++ trunk/LayoutTests/ChangeLog 2012-11-16 00:10:21 UTC (rev 134844)
@@ -1,3 +1,30 @@
+2012-11-15 David Grogan <[email protected]>
+
+ IndexedDB: remove setVersion from intversion-long-queue
+ https://bugs.webkit.org/show_bug.cgi?id=102322
+
+ Reviewed by Tony Chang.
+
+ This test probably doesn't provide as much value as it used to but
+ tests like this, where there's a long sequence of interdependent
+ events, have caught stuff for us in the past. There are endless
+ variants that will all exercise our code differently.
+
+ * storage/indexeddb/intversion-long-queue-expected.txt:
+ * storage/indexeddb/resources/intversion-long-queue.js:
+ (prepareDatabase):
+ (connection1Success):
+ (connection1VersionChangeCallback):
+ (connection2Blocked):
+ (deleteDatabaseBlockedCallback):
+ (deleteDatabaseSuccessCallback):
+ (connection2UpgradeNeeded):
+ (connection2Success):
+ (connection2TransactionComplete):
+ (connection2VersionChangeEvent):
+ (connection3UpgradeNeeded):
+ (connection3Success):
+
2012-11-15 Roger Fong <[email protected]>
Unreviewed. More subpixel layout test rebaselines for Windows.
Modified: trunk/LayoutTests/storage/indexeddb/intversion-long-queue-expected.txt (134843 => 134844)
--- trunk/LayoutTests/storage/indexeddb/intversion-long-queue-expected.txt 2012-11-15 23:46:07 UTC (rev 134843)
+++ trunk/LayoutTests/storage/indexeddb/intversion-long-queue-expected.txt 2012-11-16 00:10:21 UTC (rev 134844)
@@ -1,5 +1,4 @@
-CONSOLE MESSAGE: The setVersion() method is non-standard and will be removed. Use the "upgradeneeded" event instead.
-Test that a database is recreated correctly when an open-with-version call is queued behind both a deleteDatabase and setVersion call
+Test that a database is recreated correctly when an open-with-version call is queued behind both a deleteDatabase and an open-with-version call
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -8,72 +7,78 @@
dbname = "intversion-long-queue.html"
indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
-deleteSuccess():
-request = indexedDB.open(dbname)
-request._onsuccess_ = firstSuccessCallback
+prepareDatabase():
+db = event.target.result
-firstSuccessCallback():
+connection1Success():
connection1 = event.target.result
+PASS db is connection1
connection1._onversionchange_ = connection1VersionChangeCallback
-request = indexedDB.open(dbname)
-request._onsuccess_ = secondSuccessCallback
+request = indexedDB.open(dbname, 2)
+request._onsuccess_ = connection2Success
+request._onupgradeneeded_ = connection2UpgradeNeeded
+request._onblocked_ = connection2Blocked
-secondSuccessCallback():
-connection2 = event.target.result
-connection2._onversionchange_ = connection2VersionChangeCallback
-request = connection2.setVersion('version 2')
-request._onblocked_ = setVersionBlockedCallback
-request._onsuccess_ = setVersionSuccessCallback
-
connection1VersionChangeCallback():
PASS event.type is "versionchange"
-PASS event.version is "version 2"
+PASS event.oldVersion is 1
+PASS event.newVersion is 2
+PASS event.version is undefined.
-setVersionBlockedCallback():
+connection2Blocked():
request = indexedDB.deleteDatabase(dbname)
request._onblocked_ = deleteDatabaseBlockedCallback
request._onsuccess_ = deleteDatabaseSuccessCallback
-request = indexedDB.open(dbname, 1)
-request._onupgradeneeded_ = upgradeNeededCallback
-request._onsuccess_ = openWithVersionSuccessCallback
+request = indexedDB.open(dbname, 3)
+request._onupgradeneeded_ = connection3UpgradeNeeded
+request._onsuccess_ = connection3Success
connection1.close()
-setVersionSuccessCallback():
-transaction = event.target.result
-db = transaction.db
-db.createObjectStore('some object store')
-transaction._oncomplete_ = setVersionTransactionCompleteCallback
-
-setVersionTransactionCompleteCallback():
-PASS event.target.db.version is "version 2"
-
-connection2VersionChangeCallback():
-PASS event.type is "versionchange"
-FIXME: Fire a versionchange event that has oldVersion and newVersion
-FAIL event.oldVersion should be version 2 (of type string). Was undefined (of type undefined).
-FAIL event.newVersion should be null (of type object). Was undefined (of type undefined).
-FAIL event.version should be undefined. Was
-
deleteDatabaseBlockedCallback():
-connection2.close()
-FAIL event.oldVersion should be version 2 (of type string). Was undefined (of type undefined).
+FIXME: http://crbug.com/153122
+FAIL event.oldVersion should be 1 (of type number). Was undefined (of type undefined).
FAIL event.newVersion should be null (of type object). Was undefined (of type undefined).
FAIL event.version should be undefined. Was
deleteDatabaseSuccessCallback():
-FAIL event.oldVersion should be non-null. Was undefined
+PASS event.target.result is undefined.
+FIXME: http://crbug.com/153122
+FAIL event.oldVersion should be 1 (of type number). Was undefined (of type undefined).
FAIL event.newVersion should be null (of type object). Was undefined (of type undefined).
-PASS event.target.result is undefined.
-upgradeNeededCallback():
-gotUpgradeNeededEvent = true
-PASS event.newVersion is 1
+connection2UpgradeNeeded():
PASS event.oldVersion is 0
+PASS event.newVersion is 2
+db = event.target.result
+PASS db.objectStoreNames.length is 0
+db.createObjectStore('some object store')
+transaction = event.target.transaction
+transaction._oncomplete_ = connection2TransactionComplete
-openWithVersionSuccessCallback():
+connection2TransactionComplete():
+PASS db.version is 2
+
+connection2Success():
+connection2 = event.target.result
+connection2._onversionchange_ = connection2VersionChangeEvent
+
+connection2VersionChangeEvent():
+PASS event.type is "versionchange"
+PASS event.oldVersion is 2
+PASS event.newVersion is 3
+PASS event.version is undefined.
+connection2.close()
+
+connection3UpgradeNeeded():
+gotUpgradeNeededEvent = true
+PASS event.newVersion is 3
+PASS event.oldVersion is 2
+
+connection3Success():
PASS gotUpgradeNeededEvent is true
-PASS event.target.result.objectStoreNames.length is 0
+PASS event.target.result.objectStoreNames.length is 1
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/storage/indexeddb/resources/intversion-long-queue.js (134843 => 134844)
--- trunk/LayoutTests/storage/indexeddb/resources/intversion-long-queue.js 2012-11-15 23:46:07 UTC (rev 134843)
+++ trunk/LayoutTests/storage/indexeddb/resources/intversion-long-queue.js 2012-11-16 00:10:21 UTC (rev 134844)
@@ -3,130 +3,118 @@
importScripts('shared.js');
}
-description("Test that a database is recreated correctly when an open-with-version call is queued behind both a deleteDatabase and setVersion call");
+description("Test that a database is recreated correctly when an open-with-version call is queued behind both a deleteDatabase and an open-with-version call");
-function test()
+indexedDBTest(prepareDatabase, connection1Success);
+function prepareDatabase(evt)
{
- removeVendorPrefixes();
- setDBNameFromPath();
- request = evalAndLog("indexedDB.deleteDatabase(dbname)");
- request._onsuccess_ = deleteSuccess;
- request._onerror_ = unexpectedErrorCallback;
-}
-
-function deleteSuccess(evt) {
preamble(evt);
- evalAndLog("request = indexedDB.open(dbname)");
- evalAndLog("request._onsuccess_ = firstSuccessCallback");
- request._onerror_ = unexpectedErrorCallback;
- request._onblocked_ = unexpectedBlockedCallback;
+ evalAndLog("db = event.target.result");
}
-function firstSuccessCallback(evt)
+function connection1Success(evt)
{
preamble(evt);
evalAndLog("connection1 = event.target.result");
+ shouldBe("db", "connection1");
evalAndLog("connection1._onversionchange_ = connection1VersionChangeCallback");
- evalAndLog("request = indexedDB.open(dbname)");
- evalAndLog("request._onsuccess_ = secondSuccessCallback");
+ evalAndLog("request = indexedDB.open(dbname, 2)");
+ evalAndLog("request._onsuccess_ = connection2Success");
+ evalAndLog("request._onupgradeneeded_ = connection2UpgradeNeeded");
+ evalAndLog("request._onblocked_ = connection2Blocked");
request._onerror_ = unexpectedErrorCallback;
- request._onblocked_ = unexpectedBlockedCallback;
}
-function secondSuccessCallback(evt)
-{
- preamble(evt);
- evalAndLog("connection2 = event.target.result");
- evalAndLog("connection2._onversionchange_ = connection2VersionChangeCallback");
- evalAndLog("request = connection2.setVersion('version 2')");
- evalAndLog("request._onblocked_ = setVersionBlockedCallback");
- evalAndLog("request._onsuccess_ = setVersionSuccessCallback");
- request._onerror_ = unexpectedErrorCallback;
-}
-
function connection1VersionChangeCallback(evt)
{
preamble(evt);
shouldBeEqualToString("event.type", "versionchange");
- shouldBeEqualToString("event.version", "version 2");
+ shouldBe("event.oldVersion", "1");
+ shouldBe("event.newVersion", "2");
+ shouldBeUndefined("event.version");
}
-function setVersionBlockedCallback(evt)
+function connection2Blocked(evt)
{
- event = evt;
- debug("");
- debug("setVersionBlockedCallback():");
+ preamble(evt);
evalAndLog("request = indexedDB.deleteDatabase(dbname)");
evalAndLog("request._onblocked_ = deleteDatabaseBlockedCallback");
evalAndLog("request._onsuccess_ = deleteDatabaseSuccessCallback");
request._onerror_ = unexpectedErrorCallback;
- evalAndLog("request = indexedDB.open(dbname, 1)");
- evalAndLog("request._onupgradeneeded_ = upgradeNeededCallback");
- evalAndLog("request._onsuccess_ = openWithVersionSuccessCallback");
- request._onblocked_ = unexpectedBlockedCallback;
+ evalAndLog("request = indexedDB.open(dbname, 3)");
+ evalAndLog("request._onupgradeneeded_ = connection3UpgradeNeeded");
+ evalAndLog("request._onsuccess_ = connection3Success");
request._onerror_ = unexpectedErrorCallback;
evalAndLog("connection1.close()");
}
-function setVersionSuccessCallback(evt)
+function deleteDatabaseBlockedCallback(evt)
{
preamble(evt);
- evalAndLog("transaction = event.target.result");
- evalAndLog("db = transaction.db");
- evalAndLog("db.createObjectStore('some object store')");
- evalAndLog("transaction._oncomplete_ = setVersionTransactionCompleteCallback");
- transaction._onabort_ = unexpectedAbortCallback;
+ debug("FIXME: http://crbug.com/153122");
+ shouldBe("event.oldVersion", "1");
+ shouldBeNull("event.newVersion");
+ shouldBeUndefined("event.version");
}
-function setVersionTransactionCompleteCallback(evt)
+function deleteDatabaseSuccessCallback(evt)
{
preamble(evt);
- shouldBeEqualToString("event.target.db.version", "version 2");
+ shouldBeUndefined("event.target.result");
+ debug("FIXME: http://crbug.com/153122");
+ shouldBe("event.oldVersion", "1");
+ shouldBeNull("event.newVersion");
}
-function connection2VersionChangeCallback(evt)
+function connection2UpgradeNeeded(evt)
{
preamble(evt);
- shouldBeEqualToString("event.type", "versionchange");
- debug("FIXME: Fire a versionchange event that has oldVersion and newVersion");
- shouldBeEqualToString("event.oldVersion", "version 2");
- shouldBeNull("event.newVersion");
- shouldBeUndefined("event.version");
+ shouldBe("event.oldVersion", "0");
+ shouldBe("event.newVersion", "2");
+ evalAndLog("db = event.target.result");
+ shouldBe("db.objectStoreNames.length", "0");
+ evalAndLog("db.createObjectStore('some object store')");
+ evalAndLog("transaction = event.target.transaction");
+ evalAndLog("transaction._oncomplete_ = connection2TransactionComplete");
}
-function deleteDatabaseBlockedCallback(evt)
+function connection2Success(evt)
{
preamble(evt);
- evalAndLog("connection2.close()");
- shouldBeEqualToString("event.oldVersion", "version 2");
- shouldBeNull("event.newVersion");
- shouldBeUndefined("event.version");
+ evalAndLog("connection2 = event.target.result");
+ evalAndLog("connection2._onversionchange_ = connection2VersionChangeEvent");
}
-function deleteDatabaseSuccessCallback(evt)
+function connection2TransactionComplete(evt)
{
preamble(evt);
- shouldBeNonNull("event.oldVersion");
- shouldBeNull("event.newVersion");
- shouldBeUndefined("event.target.result");
+ shouldBe("db.version", "2");
}
+function connection2VersionChangeEvent(evt)
+{
+ preamble(evt);
+ shouldBeEqualToString("event.type", "versionchange");
+ shouldBe("event.oldVersion", "2");
+ shouldBe("event.newVersion", "3");
+ shouldBeUndefined("event.version");
+ evalAndLog("connection2.close()");
+}
+
var gotUpgradeNeededEvent = false;
-function upgradeNeededCallback(evt)
+function connection3UpgradeNeeded(evt)
{
preamble(evt);
evalAndLog("gotUpgradeNeededEvent = true");
- shouldBe("event.newVersion", "1");
- shouldBe("event.oldVersion", "0");
+ shouldBe("event.newVersion", "3");
+ shouldBe("event.oldVersion", "2");
}
-function openWithVersionSuccessCallback(evt)
+function connection3Success(evt)
{
preamble(evt);
shouldBeTrue("gotUpgradeNeededEvent");
- shouldBe("event.target.result.objectStoreNames.length", "0");
+ shouldBe("event.target.result.objectStoreNames.length", "1");
finishJSTest();
}
-
-test();