Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(222)

Side by Side Diff: LayoutTests/fast/workers/resources/worker-multi-port.js

Issue 1025203002: Have postMessage()s throw TypeError on failed arity checks. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: tidy up incorrect postMessage() usage Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 description("This test checks the various use cases around sending multiple port s through Worker.postMessage"); 1 description("This test checks the various use cases around sending multiple port s through Worker.postMessage");
2 2
3 if (window.testRunner) { 3 if (window.testRunner) {
4 testRunner.dumpAsText(); 4 testRunner.dumpAsText();
5 testRunner.waitUntilDone(); 5 testRunner.waitUntilDone();
6 } 6 }
7 7
8 var channel = new MessageChannel(); 8 var channel = new MessageChannel();
9 var channel2 = new MessageChannel(); 9 var channel2 = new MessageChannel();
10 var channel3 = new MessageChannel(); 10 var channel3 = new MessageChannel();
11 var channel4 = new MessageChannel(); 11 var channel4 = new MessageChannel();
12 12
13 var worker = new Worker("resources/worker-thread-multi-port.js"); 13 var worker = new Worker("resources/worker-thread-multi-port.js");
14 worker.postMessage("noargs");
14 worker.postMessage("noport"); 15 worker.postMessage("noport");
15 worker.postMessage("zero ports", []); 16 worker.postMessage("zero ports", []);
16 worker.postMessage("two ports", [channel2.port1, channel2.port2]); 17 worker.postMessage("two ports", [channel2.port1, channel2.port2]);
17 18
18 // Now test various failure cases 19 // Now test various failure cases
20 shouldThrow("worker.postMessage()");
19 shouldThrow('worker.postMessage("null port", [channel3.port1, null, channel3.por t2])'); 21 shouldThrow('worker.postMessage("null port", [channel3.port1, null, channel3.por t2])');
20 shouldThrow('worker.postMessage("notAPort", [channel3.port1, {}, channel3.port2] )'); 22 shouldThrow('worker.postMessage("notAPort", [channel3.port1, {}, channel3.port2] )');
21 // Should be OK to send channel3.port1/2 (should not have been disentangled by t he previous failed calls). 23 // Should be OK to send channel3.port1/2 (should not have been disentangled by t he previous failed calls).
22 worker.postMessage("failed ports", [channel3.port1, channel3.port2]); 24 worker.postMessage("failed ports", [channel3.port1, channel3.port2]);
23 25
24 shouldThrow('worker.postMessage("notAnArray", channel3.port1)') 26 shouldThrow('worker.postMessage("notAnArray", channel3.port1)')
25 shouldThrow('worker.postMessage("notASequence", [{length: 3}])'); 27 shouldThrow('worker.postMessage("notASequence", [{length: 3}])');
26 28
27 worker.postMessage("done", [channel.port2]); 29 worker.postMessage("done", [channel.port2]);
28 worker.onmessage = function(event) { 30 worker.onmessage = function(event) {
29 // Report results from worker thread. 31 // Report results from worker thread.
30 if (event.data == "done") 32 if (event.data == "done")
31 channel.port1.onmessage = done; 33 channel.port1.onmessage = done;
32 else if (event.data.indexOf("PASS") == 0) 34 else if (event.data.indexOf("PASS") == 0)
33 testPassed(event.data.substring(4)); 35 testPassed(event.data.substring(4));
34 else if (event.data.indexOf("FAIL") == 0) 36 else if (event.data.indexOf("FAIL") == 0)
35 testFailed(event.data.substring(4)); 37 testFailed(event.data.substring(4));
36 else 38 else
37 testFailed("Unexpected result: " + event.data); 39 testFailed("Unexpected result: " + event.data);
38 } 40 }
39
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698