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

Side by Side Diff: LayoutTests/http/tests/serviceworker/notificationclick-can-focus.html

Issue 896043004: Tests for WaitUntilObserver and focus/openining windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@sw_client_focus_cleanup
Patch Set: review comments Created 5 years, 10 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>
dominicc (has gone to gerrit) 2015/02/09 07:00:58 Should these tests be in ServiceWorker? Push Notif
Michael van Ouwerkerk 2015/02/09 10:44:24 These tests don't appear to exercise the push part
mlamouri (slow - plz ping) 2015/02/11 10:42:06 This test is testing WaitUntilObserver behaviour,
2 <title>Service Worker: notificationclick can focus WindowClient</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 if (window.testRunner)
dominicc (has gone to gerrit) 2015/02/09 07:00:58 If these tests are in Service Worker, tests that u
mlamouri (slow - plz ping) 2015/02/11 10:42:06 I wasn't aware of that directory. Will do.
8 testRunner.grantWebNotificationPermission(location.origin, true);
9
10 var t = async_test('notificationclick can focus WindowClient');
11 t.step(function() {
12 var scope = 'resources/blank.html'
13 service_worker_unregister_and_register(
14 t, 'resources/notificationclick-can-focus.js', scope)
15 .then(function(registration) {
16 return wait_for_state(t, registration.installing, 'activated');
17 })
18 .then(function() { return with_iframe(scope); })
19 .then(function(frame) {
20 var w = frame.contentWindow;
21 w.onmessage = t.step_func(onMessage);
22 w.navigator.serviceWorker.controller.postMessage('start');
23 })
24 .catch(unreached_rejection(t));
25
26 var result = [];
27 var expected = ['focus() outside of a Notification click event failed',
28 'focus() in Notification click event succeeded',
29 'focus() called twice failed',
30 'focus() in notificationclick outside of waitUntil but in st ack succeeded',
31 'focus() in notificationclick outside of waitUntil not in st ack failed',
32 'focus() in notificationclick\'s waitUntil suceeded',
33 'focus() called twice failed',
34 'focus() failed after timeout',
35 'focus() failed because a window was opened before'];
36
37 function onMessage(e) {
38 var message = e.data;
39
40 if (typeof(message) === 'object') {
41 if (message.type !== 'click')
42 return;
43 if (window.testRunner)
44 testRunner.simulateWebNotificationClick(message.title);
45 return;
46 }
47
48 if (message === 'quit') {
49 assert_array_equals(result, expected,
50 'Worker should post back expected messages.');
51 service_worker_unregister_and_done(t, scope);
52 } else {
53 result.push(message);
54 }
55 }
56 });
57 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698