Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / http / tests / serviceworker / postmessage-to-client.html
blob397b41970dfb2e9d60d2c7345c3cefd46a769bc4
1 <!DOCTYPE html>
2 <title>Service Worker: postMessage to Client</title>
3 <script src="../resources/testharness.js"></script>
4 <script src="../resources/testharnessreport.js"></script>
5 <script src="resources/test-helpers.js"></script>
6 <script>
7 var t = async_test('postMessage from ServiceWorker to Client');
8 t.step(function() {
9 var scope = 'resources/blank.html'
10 service_worker_unregister_and_register(
11 t, 'resources/postmessage-to-client-worker.js', scope)
12 .then(function(registration) {
13 return wait_for_state(t, registration.installing, 'activated');
15 .then(function() { return with_iframe(scope); })
16 .then(function(frame) {
17 var w = frame.contentWindow;
18 w.navigator.serviceWorker.onmessage = t.step_func(onMessage);
19 w.navigator.serviceWorker.controller.postMessage('ping');
21 .catch(unreached_rejection(t));
23 var result = [];
24 var expected = ['Sending message via clients'];
26 function onMessage(e) {
27 var message = e.data;
28 assert_equals(e.origin, location.origin,
29 'origin of message should be origin of Service Worker');
30 assert_equals(e.lastEventId, '',
31 'lastEventId should be an empty string');
32 if (message === 'quit') {
33 assert_array_equals(result, expected,
34 'Worker should post back expected messages.');
35 service_worker_unregister_and_done(t, scope);
36 } else {
37 result.push(message);
40 });
41 </script>