[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
dumi at chromium.org
dumi at chromium.org
Wed Dec 22 14:33:00 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 96f5be40598560b38f347a9b82e453487cd3bc4c
Author: dumi at chromium.org <dumi at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Oct 13 01:23:17 2010 +0000
Adding a test that makes sure the same database can be simultaneously accessed from workers and the page.
Reviewed by David Levin.
* fast/workers/storage/resources/use-same-database-in-page-and-workers.js: Added.
* fast/workers/storage/use-same-database-in-page-and-workers-expected.txt: Added.
* fast/workers/storage/use-same-database-in-page-and-workers.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 5d785ed..46260c8 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2010-09-30 Dumitru Daniliuc <dumi at chromium.org>
+
+ Reviewed by David Levin.
+
+ Adding a test that makes sure the same database can be simultaneously accessed from workers and the page.
+
+ * fast/workers/storage/resources/use-same-database-in-page-and-workers.js: Added.
+ * fast/workers/storage/use-same-database-in-page-and-workers-expected.txt: Added.
+ * fast/workers/storage/use-same-database-in-page-and-workers.html: Added.
+
2010-10-12 Martin Robinson <mrobinson at igalia.com>
Unskip a test which is now passing.
diff --git a/LayoutTests/fast/workers/storage/resources/use-same-database-in-page-and-workers.js b/LayoutTests/fast/workers/storage/resources/use-same-database-in-page-and-workers.js
new file mode 100644
index 0000000..e73f280
--- /dev/null
+++ b/LayoutTests/fast/workers/storage/resources/use-same-database-in-page-and-workers.js
@@ -0,0 +1,8 @@
+var db = openDatabase("UseSameDatabaseInPageAndWorkers", "", "", 1);
+for (var i = 0; i < 100; i++) {
+ db.transaction(function(tx) {
+ tx.executeSql("INSERT INTO Test VALUES (?)", [i], null,
+ function(tx, error) { postMessage(error.message); });
+ }, function(error) { postMessage(error.message); },
+ function() { postMessage("transactionSuccessful"); });
+}
diff --git a/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers-expected.txt b/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers-expected.txt
new file mode 100644
index 0000000..0e4c7db
--- /dev/null
+++ b/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers-expected.txt
@@ -0,0 +1,3 @@
+Test that we can successfully use the same database in the page and in multiple workers at the same time.
+PASS
+
diff --git a/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers.html b/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers.html
new file mode 100644
index 0000000..384aaa6
--- /dev/null
+++ b/LayoutTests/fast/workers/storage/use-same-database-in-page-and-workers.html
@@ -0,0 +1,88 @@
+<html>
+<head>
+<script>
+function finishTest()
+{
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+function log(message)
+{
+ document.getElementById("console").innerHTML += message + "<br>";
+}
+
+function runTest()
+{
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+ }
+
+ var db = openDatabase("UseSameDatabaseInPageAndWorkers", "", "", 1);
+ db.transaction(function(tx) {
+ tx.executeSql("CREATE TABLE IF NOT EXISTS Test(Foo INT)", [],
+ function(tx, data) {
+ startWorkers();
+ insertData(db);
+ }, function(tx, error) {
+ log("Creating table Test failed: " + error.message);
+ finishTest();
+ });
+ });
+}
+
+var successfulTransactions = 0
+var WORKER_COUNT = 3;
+function startWorkers()
+{
+ var databaseWorkers = new Array(WORKER_COUNT);
+ for (var i = 0; i < WORKER_COUNT; i++) {
+ databaseWorkers[i] = new Worker('resources/use-same-database-in-page-and-workers.js');
+ databaseWorkers[i].onerror = function(event) {
+ log("Caught an error from a worker: " + event.data);
+ finishTest();
+ }
+ databaseWorkers[i].onmessage = function(event) {
+ if (event.data == "transactionSuccessful")
+ successCallback();
+ else
+ log("Unexpected worker message: " + event.data);
+ }
+ }
+}
+
+function successCallback()
+{
+ successfulTransactions++;
+ if (successfulTransactions == 100 * (WORKER_COUNT + 1)) {
+ log("PASS");
+ finishTest();
+ }
+}
+
+function errorCallback(error)
+{
+ log("executeSql failed: " + error.message);
+ finishTest();
+}
+
+function insertData(db)
+{
+ for (var i = 0; i < 100; i++) {
+ db.transaction(function(tx) {
+ tx.executeSql("INSERT INTO Test VALUES (?)", [i], null,
+ function(tx, error) { errorCallback(error); });
+ }, errorCallback, successCallback);
+ }
+}
+</script>
+</head>
+
+<body onload="runTest()">
+Test that we can successfully use the same database in the page and in multiple workers at the same time.
+<pre id="console">
+</pre>
+</body>
+
+</html>
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list