function testController() {
ok(navigator.serviceWorker.controller.scriptURL.match("claim_worker_1"), "Controlling service worker has the correct url.");
}
function testClientWasClaimed(expected) { var resolveClientMessage, resolveClientControllerChange; var messageFromClient = new Promise(function(res, rej) {
resolveClientMessage = res;
}); var controllerChangeFromClient = new Promise(function(res, rej) {
resolveClientControllerChange = res;
});
window.onmessage = function(e) {
if (!e.data.event) {
ok(false, "Unknown message received: " + e.data);
}
if (e.data.event === "controllerchange") {
ok(e.data.controller, "Client was claimed and received controllerchange event.");
resolveClientControllerChange();
}
if (e.data.event === "message") {
ok(e.data.data.resolve_value === undefined, "Claim should resolve with undefined.");
ok(e.data.data.message === expected.message, "Client received message from claiming worker.");
ok(e.data.data.match_count_before === expected.match_count_before, "MatchAll clients count before claim should be " + expected.match_count_before);
ok(e.data.data.match_count_after === expected.match_count_after, "MatchAll clients count after claim should be " + expected.match_count_after);
resolveClientMessage();
}
}
function testClaimFirstWorker() {
// wait for the worker to control us var controllerChange = new Promise(function(res, rej) {
navigator.serviceWorker.oncontrollerchange = function(e) {
ok(true, "controller changed event received.");
res();
};
});
var messageFromWorker = new Promise(function(res, rej) {
navigator.serviceWorker.onmessage = function(e) {
ok(e.data.resolve_value === undefined, "Claim should resolve with undefined.");
ok(e.data.message === "claim_worker_1", "Received message from claiming worker.");
ok(e.data.match_count_before === 0, "Worker doesn't control any client before claim.");
ok(e.data.match_count_after === 2, "Worker should claim 2 clients.");
res();
}
});
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.