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

Side by Side Diff: LayoutTests/http/tests/serviceworker/chromium/clients-openwindow.html

Issue 879403005: [ServiceWorker] Tests for Clients.openWindow(). (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@window_interaction_tests
Patch Set: cleanup and add test helper 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
« no previous file with comments | « no previous file | LayoutTests/http/tests/serviceworker/chromium/resources/clients-openwindow.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <title>Service Worker: clients.openWindow() tests (using testRunner)</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 // 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
9 // be run as a manual test by other browser vendors.
10 if (window.testRunner)
11 testRunner.grantWebNotificationPermission(location.origin, true);
12
13 var t = async_test('clients.openWindow() behaved as expected');
14 t.step(function() {
15 var scope = 'resources/blank.html'
16 service_worker_unregister_and_register(
17 t, 'resources/clients-openwindow.js', scope)
18 .then(function(registration) {
19 return wait_for_state(t, registration.installing, 'activated');
20 })
21 .then(function() { return with_iframe(scope); })
22 .then(function(frame) {
23 var w = frame.contentWindow;
24 w.onmessage = t.step_func(onMessage);
25 w.navigator.serviceWorker.controller.postMessage('start');
26 })
27 .catch(unreached_rejection(t));
28
29 var result = [];
30 var expected = ['openWindow() can\'t open a window without a user interactio n',
31 'openWindow() error is InvalidAccessError',
32 'openWindow() can\'t open cross origin windows',
33 'openWindow() error is SecurityError',
34 'openWindow() can open not controlled windows',
35 'openWindow() result: null',
36 'openWindow() can open controlled windows',
37 'openWindow() result: [object WindowClient]',
38 ' url: ' + location.origin + '/serviceworker/chromium/resour ces/blank.html',
39 ' visibilityState: visible',
40 ' focused: true',
41 ' frameType: top-level'];
42
43 // LayoutTests on Mac do not open focused windows.
44 var isMac = navigator.platform.indexOf('Mac') == 0;
45 if (isMac)
46 expected[10] = ' focused: false';
47
48 function onMessage(e) {
49 var message = e.data;
50
51 if (typeof(message) === 'object') {
52 if (message.type !== 'click')
53 return;
54 if (window.testRunner)
55 testRunner.simulateWebNotificationClick(message.title);
56 return;
57 }
58
59 if (message === 'quit') {
60 assert_array_equals(result, expected,
61 'Worker should post back expected messages.');
62 service_worker_unregister_and_done(t, scope);
63 } else {
64 result.push(message);
65 }
66 }
67 });
68 </script>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/http/tests/serviceworker/chromium/resources/clients-openwindow.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698