Title: [109828] trunk/LayoutTests
- Revision
- 109828
- Author
- [email protected]
- Date
- 2012-03-05 17:41:54 -0800 (Mon, 05 Mar 2012)
Log Message
Basic IndexedDB shared worker test
https://bugs.webkit.org/show_bug.cgi?id=80189
Reviewed by Tony Chang.
* fast/js/resources/js-test-pre.js:
(startWorker.worker.port.onmessage):
* platform/chromium/test_expectations.txt:
* storage/indexeddb/basics-shared-workers-expected.txt: Added.
* storage/indexeddb/basics-shared-workers.html: Added.
* storage/indexeddb/resources/shared.js:
(.self.postMessage):
(.self.onconnect.self.postMessage):
(.self.onconnect):
(done):
(unexpectedErrorCallback):
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (109827 => 109828)
--- trunk/LayoutTests/ChangeLog 2012-03-06 01:38:58 UTC (rev 109827)
+++ trunk/LayoutTests/ChangeLog 2012-03-06 01:41:54 UTC (rev 109828)
@@ -1,3 +1,22 @@
+2012-03-05 David Grogan <[email protected]>
+
+ Basic IndexedDB shared worker test
+ https://bugs.webkit.org/show_bug.cgi?id=80189
+
+ Reviewed by Tony Chang.
+
+ * fast/js/resources/js-test-pre.js:
+ (startWorker.worker.port.onmessage):
+ * platform/chromium/test_expectations.txt:
+ * storage/indexeddb/basics-shared-workers-expected.txt: Added.
+ * storage/indexeddb/basics-shared-workers.html: Added.
+ * storage/indexeddb/resources/shared.js:
+ (.self.postMessage):
+ (.self.onconnect.self.postMessage):
+ (.self.onconnect):
+ (done):
+ (unexpectedErrorCallback):
+
2012-03-05 Gavin Barraclough <[email protected]>
putByIndex should throw in strict mode
Modified: trunk/LayoutTests/fast/js/resources/js-test-pre.js (109827 => 109828)
--- trunk/LayoutTests/fast/js/resources/js-test-pre.js 2012-03-06 01:38:58 UTC (rev 109827)
+++ trunk/LayoutTests/fast/js/resources/js-test-pre.js 2012-03-06 01:41:54 UTC (rev 109828)
@@ -467,11 +467,13 @@
layoutTestController.notifyDone();
}
-function startWorker(testScriptURL)
+function startWorker(testScriptURL, shared)
{
self.jsTestIsAsync = true;
debug('Starting worker: ' + testScriptURL);
- var worker = new Worker(testScriptURL);
+ var worker = shared ? new SharedWorker(testScriptURL) : new Worker(testScriptURL);
+ if (shared)
+ worker.port._onmessage_ = function(event) { worker.onmessage(event); };
worker._onmessage_ = function(event)
{
var workerPrefix = "[Worker] ";
Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (109827 => 109828)
--- trunk/LayoutTests/platform/chromium/test_expectations.txt 2012-03-06 01:38:58 UTC (rev 109827)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt 2012-03-06 01:41:54 UTC (rev 109828)
@@ -195,6 +195,7 @@
WONTFIX SKIP : http/tests/inspector/network/network-shared-worker.html = PASS TIMEOUT FAIL
WONTFIX SKIP : http/tests/security/contentSecurityPolicy/shared-worker-connect-src-allowed.html = TEXT
WONTFIX SKIP : http/tests/security/contentSecurityPolicy/shared-worker-connect-src-blocked.html = TEXT
+WONTFIX SKIP : storage/indexeddb/basics-shared-workers.html = PASS TIMEOUT FAIL
// test_shell does not support message ports
BUGWK74459 SKIP : fast/workers/termination-with-port-messages.html = CRASH
Added: trunk/LayoutTests/storage/indexeddb/basics-shared-workers-expected.txt (0 => 109828)
--- trunk/LayoutTests/storage/indexeddb/basics-shared-workers-expected.txt (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/basics-shared-workers-expected.txt 2012-03-06 01:41:54 UTC (rev 109828)
@@ -0,0 +1,55 @@
+[Worker] Test IndexedDB's basics.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Starting worker: resources/basics.js
+PASS [Worker] 'webkitIndexedDB' in self is true
+PASS [Worker] webkitIndexedDB == null is false
+PASS [Worker] 'webkitIDBCursor' in self is true
+PASS [Worker] webkitIDBCursor == null is false
+[Worker] webkitIndexedDB.open('basics')
+PASS [Worker] 'result' in request is true
+[Worker] Expecting exception from request.result
+PASS [Worker] Exception was thrown.
+PASS [Worker] code is webkitIDBDatabaseException.NOT_ALLOWED_ERR
+PASS [Worker] 'errorCode' in request is true
+[Worker] Expecting exception from request.errorCode
+PASS [Worker] Exception was thrown.
+PASS [Worker] code is webkitIDBDatabaseException.NOT_ALLOWED_ERR
+PASS [Worker] 'webkitErrorMessage' in request is true
+[Worker] Expecting exception from request.webkitErrorMessage
+PASS [Worker] Exception was thrown.
+PASS [Worker] code is webkitIDBDatabaseException.NOT_ALLOWED_ERR
+PASS [Worker] 'source' in request is true
+PASS [Worker] request.source is webkitIndexedDB
+PASS [Worker] 'transaction' in request is true
+PASS [Worker] request.transaction is null
+PASS [Worker] 'readyState' in request is true
+PASS [Worker] request.readyState is webkitIDBRequest.LOADING
+PASS [Worker] 'onsuccess' in request is true
+PASS [Worker] request.onsuccess is null
+PASS [Worker] 'onerror' in request is true
+PASS [Worker] request.onerror is null
+PASS [Worker] request.LOADING is 1
+PASS [Worker] request.DONE is 2
+PASS [Worker] 'result' in event.target is true
+PASS [Worker] !!event.target.result is true
+PASS [Worker] 'errorCode' in event.target is true
+PASS [Worker] event.target.errorCode is 0
+PASS [Worker] 'webkitErrorMessage' in event.target is true
+PASS [Worker] event.target.webkitErrorMessage is undefined.
+PASS [Worker] 'source' in event.target is true
+PASS [Worker] request.source is webkitIndexedDB
+PASS [Worker] 'transaction' in event.target is true
+PASS [Worker] event.target.transaction is null
+PASS [Worker] 'readyState' in request is true
+PASS [Worker] event.target.readyState is webkitIDBRequest.DONE
+PASS [Worker] 'onsuccess' in event.target is true
+PASS [Worker] 'onerror' in event.target is true
+PASS [Worker] event.target.LOADING is 1
+PASS [Worker] event.target.DONE is 2
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/storage/indexeddb/basics-shared-workers.html (0 => 109828)
--- trunk/LayoutTests/storage/indexeddb/basics-shared-workers.html (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/basics-shared-workers.html 2012-03-06 01:41:54 UTC (rev 109828)
@@ -0,0 +1,12 @@
+<html>
+<head>
+<script src=""
+<script src=""
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script>startWorker('resources/basics.js', true /*shared*/);</script>
+<script src=""
+</body>
+</html>
Modified: trunk/LayoutTests/storage/indexeddb/resources/shared.js (109827 => 109828)
--- trunk/LayoutTests/storage/indexeddb/resources/shared.js 2012-03-06 01:38:58 UTC (rev 109827)
+++ trunk/LayoutTests/storage/indexeddb/resources/shared.js 2012-03-06 01:41:54 UTC (rev 109828)
@@ -1,9 +1,33 @@
var jsTestIsAsync = true;
+if (self.importScripts && !self.postMessage) {
+ // Shared worker. Make postMessage send to the newest client, which in
+ // our tests is the only client.
+ // Store messages for sending until we have somewhere to send them.
+ self.postMessage = function(message)
+ {
+ if (typeof self.pendingMessages === "undefined")
+ self.pendingMessages = [];
+ self.pendingMessages.push(message);
+ };
+ self._onconnect_ = function(event)
+ {
+ self.postMessage = function(message)
+ {
+ event.ports[0].postMessage(message);
+ };
+ // Offload any stored messages now that someone has connected to us.
+ if (typeof self.pendingMessages === "undefined")
+ return;
+ while (self.pendingMessages.length)
+ event.ports[0].postMessage(self.pendingMessages.shift());
+ };
+}
+
function done()
{
isSuccessfullyParsed();
- if (window.layoutTestController)
+ if (self.layoutTestController)
layoutTestController.notifyDone()
}
@@ -13,7 +37,7 @@
done();
}
-function unexpectedErrorCallback()
+function unexpectedErrorCallback(event)
{
testFailed("Error function called unexpectedly: (" + event.target.errorCode + ") " + event.target.webkitErrorMessage);
done();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes