Title: [134844] trunk/LayoutTests
Revision
134844
Author
[email protected]
Date
2012-11-15 16:10:21 -0800 (Thu, 15 Nov 2012)

Log Message

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):

Modified Paths

Diff

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();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to