OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <title>Service Worker: clients.openWindow() tests (using testRunner)</title> | 2 <title>Service Worker: clients.openWindow() tests (using testRunner)</title> |
3 <script src="../../resources/testharness.js"></script> | 3 <script src="../../resources/testharness.js"></script> |
4 <script src="../../resources/testharnessreport.js"></script> | 4 <script src="../../resources/testharnessreport.js"></script> |
5 <script src="../resources/test-helpers.js"></script> | 5 <script src="../resources/test-helpers.js"></script> |
6 <script> | 6 <script> |
7 // This test is using testRunner to grant itself the notification permission and | 7 // This test is using testRunner to grant itself the notification permission and |
8 // to simulate a click on a notification. A couple of changes would allow it to | 8 // to simulate a click on a notification. A couple of changes would allow it to |
9 // be run as a manual test by other browser vendors. | 9 // be run as a manual test by other browser vendors. |
10 if (window.testRunner) | 10 if (window.testRunner) |
11 testRunner.setPermission('notifications', 'granted', location.origin, locati
on.origin); | 11 testRunner.setPermission('notifications', 'granted', location.origin, locati
on.origin); |
12 | 12 |
13 var t = async_test('clients.openWindow() behaved as expected'); | 13 var t = async_test('clients.openWindow() behaved as expected'); |
14 t.step(function() { | 14 t.step(function() { |
15 var scope = 'resources/blank.html' | 15 var scope = 'resources/blank.html' |
16 service_worker_unregister_and_register( | 16 service_worker_unregister_and_register( |
17 t, 'resources/clients-openwindow.js', scope) | 17 t, 'resources/clients-openwindow.js', scope) |
18 .then(function(registration) { | 18 .then(function(registration) { |
19 return wait_for_state(t, registration.installing, 'activated'); | 19 return wait_for_state(t, registration.installing, 'activated'); |
20 }) | 20 }) |
21 .then(function() { return with_iframe(scope); }) | 21 .then(function() { return with_iframe(scope); }) |
22 .then(function(frame) { | 22 .then(function(frame) { |
23 var w = frame.contentWindow; | 23 var w = frame.contentWindow; |
24 w.onmessage = t.step_func(onMessage); | 24 w.navigator.serviceWorker.onmessage = t.step_func(onMessage); |
25 w.navigator.serviceWorker.controller.postMessage('start'); | 25 w.navigator.serviceWorker.controller.postMessage('start'); |
26 }) | 26 }) |
27 .catch(unreached_rejection(t)); | 27 .catch(unreached_rejection(t)); |
28 | 28 |
29 var result = []; | 29 var result = []; |
30 var expected = ['openWindow() can\'t open a window without a user interactio
n', | 30 var expected = ['openWindow() can\'t open a window without a user interactio
n', |
31 'openWindow() error is InvalidAccessError', | 31 'openWindow() error is InvalidAccessError', |
32 'openWindow() can open cross origin windows', | 32 'openWindow() can open cross origin windows', |
33 'openWindow() result: null', | 33 'openWindow() result: null', |
34 'openWindow() can open not controlled windows', | 34 'openWindow() can open not controlled windows', |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 if (message === 'quit') { | 67 if (message === 'quit') { |
68 assert_array_equals(result, expected, | 68 assert_array_equals(result, expected, |
69 'Worker should post back expected messages.'); | 69 'Worker should post back expected messages.'); |
70 service_worker_unregister_and_done(t, scope); | 70 service_worker_unregister_and_done(t, scope); |
71 } else { | 71 } else { |
72 result.push(message); | 72 result.push(message); |
73 } | 73 } |
74 } | 74 } |
75 }); | 75 }); |
76 </script> | 76 </script> |
OLD | NEW |