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

Side by Side Diff: LayoutTests/http/tests/navigatorconnect/resources/connect-event-worker.js

Issue 1205783004: Update navigator.services API to use the new services.onconnect event [3/3]. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@serviceport-serviceside
Patch Set: fix webexposed layout test Created 5 years, 5 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 importScripts('../../serviceworker/resources/worker-testharness.js');
2 importScripts('../../serviceworker/resources/test-helpers.js');
3 importScripts('/resources/testharness-helpers.js');
4 importScripts('test-helpers.js');
5
6 // Returns a promise that additionally has |resolve| and |reject| methods.
7 function NewResolvablePromise() {
8 var resolveMethod, rejectMethod;
bsittler 2015/07/29 17:52:33 one extra space
9 var p = new Promise(function(resolve, reject) {
10 resolveMethod = resolve;
11 rejectMethod = reject;
12 });
13 p.resolve = resolveMethod;
14 p.reject = rejectMethod;
15 return p;
16 }
17
18 self.addEventListener('install', function(event) {
19 event.waitUntil(self.skipWaiting());
20 });
21
22 self.addEventListener('activate', function(event) {
23 sequential_promise_test(function(test) {
24 return wait_for_state(test, self.registration.active, 'activated');
25 }, 'wait for worker to be activated');
26
27 sequential_promise_test(function(test) {
28 var respondResult = NewResolvablePromise();
29 navigator.services.onconnect = test.step_func(function(event) {
30 respondResult.resolve(event.respondWith({accept: true}));
31 });
32 return Promise.all([respondResult,
33 navigator.services.connect(self.registration.scope + '/service')]);
34 }, 'respondWith can synchronously accept a connection without a promise.');
35
36 sequential_promise_test(function(test) {
37 var respondResult = NewResolvablePromise();
38 navigator.services.onconnect = test.step_func(function(event) {
39 respondResult.resolve(
40 event.respondWith(Promise.resolve({accept: true})));
41 });
42 return Promise.all([respondResult,
43 navigator.services.connect(self.registration.scope + '/service')]);
44 }, 'respondWith can synchronously accept a connection with a promise.');
45
46 sequential_promise_test(function(test) {
47 var respondResult = NewResolvablePromise();
48 navigator.services.onconnect = test.step_func(function(event) {
49 respondResult.resolve(
50 event.respondWith(new Promise(function(resolve) {
51 self.setTimeout(resolve, 1, {accept: true});
52 })));
53 });
54 return Promise.all([respondResult,
55 navigator.services.connect(self.registration.scope + '/service')]);
56 }, 'respondWith can asynchronously accept a connection.');
57
58 sequential_promise_test(function(test) {
59 var respondResult = NewResolvablePromise();
60 navigator.services.onconnect = test.step_func(function(event) {
61 respondResult.resolve(
62 promise_rejects(test, "AbortError",
63 event.respondWith({accept: false})));
64 });
65 return Promise.all([respondResult,
66 promise_rejects(test, 'AbortError',
67 navigator.services.connect(self.registration.scope + '/service'))
68 ]);
69 }, 'respondWith can synchronously reject a connection without a promise.');
70
71 sequential_promise_test(function(test) {
72 var respondResult = NewResolvablePromise();
73 navigator.services.onconnect = test.step_func(function(event) {
74 respondResult.resolve(
75 promise_rejects(test, "AbortError",
76 event.respondWith(Promise.resolve({accept: false}) )));
77 });
78 return Promise.all([respondResult,
79 promise_rejects(test, 'AbortError',
80 navigator.services.connect(self.registration.scope + '/service'))
81 ]);
82 }, 'respondWith can synchronously reject a connection with a resolved promis e.');
83
84 sequential_promise_test(function(test) {
85 var respondResult = NewResolvablePromise();
86 navigator.services.onconnect = test.step_func(function(event) {
87 respondResult.resolve(
88 promise_rejects(test, "AbortError",
89 event.respondWith(Promise.reject())));
90 });
91 return Promise.all([respondResult,
92 promise_rejects(test, 'AbortError',
93 navigator.services.connect(self.registration.scope + '/service'))
94 ]);
95 }, 'respondWith can synchronously reject a connection with a rejected promis e.');
96
97 sequential_promise_test(function(test) {
98 navigator.services.onconnect = test.step_func(function(event) {
99 });
100 return promise_rejects(test, 'AbortError',
101 navigator.services.connect(self.registration.scope + '/service'));
102 }, 'Not calling respondWith will reject the connection.');
103
104 sequential_promise_test(function(test) {
105 var respondResult1 = NewResolvablePromise();
106 var respondResult2 = NewResolvablePromise();
107 navigator.services.onconnect = test.step_func(function(event) {
108 respondResult1.resolve(event.respondWith({accept: true}));
109 respondResult2.resolve(
110 promise_rejects(test, 'InvalidStateError',
111 event.respondWith({})));
112 });
113 return Promise.all([respondResult1, respondResult2,
114 navigator.services.connect(self.registration.scope + '/service')]);
115 }, 'Calling respondWith a second time will fail.');
116
117 sequential_promise_test(function(test) {
118 var respondResult = NewResolvablePromise();
119 navigator.services.onconnect = test.step_func(function(event) {
120 respondResult.resolve(
121 promise_rejects(test, new TypeError(),
122 event.respondWith("")));
123 });
124 return Promise.all([respondResult,
125 promise_rejects(test, 'AbortError',
126 navigator.services.connect(self.registration.scope + '/service'))
127 ]);
128 }, 'Calling respondWith with something that is not an object rejects.');
129 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698