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

Side by Side Diff: LayoutTests/http/tests/serviceworker/multiple-register.html

Issue 443883003: Test for registering the same SW in different frames (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: missing semicolon 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../resources/testharness.js"></script> 2 <script src="../resources/testharness.js"></script>
3 <script src="../resources/testharnessreport.js"></script> 3 <script src="../resources/testharnessreport.js"></script>
4 <script src="resources/test-helpers.js"></script> 4 <script src="resources/test-helpers.js"></script>
5 <script> 5 <script>
6 var worker_url = 'resources/empty-worker.js'; 6 var worker_url = 'resources/empty-worker.js';
7 7
8 async_test(function(t) { 8 async_test(function(t) {
9 var scope = 'subsequent-register' 9 var scope = 'scope/subsequent-register';
10 var worker; 10 var worker;
11 11
12 service_worker_unregister_and_register(t, worker_url, scope) 12 service_worker_unregister_and_register(t, worker_url, scope)
13 .then(function(registered_worker) { 13 .then(function(registered_worker) {
14 worker = registered_worker; 14 worker = registered_worker;
15 return wait_for_state(t, worker, 'activated'); 15 return wait_for_state(t, worker, 'activated');
16 }) 16 })
17 .then(function() { 17 .then(function() {
18 return navigator.serviceWorker.register(worker_url, { scope: scope }); 18 return navigator.serviceWorker.register(worker_url, { scope: scope });
19 }) 19 })
20 .then(function(registered_worker) { 20 .then(function(registered_worker) {
21 assert_equals(registered_worker, worker, 21 assert_equals(registered_worker, worker,
22 'register should resolve to the same worker'); 22 'register should resolve to the same worker');
23 assert_equals(registered_worker.state, 'activated', 23 assert_equals(registered_worker.state, 'activated',
24 'the worker should be in state "activated"'); 24 'the worker should be in state "activated"');
25 service_worker_unregister_and_done(t, scope); 25 service_worker_unregister_and_done(t, scope);
26 }) 26 })
27 .catch(unreached_rejection(t)); 27 .catch(unreached_rejection(t));
28 }, 'Subsequent registrations resolve to the same worker'); 28 }, 'Subsequent registrations resolve to the same worker');
29 29
30 async_test(function(t) { 30 async_test(function(t) {
31 var scope = 'concurrent-register' 31 var scope = 'scope/concurrent-register';
32 var worker; 32 var worker;
33 33
34 navigator.serviceWorker.unregister(scope) 34 navigator.serviceWorker.unregister(scope)
35 .then(function() { 35 .then(function() {
36 var promises = []; 36 var promises = [];
37 for (var i = 0; i < 100; ++i) { 37 for (var i = 0; i < 100; ++i) {
38 promises.push(navigator.serviceWorker.register(worker_url, 38 promises.push(navigator.serviceWorker.register(worker_url,
39 { scope: scope })); 39 { scope: scope }));
40 } 40 }
41 return Promise.all(promises); 41 return Promise.all(promises);
42 }) 42 })
43 .then(function(workers) { 43 .then(function(workers) {
44 workers.forEach(function(worker) { 44 workers.forEach(function(worker) {
45 assert_equals(worker, workers[0], 45 assert_equals(worker, workers[0],
46 'register should resolve to the same worker'); 46 'register should resolve to the same worker');
47 }); 47 });
48 service_worker_unregister_and_done(t, scope); 48 service_worker_unregister_and_done(t, scope);
49 }) 49 })
50 .catch(unreached_rejection(t)); 50 .catch(unreached_rejection(t));
51 }, 'Concurrent registrations resolve to the same worker'); 51 }, 'Concurrent registrations resolve to the same worker');
52
53 async_test(function(t) {
54 var scope = 'scope/multiple-frames';
55 var worker;
56
57 service_worker_unregister_and_register(t, worker_url, scope)
58 .then(function(registered_worker) {
59 worker = registered_worker;
60 return with_iframe('nothing-here.html');
61 })
62 .then(function(frame) {
63 return frame.contentWindow.navigator.serviceWorker.register(
64 worker_url, { scope: scope });
65 })
66 .then(function(registered_worker) {
67 assert_not_equals(registered_worker, worker);
68 service_worker_unregister_and_done(t, scope);
69 })
70 .catch(unreached_rejection(t));
71 }, 'Registrations in separate frames resolve to different workers');
52 </script> 72 </script>
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698