зеркало из https://github.com/mozilla/gecko-dev.git
128 строки
3.8 KiB
HTML
128 строки
3.8 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test for requestSync - runNow</title>
|
|
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script type="application/javascript" src="common_basic.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
</head>
|
|
<body>
|
|
<div id="container"></div>
|
|
<script type="application/javascript;version=1.7">
|
|
|
|
var taskExecuted = false;
|
|
|
|
function registerPage() {
|
|
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL('system_message_chrome_script.js'));
|
|
gScript.addMessageListener("page-registered", function pageRegisteredHandler() {
|
|
gScript.removeMessageListener("page-registered", pageRegisteredHandler);
|
|
gScript.destroy();
|
|
runTests();
|
|
});
|
|
|
|
gScript.sendAsyncMessage("trigger-register-page",
|
|
{ type: "request-sync",
|
|
manifestURL: window.location.origin + "/manifest.webapp",
|
|
pageURL: window.location.href });
|
|
}
|
|
|
|
function setMessageHandler() {
|
|
navigator.mozSetMessageHandler('request-sync', function(e) {
|
|
ok(true, "One event has been received!");
|
|
|
|
if (e.task == "oneShot") {
|
|
is(e.data, 42, "e.data is correct");
|
|
is(e.lastSync, 0, "e.lastSync is correct");
|
|
is(e.oneShot, true, "e.oneShot is correct");
|
|
is(e.minInterval, 1024, "e.minInterval is correct");
|
|
is(e.wifiOnly, false, "e.wifiOnly is correct");
|
|
taskExecuted = true;
|
|
} else {
|
|
ok(false, "Unknown event has been received!");
|
|
}
|
|
});
|
|
|
|
runTests();
|
|
}
|
|
|
|
function test_register_oneShot() {
|
|
navigator.sync.register('oneShot', { minInterval: 1024,
|
|
oneShot: true,
|
|
data: 42,
|
|
wifiOnly: false,
|
|
wakeUpPage: location.href }).then(
|
|
function() {
|
|
ok(true, "navigator.sync.register() oneShot done");
|
|
runTests();
|
|
}, genericError);
|
|
}
|
|
|
|
function test_unregister_oneShot() {
|
|
navigator.sync.unregister('oneShot').then(
|
|
function() {
|
|
ok(true, "navigator.sync.unregister() oneShot done");
|
|
runTests();
|
|
}, genericError);
|
|
}
|
|
|
|
function test_runNow() {
|
|
navigator.syncManager.registrations().then(
|
|
function(array) {
|
|
for (var i = 0; i < array.length; ++i) { info(array[i].task); }
|
|
is(array.length, 1, "One registration found.");
|
|
array[0].runNow().then(function() {
|
|
ok(taskExecuted, "Task has been executed");
|
|
runTests();
|
|
});
|
|
}, genericError);
|
|
}
|
|
|
|
var tests = [
|
|
function() {
|
|
SpecialPowers.pushPrefEnv({"set": [["dom.sysmsg.enabled", true],
|
|
["dom.requestSync.enabled", true],
|
|
["dom.requestSync.minInterval", 1],
|
|
["dom.requestSync.maxTaskTimeout", 10000 /* 10 seconds */],
|
|
["dom.ignore_webidl_scope_checks", true]]}, runTests);
|
|
},
|
|
|
|
function() {
|
|
SpecialPowers.pushPermissions(
|
|
[{ "type": "requestsync-manager", "allow": 1, "context": document } ], runTests);
|
|
},
|
|
|
|
function() {
|
|
if (SpecialPowers.isMainProcess()) {
|
|
SpecialPowers.Cu.import("resource://gre/modules/RequestSyncService.jsm");
|
|
}
|
|
runTests();
|
|
},
|
|
|
|
registerPage,
|
|
|
|
setMessageHandler,
|
|
|
|
test_register_oneShot,
|
|
|
|
test_runNow,
|
|
|
|
test_unregister_oneShot,
|
|
];
|
|
|
|
function runTests() {
|
|
if (!tests.length) {
|
|
SimpleTest.finish();
|
|
return;
|
|
}
|
|
|
|
var test = tests.shift();
|
|
test();
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
runTests();
|
|
</script>
|
|
</body>
|
|
</html>
|