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

Side by Side Diff: third_party/WebKit/LayoutTests/broadcastchannel/basics.html

Issue 2004643002: Implement BroadcastChannel (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
(Empty)
1 <!DOCTYPE html>
2 <meta charset=utf-8>
3 <script src="../resources/testharness.js"></script>
4 <script src="../resources/testharnessreport.js"></script>
5 <script>
6
7 async_test(t => {
8 let c1 = new BroadcastChannel('eventType');
9 let c2 = new BroadcastChannel('eventType');
10
11 c2.onmessage = t.step_func(e => {
12 console.log(e.source);
13 console.log(e.origin);
14 assert_true(e instanceof MessageEvent);
15 assert_equals(e.target, c2);
16 assert_equals(e.type, 'message');
17 assert_equals(e.origin, location.origin, 'origin');
18 assert_equals(e.data, 'hello world');
19 assert_equals(e.source, null, 'source');
20 t.done();
21 });
22 c1.postMessage('hello world');
23 }, 'postMessage results in correct event');
24
25 async_test(t => {
26 let c1 = new BroadcastChannel('order');
27 let c2 = new BroadcastChannel('order');
28 let c3 = new BroadcastChannel('order');
29
30 let events = [];
31 let doneCount = 0;
32 let handler = t.step_func(e => {
33 events.push(e);
34 if (e.data == 'done') {
35 doneCount++;
36 if (doneCount == 2) {
37 assert_equals(events.length, 6);
38 assert_equals(events[0].target, c2, 'target for event 0');
39 assert_equals(events[0].data, 'from c1');
40 assert_equals(events[1].target, c3, 'target for event 1');
41 assert_equals(events[1].data, 'from c1');
42 assert_equals(events[2].target, c1, 'target for event 2');
43 assert_equals(events[2].data, 'from c3');
44 assert_equals(events[3].target, c2, 'target for event 3');
45 assert_equals(events[3].data, 'from c3');
46 assert_equals(events[4].target, c1, 'target for event 4');
47 assert_equals(events[4].data, 'done');
48 assert_equals(events[5].target, c3, 'target for event 5');
49 assert_equals(events[5].data, 'done');
50 t.done();
51 }
52 }
53 });
54 c1.onmessage = handler;
55 c2.onmessage = handler;
56 c3.onmessage = handler;
57
58 c1.postMessage('from c1');
59 c3.postMessage('from c3');
60 c2.postMessage('done');
61 }, 'messages are delivered in port creation order');
62
63 async_test(t => {
64 let c1 = new BroadcastChannel('closed');
65 let c2 = new BroadcastChannel('closed');
66 let c3 = new BroadcastChannel('closed');
67
68 c2.onmessage = t.unreached_func();
69 c2.close();
70 c3.onmessage = t.step_func(() => t.done());
71 c1.postMessage('test');
72 }, 'messages aren\'t delivered to a closed port');
73 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698