summaryrefslogtreecommitdiffstats
path: root/LayoutTests
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-08-27 11:02:25 +0100
committerSteve Block <steveblock@google.com>2010-09-02 17:17:20 +0100
commite8b154fd68f9b33be40a3590e58347f353835f5c (patch)
tree0733ce26384183245aaa5656af26c653636fe6c1 /LayoutTests
parentda56157816334089526a7a115a85fd85a6e9a1dc (diff)
downloadexternal_webkit-e8b154fd68f9b33be40a3590e58347f353835f5c.zip
external_webkit-e8b154fd68f9b33be40a3590e58347f353835f5c.tar.gz
external_webkit-e8b154fd68f9b33be40a3590e58347f353835f5c.tar.bz2
Merge WebKit at r66079 : Initial merge by git
Change-Id: Ie2e1440fb9d487d24e52c247342c076fecaecac7
Diffstat (limited to 'LayoutTests')
-rw-r--r--LayoutTests/dom/xhtml/level3/core/canonicalform06-expected.txt3
-rw-r--r--LayoutTests/dom/xhtml/level3/core/documentsetxmlversion01-expected.txt3
-rw-r--r--LayoutTests/dom/xhtml/level3/core/documentsetxmlversion03-expected.txt3
-rw-r--r--LayoutTests/dom/xhtml/level3/core/documentsetxmlversion05-expected.txt3
-rw-r--r--LayoutTests/dom/xhtml/level3/core/infoset06-expected.txt3
-rw-r--r--LayoutTests/dom/xhtml/level3/core/infoset07-expected.txt3
-rw-r--r--LayoutTests/dom/xhtml/level3/core/wellformed01-expected.txt3
-rw-r--r--LayoutTests/dom/xhtml/level3/core/wellformed02-expected.txt3
-rw-r--r--LayoutTests/dom/xhtml/level3/core/wellformed03-expected.txt3
-rw-r--r--LayoutTests/dom/xhtml/level3/core/wellformed04-expected.txt3
-rw-r--r--LayoutTests/storage/change-version-no-crash-on-preflight-failure-expected.txt3
-rw-r--r--LayoutTests/storage/change-version-no-crash-on-preflight-failure.html36
-rw-r--r--LayoutTests/storage/indexeddb/database-basics-expected.txt1
-rw-r--r--LayoutTests/storage/indexeddb/objectstore-removeobjectstore-expected.txt166
-rw-r--r--LayoutTests/storage/indexeddb/objectstore-removeobjectstore.html115
-rw-r--r--LayoutTests/storage/indexeddb/resources/shared.js20
-rw-r--r--LayoutTests/storage/indexeddb/script-tests/database-basics.js1
-rw-r--r--LayoutTests/storage/indexeddb/script-tests/database-description.js56
-rw-r--r--LayoutTests/storage/indexeddb/script-tests/objectstore-basics.js3
-rw-r--r--LayoutTests/storage/indexeddb/script-tests/open-cursor.js3
-rw-r--r--LayoutTests/storage/indexeddb/script-tests/transaction-basics.js47
-rw-r--r--LayoutTests/storage/indexeddb/transaction-basics-expected.txt (renamed from LayoutTests/storage/indexeddb/database-description-expected.txt)39
-rw-r--r--LayoutTests/storage/indexeddb/transaction-basics.html (renamed from LayoutTests/storage/indexeddb/database-description.html)2
23 files changed, 413 insertions, 109 deletions
diff --git a/LayoutTests/dom/xhtml/level3/core/canonicalform06-expected.txt b/LayoutTests/dom/xhtml/level3/core/canonicalform06-expected.txt
index 638218f..fcab69c 100644
--- a/LayoutTests/dom/xhtml/level3/core/canonicalform06-expected.txt
+++ b/LayoutTests/dom/xhtml/level3/core/canonicalform06-expected.txt
@@ -1,3 +1,2 @@
Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/canonicalform06
-Status error
-Message Error: INVALID_CHARACTER_ERR: DOM Exception 5
+Status Success
diff --git a/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion01-expected.txt b/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion01-expected.txt
index 433fffe..f3287c3 100644
--- a/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion01-expected.txt
+++ b/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion01-expected.txt
@@ -1,3 +1,2 @@
Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/documentsetxmlversion01
-Status failure
-Message NOT_SUPPORTED_ERR_documentsetversion01: assertTrue failed
+Status Success
diff --git a/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion03-expected.txt b/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion03-expected.txt
index 43b8785..410e075 100644
--- a/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion03-expected.txt
+++ b/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion03-expected.txt
@@ -1,2 +1,3 @@
Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/documentsetxmlversion03
-Status Success
+Status error
+Message Error: NOT_SUPPORTED_ERR: DOM Exception 9
diff --git a/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion05-expected.txt b/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion05-expected.txt
index 895671f..29e6b80 100644
--- a/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion05-expected.txt
+++ b/LayoutTests/dom/xhtml/level3/core/documentsetxmlversion05-expected.txt
@@ -1,3 +1,2 @@
Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/documentsetxmlversion05
-Status failure
-Message throw_NOT_SUPPORTED_ERR: assertTrue failed
+Status Success
diff --git a/LayoutTests/dom/xhtml/level3/core/infoset06-expected.txt b/LayoutTests/dom/xhtml/level3/core/infoset06-expected.txt
index ff8224e..ba42393 100644
--- a/LayoutTests/dom/xhtml/level3/core/infoset06-expected.txt
+++ b/LayoutTests/dom/xhtml/level3/core/infoset06-expected.txt
@@ -1,3 +1,2 @@
Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/infoset06
-Status error
-Message Error: INVALID_CHARACTER_ERR: DOM Exception 5
+Status Success
diff --git a/LayoutTests/dom/xhtml/level3/core/infoset07-expected.txt b/LayoutTests/dom/xhtml/level3/core/infoset07-expected.txt
index d13c99f..bb966c4 100644
--- a/LayoutTests/dom/xhtml/level3/core/infoset07-expected.txt
+++ b/LayoutTests/dom/xhtml/level3/core/infoset07-expected.txt
@@ -1,3 +1,2 @@
Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/infoset07
-Status error
-Message Error: INVALID_CHARACTER_ERR: DOM Exception 5
+Status Success
diff --git a/LayoutTests/dom/xhtml/level3/core/wellformed01-expected.txt b/LayoutTests/dom/xhtml/level3/core/wellformed01-expected.txt
index 3f1d8a4..f41d401 100644
--- a/LayoutTests/dom/xhtml/level3/core/wellformed01-expected.txt
+++ b/LayoutTests/dom/xhtml/level3/core/wellformed01-expected.txt
@@ -1,3 +1,2 @@
Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/wellformed01
-Status error
-Message Error: INVALID_CHARACTER_ERR: DOM Exception 5
+Status Success
diff --git a/LayoutTests/dom/xhtml/level3/core/wellformed02-expected.txt b/LayoutTests/dom/xhtml/level3/core/wellformed02-expected.txt
index f475595..2877cd0 100644
--- a/LayoutTests/dom/xhtml/level3/core/wellformed02-expected.txt
+++ b/LayoutTests/dom/xhtml/level3/core/wellformed02-expected.txt
@@ -1,3 +1,2 @@
Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/wellformed02
-Status error
-Message Error: INVALID_CHARACTER_ERR: DOM Exception 5
+Status Success
diff --git a/LayoutTests/dom/xhtml/level3/core/wellformed03-expected.txt b/LayoutTests/dom/xhtml/level3/core/wellformed03-expected.txt
index 8533c15..ab62919 100644
--- a/LayoutTests/dom/xhtml/level3/core/wellformed03-expected.txt
+++ b/LayoutTests/dom/xhtml/level3/core/wellformed03-expected.txt
@@ -1,3 +1,2 @@
Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/wellformed03
-Status error
-Message Error: INVALID_CHARACTER_ERR: DOM Exception 5
+Status Success
diff --git a/LayoutTests/dom/xhtml/level3/core/wellformed04-expected.txt b/LayoutTests/dom/xhtml/level3/core/wellformed04-expected.txt
index d2a8f9d..6a67db7 100644
--- a/LayoutTests/dom/xhtml/level3/core/wellformed04-expected.txt
+++ b/LayoutTests/dom/xhtml/level3/core/wellformed04-expected.txt
@@ -1,3 +1,2 @@
Test http://www.w3.org/2001/DOM-Test-Suite/level3/core/wellformed04
-Status error
-Message Error: INVALID_CHARACTER_ERR: DOM Exception 5
+Status Success
diff --git a/LayoutTests/storage/change-version-no-crash-on-preflight-failure-expected.txt b/LayoutTests/storage/change-version-no-crash-on-preflight-failure-expected.txt
new file mode 100644
index 0000000..bb0d549
--- /dev/null
+++ b/LayoutTests/storage/change-version-no-crash-on-preflight-failure-expected.txt
@@ -0,0 +1,3 @@
+This test verifies that no assertion is triggered when changeVersion()'s preflight step fails.
+PASS: db.changeVersion() failed as expected, and no assertions were triggered.
+
diff --git a/LayoutTests/storage/change-version-no-crash-on-preflight-failure.html b/LayoutTests/storage/change-version-no-crash-on-preflight-failure.html
new file mode 100644
index 0000000..2a512fb
--- /dev/null
+++ b/LayoutTests/storage/change-version-no-crash-on-preflight-failure.html
@@ -0,0 +1,36 @@
+<html>
+<head>
+<script>
+function finishTest()
+{
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+function log(message)
+{
+ document.getElementById("console").innerText += message + "\n";
+}
+
+function runTest() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+ }
+
+ var db = window.openDatabase("ChangeVersionFailureTest", "1", "Test the preflight step", 1024);
+ db.changeVersion("2", "3", null, function(error) {
+ log("PASS: db.changeVersion() failed as expected, and no assertions were triggered.");
+ finishTest();
+ }, function() {
+ log("FAIL: db.changeVersion() was expected to fail.");
+ finishTest();
+ });
+}
+</script>
+</head>
+<body onload="runTest();">
+This test verifies that no assertion is triggered when changeVersion()'s preflight step fails.
+<pre id="console"></pre>
+</body>
+</html>
diff --git a/LayoutTests/storage/indexeddb/database-basics-expected.txt b/LayoutTests/storage/indexeddb/database-basics-expected.txt
index ea869e0..75c276d 100644
--- a/LayoutTests/storage/indexeddb/database-basics-expected.txt
+++ b/LayoutTests/storage/indexeddb/database-basics-expected.txt
@@ -24,7 +24,6 @@ PASS event.target.readyState is event.target.DONE
db = event.result
PASS db.name is "name"
-PASS db.description is "description"
PASS db.version is ""
PASS db.objectStores is []
PASS db.objectStores.length is 0
diff --git a/LayoutTests/storage/indexeddb/objectstore-removeobjectstore-expected.txt b/LayoutTests/storage/indexeddb/objectstore-removeobjectstore-expected.txt
new file mode 100644
index 0000000..0a3d938
--- /dev/null
+++ b/LayoutTests/storage/indexeddb/objectstore-removeobjectstore-expected.txt
@@ -0,0 +1,166 @@
+Test IndexedDB's IDBObjectStore.removeObjectStore().
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+indexedDB.open('name', 'description')
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+db = event.result
+db.createObjectStore('storeName', null)
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+event.result.add('value', 'key')
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+event.source.get('key')
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+PASS event.result is "value"
+event.source.createIndex('indexName', '')
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+PASS event.source.indexNames.contains('indexName') is true
+db.removeObjectStore('storeName')
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+db.createObjectStore('storeName', null)
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+event.result.get('key')
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Error event fired:
+PASS 'result' in event is false
+PASS 'code' in event is true
+PASS 'message' in event is true
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+PASS event.code is 2
+PASS event.source.indexNames.contains('indexName') is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/storage/indexeddb/objectstore-removeobjectstore.html b/LayoutTests/storage/indexeddb/objectstore-removeobjectstore.html
new file mode 100644
index 0000000..e842f5b
--- /dev/null
+++ b/LayoutTests/storage/indexeddb/objectstore-removeobjectstore.html
@@ -0,0 +1,115 @@
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+<script src="../../fast/js/resources/js-test-post-function.js"></script>
+<script src="resources/shared.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script>
+
+description("Test IndexedDB's IDBObjectStore.removeObjectStore().");
+if (window.layoutTestController)
+ layoutTestController.waitUntilDone();
+
+function test()
+{
+ result = evalAndLog("indexedDB.open('name', 'description')");
+ verifyResult(result);
+ result.onsuccess = createObjectStore;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function createObjectStore()
+{
+ verifySuccessEvent(event);
+ db = evalAndLog("db = event.result");
+
+ deleteAllObjectStores(db);
+
+ result = evalAndLog("db.createObjectStore('storeName', null)");
+ verifyResult(result);
+ result.onsuccess = addValue;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function addValue()
+{
+ verifySuccessEvent(event);
+
+ result = evalAndLog("event.result.add('value', 'key')");
+ verifyResult(result);
+ result.onsuccess = getValue;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function getValue()
+{
+ verifySuccessEvent(event);
+
+ result = evalAndLog("event.source.get('key')");
+ verifyResult(result);
+ result.onsuccess = addIndex;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function addIndex()
+{
+ verifySuccessEvent(event);
+ shouldBeEqualToString("event.result", "value");
+
+ result = evalAndLog("event.source.createIndex('indexName', '')");
+ verifyResult(result);
+ result.onsuccess = removeObjectStore;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function removeObjectStore()
+{
+ verifySuccessEvent(event);
+ shouldBeTrue("event.source.indexNames.contains('indexName')");
+
+ result = evalAndLog("db.removeObjectStore('storeName')");
+ verifyResult(result);
+ result.onsuccess = createObjectStoreAgain;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function createObjectStoreAgain()
+{
+ verifySuccessEvent(event);
+
+ result = evalAndLog("db.createObjectStore('storeName', null)");
+ verifyResult(result);
+ result.onsuccess = getValueAgain;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function getValueAgain()
+{
+ verifySuccessEvent(event);
+
+ result = evalAndLog("event.result.get('key')");
+ verifyResult(result);
+ result.onsuccess = unexpectedSuccessCallback;
+ result.onerror = verifyError;
+}
+
+function verifyError()
+{
+ verifyErrorEvent(event);
+ // FIXME: Should just be IDBDatabaseException.NOT_FOUND_ERR but that doesn't work yet.
+ shouldBe("event.code", "2");
+ shouldBeFalse("event.source.indexNames.contains('indexName')");
+
+ done();
+}
+
+test();
+
+var successfullyParsed = true;
+</script>
+</body>
+</html>
diff --git a/LayoutTests/storage/indexeddb/resources/shared.js b/LayoutTests/storage/indexeddb/resources/shared.js
index e510be1..112bf18 100644
--- a/LayoutTests/storage/indexeddb/resources/shared.js
+++ b/LayoutTests/storage/indexeddb/resources/shared.js
@@ -35,6 +35,12 @@ function verifySuccessEvent(event)
verifyEventCommon(event);
}
+function verifyAbortEvent(event)
+{
+ debug("Abort event fired:");
+ shouldBeEqualToString("event.type", "abort");
+}
+
function verifyResult(result)
{
shouldBeTrue("'onsuccess' in result");
@@ -45,6 +51,14 @@ function verifyResult(result)
debug("");
}
+function unexpectedSuccessCallback()
+{
+ testFailed("Success function called unexpectedly.");
+ debug("");
+ verifySuccessEvent(event);
+ done();
+}
+
function unexpectedErrorCallback()
{
testFailed("Error function called unexpectedly: (" + event.code + ") " + event.message);
@@ -53,3 +67,9 @@ function unexpectedErrorCallback()
done();
}
+function deleteAllObjectStores(db)
+{
+ objectStores = db.objectStores;
+ for (var i = 0; i < objectStores.length; ++i)
+ db.removeObjectStore(objectStores[i]);
+}
diff --git a/LayoutTests/storage/indexeddb/script-tests/database-basics.js b/LayoutTests/storage/indexeddb/script-tests/database-basics.js
index a317b71..a07c684 100644
--- a/LayoutTests/storage/indexeddb/script-tests/database-basics.js
+++ b/LayoutTests/storage/indexeddb/script-tests/database-basics.js
@@ -8,7 +8,6 @@ function openSuccess()
var db = evalAndLog("db = event.result");
shouldBeEqualToString("db.name", "name");
- shouldBeEqualToString("db.description", "description");
shouldBeEqualToString("db.version", "");
shouldBe("db.objectStores", "[]");
shouldBe("db.objectStores.length", "0");
diff --git a/LayoutTests/storage/indexeddb/script-tests/database-description.js b/LayoutTests/storage/indexeddb/script-tests/database-description.js
deleted file mode 100644
index bb4acba..0000000
--- a/LayoutTests/storage/indexeddb/script-tests/database-description.js
+++ /dev/null
@@ -1,56 +0,0 @@
-description("Test IDBFactory.open's description parameter.");
-if (window.layoutTestController)
- layoutTestController.waitUntilDone();
-
-function test()
-{
- shouldBeTrue("'indexedDB' in window");
- shouldBeFalse("indexedDB == null");
-
- result = evalAndLog("indexedDB.open('abcd', 'first')");
- verifyResult(result);
- result.onsuccess = firstSuccess;
- result.onerror = unexpectedErrorCallback;
-}
-
-function firstSuccess()
-{
- verifySuccessEvent(event);
- window.firstDB = event.result;
-
- shouldBeEqualToString('event.result.description', 'first');
-
- result = evalAndLog("indexedDB.open('abcd', 'second')");
- verifyResult(result);
- result.onsuccess = secondSuccess;
- result.onerror = unexpectedErrorCallback;
-}
-
-function secondSuccess()
-{
- verifySuccessEvent(event);
- window.secondDB = event.result;
-
- shouldBeEqualToString('firstDB.description', 'first');
- shouldBeEqualToString('secondDB.description', 'second');
-
- result = evalAndLog("indexedDB.open('abcd')");
- verifyResult(result);
- result.onsuccess = thirdSuccess;
- result.onerror = unexpectedErrorCallback;
-}
-
-function thirdSuccess()
-{
- verifySuccessEvent(event);
-
- shouldBeEqualToString('firstDB.description', 'first');
- shouldBeEqualToString('secondDB.description', 'second');
- shouldBeEqualToString('event.result.description', 'second');
-
- done();
-}
-
-test();
-
-var successfullyParsed = true;
diff --git a/LayoutTests/storage/indexeddb/script-tests/objectstore-basics.js b/LayoutTests/storage/indexeddb/script-tests/objectstore-basics.js
index 9869579..63675ad 100644
--- a/LayoutTests/storage/indexeddb/script-tests/objectstore-basics.js
+++ b/LayoutTests/storage/indexeddb/script-tests/objectstore-basics.js
@@ -16,8 +16,7 @@ function openSuccess()
verifySuccessEvent(event);
db = evalAndLog("db = event.result");
- // FIXME: remove any previously created object stores.
- // This requires IDBDatabaseRequest::removeObjectStore to be implemented.
+ deleteAllObjectStores(db);
result = evalAndLog("db.createObjectStore('storeName', null)");
verifyResult(result);
diff --git a/LayoutTests/storage/indexeddb/script-tests/open-cursor.js b/LayoutTests/storage/indexeddb/script-tests/open-cursor.js
index e3c615c..ff0b711 100644
--- a/LayoutTests/storage/indexeddb/script-tests/open-cursor.js
+++ b/LayoutTests/storage/indexeddb/script-tests/open-cursor.js
@@ -60,6 +60,9 @@ function openSuccess()
{
verifySuccessEvent(event);
var db = evalAndLog("db = event.result");
+
+ deleteAllObjectStores(db);
+
result = evalAndLog("db.createObjectStore('test')");
verifyResult(result);
result.onsuccess = createObjectStoreSuccess;
diff --git a/LayoutTests/storage/indexeddb/script-tests/transaction-basics.js b/LayoutTests/storage/indexeddb/script-tests/transaction-basics.js
new file mode 100644
index 0000000..58ac2a7
--- /dev/null
+++ b/LayoutTests/storage/indexeddb/script-tests/transaction-basics.js
@@ -0,0 +1,47 @@
+description("Test IndexedDB transaction basics.");
+if (window.layoutTestController)
+ layoutTestController.waitUntilDone();
+
+function test()
+{
+ shouldBeTrue("'indexedDB' in window");
+ shouldBeFalse("indexedDB == null");
+
+ result = evalAndLog("indexedDB.open('name', 'description')");
+ verifyResult(result);
+ result.onsuccess = openSuccess;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function openSuccess()
+{
+ debug("createObjectStoreCallback():");
+ verifySuccessEvent(event);
+ db = evalAndLog("db = event.result");
+
+ deleteAllObjectStores(db);
+
+ result = evalAndLog("db.createObjectStore('storeName', null)");
+ verifyResult(result);
+ result.onsuccess = createSuccess;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function createSuccess()
+{
+ verifySuccessEvent(event);
+ transaction = evalAndLog("db.transaction()");
+ transaction.onabort = abortCallback;
+ var store = evalAndLog("store = transaction.objectStore('storeName')");
+ shouldBeEqualToString("store.name", "storeName");
+}
+
+function abortCallback()
+{
+ verifyAbortEvent(event);
+ done();
+}
+
+test();
+
+var successfullyParsed = true;
diff --git a/LayoutTests/storage/indexeddb/database-description-expected.txt b/LayoutTests/storage/indexeddb/transaction-basics-expected.txt
index c90d33d..25d0694 100644
--- a/LayoutTests/storage/indexeddb/database-description-expected.txt
+++ b/LayoutTests/storage/indexeddb/transaction-basics-expected.txt
@@ -1,17 +1,18 @@
-Test IDBFactory.open's description parameter.
+Test IndexedDB transaction basics.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS 'indexedDB' in window is true
PASS indexedDB == null is false
-indexedDB.open('abcd', 'first')
+indexedDB.open('name', 'description')
PASS 'onsuccess' in result is true
PASS 'onerror' in result is true
PASS 'abort' in result is true
PASS 'readyState' in result is true
An event should fire shortly...
+createObjectStoreCallback():
Success event fired:
PASS 'result' in event is true
PASS 'code' in event is false
@@ -24,8 +25,8 @@ PASS 'abort' in event.target is true
PASS 'readyState' in event.target is true
PASS event.target.readyState is event.target.DONE
-PASS event.result.description is "first"
-indexedDB.open('abcd', 'second')
+db = event.result
+db.createObjectStore('storeName', null)
PASS 'onsuccess' in result is true
PASS 'onerror' in result is true
PASS 'abort' in result is true
@@ -44,31 +45,11 @@ PASS 'abort' in event.target is true
PASS 'readyState' in event.target is true
PASS event.target.readyState is event.target.DONE
-PASS firstDB.description is "first"
-PASS secondDB.description is "second"
-indexedDB.open('abcd')
-PASS 'onsuccess' in result is true
-PASS 'onerror' in result is true
-PASS 'abort' in result is true
-PASS 'readyState' in result is true
-An event should fire shortly...
-
-Success event fired:
-PASS 'result' in event is true
-PASS 'code' in event is false
-PASS 'message' in event is false
-PASS 'source' in event is true
-PASS event.source != null is true
-PASS 'onsuccess' in event.target is true
-PASS 'onerror' in event.target is true
-PASS 'abort' in event.target is true
-PASS 'readyState' in event.target is true
-PASS event.target.readyState is event.target.DONE
-
-PASS firstDB.description is "first"
-PASS secondDB.description is "second"
-PASS event.result.description is "second"
+db.transaction()
+store = transaction.objectStore('storeName')
+PASS store.name is "storeName"
+Abort event fired:
+PASS event.type is "abort"
PASS successfullyParsed is true
TEST COMPLETE
-
diff --git a/LayoutTests/storage/indexeddb/database-description.html b/LayoutTests/storage/indexeddb/transaction-basics.html
index ca6a4d6..a7238f6 100644
--- a/LayoutTests/storage/indexeddb/database-description.html
+++ b/LayoutTests/storage/indexeddb/transaction-basics.html
@@ -8,6 +8,6 @@
<body>
<p id="description"></p>
<div id="console"></div>
-<script src="script-tests/database-description.js"></script>
+<script src="script-tests/transaction-basics.js"></script>
</body>
</html>