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

Side by Side Diff: LayoutTests/http/tests/serviceworker/resources/test-helpers.js

Issue 468753003: SW tests update (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 467133002 and fix test Created 6 years, 4 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
1 // Adapter for testharness.js-style tests with Service Workers 1 // Adapter for testharness.js-style tests with Service Workers
2 2
3 function service_worker_unregister_and_register(test, url, scope) { 3 function service_worker_unregister_and_register(test, url, scope) {
4 var options = scope ? { scope: scope } : {}; 4 var options = scope ? { scope: scope } : {};
5 return navigator.serviceWorker.unregister(scope).then( 5 return navigator.serviceWorker.unregister(scope).then(
6 test.step_func(function() { 6 test.step_func(function() {
7 return navigator.serviceWorker.register(url, options); 7 return navigator.serviceWorker.register(url, options);
8 }), 8 }),
9 unreached_rejection(test, 'Unregister should not fail') 9 unreached_rejection(test, 'Unregister should not fail')
10 ).then(test.step_func(function(worker) { 10 ).then(test.step_func(function(worker) {
(...skipping 30 matching lines...) Expand all
41 resolve(frame); 41 resolve(frame);
42 }; 42 };
43 document.body.appendChild(frame); 43 document.body.appendChild(frame);
44 }); 44 });
45 } 45 }
46 46
47 function normalizeURL(url) { 47 function normalizeURL(url) {
48 return new URL(url, document.location).toString().replace(/#.*$/, ''); 48 return new URL(url, document.location).toString().replace(/#.*$/, '');
49 } 49 }
50 50
51 function wait_for_update(test, registration) {
52 return new Promise(test.step_func(function(resolve, reject) {
53 registration.addEventListener('updatefound', test.step_func(function() {
54 resolve(registration.installing);
55 }));
56 }));
57 }
58
51 function wait_for_state(test, worker, state) { 59 function wait_for_state(test, worker, state) {
52 return new Promise(test.step_func(function(resolve, reject) { 60 return new Promise(test.step_func(function(resolve, reject) {
53 worker.addEventListener('statechange', test.step_func(function() { 61 worker.addEventListener('statechange', test.step_func(function() {
54 if (worker.state === state) 62 if (worker.state === state)
55 resolve(state); 63 resolve(state);
56 })); 64 }));
57 })); 65 }));
58 } 66 }
59 67
60 (function() { 68 (function() {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 } 102 }
95 } 103 }
96 }; 104 };
97 105
98 function service_worker_test(url, description) { 106 function service_worker_test(url, description) {
99 var scope = window.location.origin + '/service-worker-scope/' + 107 var scope = window.location.origin + '/service-worker-scope/' +
100 window.location.pathname; 108 window.location.pathname;
101 109
102 var test = async_test(description); 110 var test = async_test(description);
103 service_worker_unregister_and_register(test, url, scope) 111 service_worker_unregister_and_register(test, url, scope)
112 .then(function(registration) {
113 return wait_for_update(test, registration);
114 })
104 .then(function(worker) { return fetch_tests_from_worker(worker); }) 115 .then(function(worker) { return fetch_tests_from_worker(worker); })
105 .then(function() { return navigator.serviceWorker.unregister(scope); }) 116 .then(function() { return navigator.serviceWorker.unregister(scope); })
106 .then(function() { test.done(); }) 117 .then(function() { test.done(); })
107 .catch(test.step_func(function(e) { throw e; })); 118 .catch(test.step_func(function(e) { throw e; }));
108 }; 119 };
109 120
110 self.service_worker_test = service_worker_test; 121 self.service_worker_test = service_worker_test;
111 })(); 122 })();
112 123
113 function get_host_info() { 124 function get_host_info() {
(...skipping 15 matching lines...) Expand all
129 HTTP_ORIGIN: 'http://' + ORIGINAL_HOST + ':' + HTTP_PORT, 140 HTTP_ORIGIN: 'http://' + ORIGINAL_HOST + ':' + HTTP_PORT,
130 HTTPS_ORIGIN: 'https://' + ORIGINAL_HOST + ':' + HTTPS_PORT, 141 HTTPS_ORIGIN: 'https://' + ORIGINAL_HOST + ':' + HTTPS_PORT,
131 HTTP_REMOTE_ORIGIN: 'http://' + REMOTE_HOST + ':' + HTTP_PORT, 142 HTTP_REMOTE_ORIGIN: 'http://' + REMOTE_HOST + ':' + HTTP_PORT,
132 HTTPS_REMOTE_ORIGIN: 'https://' + REMOTE_HOST + ':' + HTTPS_PORT 143 HTTPS_REMOTE_ORIGIN: 'https://' + REMOTE_HOST + ':' + HTTPS_PORT
133 }; 144 };
134 } 145 }
135 146
136 function base_path() { 147 function base_path() {
137 return location.pathname.replace(/\/[^\/]*$/, '/'); 148 return location.pathname.replace(/\/[^\/]*$/, '/');
138 } 149 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698