blob: 72bd50e8019961478c2f42a431181df2ceceb316 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
'use strict';
// The ResultQueue is a mechanism for passing messages back to the test
// framework.
var resultQueue = new ResultQueue();
function registerServiceWorker() {
// The base dir used to resolve service_worker.js.
navigator.serviceWorker.register('service_worker.js', {scope: './'}).then(
function(swRegistration) {
sendResultToTest('ok - service worker registered');
}, sendErrorToTest);
}
// Query for the budget and return the current total.
function documentGetBudget() {
navigator.budget.getBudget().then(function(budget) {
sendResultToTest("ok - budget returned value of " + budget[0].budgetAt);
}, function() {
sendResultToTest("failed - unable to get budget values");
});
}
// Request a reservation for a silent push.
function documentReserveBudget() {
navigator.budget.reserve('silent-push').then(function(reserved) {
if (reserved)
sendResultToTest("ok - reserved budget");
else
sendResultToTest("failed - not able to reserve budget");
}, function() {
sendResultToTest("failed - error while trying to reserve budget");
});
}
function workerGetBudget() {
navigator.serviceWorker.controller.postMessage({command: 'workerGet'});
}
function workerReserveBudget() {
navigator.serviceWorker.controller.postMessage({command: 'workerReserve'});
}
function isControlled() {
if (navigator.serviceWorker.controller) {
sendResultToTest('true - is controlled');
} else {
sendResultToTest('false - is not controlled');
}
}
navigator.serviceWorker.addEventListener('message', function(event) {
var message = JSON.parse(event.data);
if (message.type == 'push')
resultQueue.push(message.data);
else
sendResultToTest(message.data);
}, false);