Index: content/test/data/service_worker/sync.js |
diff --git a/content/test/data/service_worker/sync.js b/content/test/data/service_worker/sync.js |
index 993e771778a505bc5ff78dedbe29a9d5655026fd..a2b4bffc83dbb7020b38d32c113ebba00178de11 100644 |
--- a/content/test/data/service_worker/sync.js |
+++ b/content/test/data/service_worker/sync.js |
@@ -3,8 +3,28 @@ |
// found in the LICENSE file. |
var code = 404; |
jsbell
2014/04/03 21:47:34
The test would be clearer if the global state was
jkarlin
2014/04/04 11:59:09
Done.
|
+var fetchCount = 0; |
+ |
+// onfetch is a state machine: |
+// 1st call returns 404 and calls requestSyncEvents() |
+// .. expect sync call here .. |
+// 2nd call returns 200 because sync ran and calls requestSyncEvents(false) |
+// .. sync doesn't fire .. |
+// 3rd call returns 404 and calls requestSyncEvents(true) |
+// .. expect sync call here .. |
+// 4th call returns 200 because sync ran |
this.onfetch = function(event) { |
+ if (fetchCount == 0) { |
jsbell
2014/04/03 21:47:34
Since the sync event won't fire until after the ev
jkarlin
2014/04/04 11:59:09
Done. Great suggestions, thanks.
|
+ requestSyncEvents(); |
+ } else if (fetchCount == 1) { |
+ requestSyncEvents(false); |
+ } else if (fetchCount == 2) { |
+ requestSyncEvents(true); |
+ } |
+ |
+ fetchCount += 1; |
+ |
response = new Response({ |
statusCode: code, |
jsbell
2014/04/03 21:47:34
And this would be sawSyncEvent ? 200 : 404;
jkarlin
2014/04/04 11:59:09
Done.
|
statusText: 'OK', |
@@ -15,6 +35,8 @@ this.onfetch = function(event) { |
} |
}); |
+ code = 404; |
+ |
event.respondWith(new Promise(function(r) { |
setTimeout(function() { r(response); }, 5); |
})); |