OLD | NEW |
1 // Adapter for testharness.js-style tests with Service Workers | 1 // Adapter for testharness.js-style tests with Service Workers |
2 | 2 |
3 // Can only be used with a worker that installs successfully, since it | 3 // Can only be used with a worker that installs successfully, since it |
4 // first registers to acquire a ServiceWorkerRegistration object to | 4 // first registers to acquire a ServiceWorkerRegistration object to |
5 // unregister. | 5 // unregister. |
6 // FIXME: Use getRegistration() when implemented. | 6 // FIXME: Use getRegistration() when implemented. |
7 function service_worker_unregister_and_register(test, url, scope) { | 7 function service_worker_unregister_and_register(test, url, scope) { |
8 if (!scope || scope.length == 0) | 8 if (!scope || scope.length == 0) |
9 return Promise.reject(new Error('tests must define a scope')); | 9 return Promise.reject(new Error('tests must define a scope')); |
10 | 10 |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 break; | 114 break; |
115 case tests[i].NOTRUN: | 115 case tests[i].NOTRUN: |
116 // Leave NOTRUN alone. It'll get marked as a NOTRUN when the test | 116 // Leave NOTRUN alone. It'll get marked as a NOTRUN when the test |
117 // terminates. | 117 // terminates. |
118 break; | 118 break; |
119 } | 119 } |
120 } | 120 } |
121 }; | 121 }; |
122 | 122 |
123 function service_worker_test(url, description) { | 123 function service_worker_test(url, description) { |
124 var scope = window.location.origin + '/service-worker-scope/' + | 124 var scope = window.location.origin + '/service-worker-scope' + |
125 window.location.pathname; | 125 window.location.pathname; |
126 | 126 |
127 var test = async_test(description); | 127 var test = async_test(description); |
128 service_worker_unregister_and_register(test, url, scope) | 128 service_worker_unregister_and_register(test, url, scope) |
129 .then(function(registration) { | 129 .then(function(registration) { |
130 return wait_for_update(test, registration); | 130 return wait_for_update(test, registration); |
131 }) | 131 }) |
132 .then(function(worker) { return fetch_tests_from_worker(worker); }) | 132 .then(function(worker) { return fetch_tests_from_worker(worker); }) |
133 .then(function() { return navigator.serviceWorker.unregister(scope); }) | 133 .then(function() { return navigator.serviceWorker.unregister(scope); }) |
134 .then(function() { test.done(); }) | 134 .then(function() { test.done(); }) |
(...skipping 22 matching lines...) Expand all Loading... |
157 HTTP_ORIGIN: 'http://' + ORIGINAL_HOST + ':' + HTTP_PORT, | 157 HTTP_ORIGIN: 'http://' + ORIGINAL_HOST + ':' + HTTP_PORT, |
158 HTTPS_ORIGIN: 'https://' + ORIGINAL_HOST + ':' + HTTPS_PORT, | 158 HTTPS_ORIGIN: 'https://' + ORIGINAL_HOST + ':' + HTTPS_PORT, |
159 HTTP_REMOTE_ORIGIN: 'http://' + REMOTE_HOST + ':' + HTTP_PORT, | 159 HTTP_REMOTE_ORIGIN: 'http://' + REMOTE_HOST + ':' + HTTP_PORT, |
160 HTTPS_REMOTE_ORIGIN: 'https://' + REMOTE_HOST + ':' + HTTPS_PORT | 160 HTTPS_REMOTE_ORIGIN: 'https://' + REMOTE_HOST + ':' + HTTPS_PORT |
161 }; | 161 }; |
162 } | 162 } |
163 | 163 |
164 function base_path() { | 164 function base_path() { |
165 return location.pathname.replace(/\/[^\/]*$/, '/'); | 165 return location.pathname.replace(/\/[^\/]*$/, '/'); |
166 } | 166 } |
OLD | NEW |