Bug 1255692. Add another test for calling ServiceWorkerRegistration.showNotification. r=wchen

--HG--
rename : dom/workers/test/serviceworkers/notificationclick.html => dom/workers/test/serviceworkers/notificationclick-otherwindow.html
rename : dom/workers/test/serviceworkers/test_notificationclick.html => dom/workers/test/serviceworkers/test_notificationclick-otherwindow.html
This commit is contained in:
Boris Zbarsky 2016-03-10 23:14:01 -05:00
parent f4472d1237
commit b393092634
3 changed files with 95 additions and 0 deletions

View File

@ -128,6 +128,7 @@ support-files =
bug1151916_worker.js
bug1151916_driver.html
notificationclick.html
notificationclick-otherwindow.html
notificationclick.js
notificationclick_focus.html
notificationclick_focus.js
@ -264,6 +265,8 @@ support-files =
skip-if = e10s && debug && os == 'win'
[test_notificationclick.html]
skip-if = e10s && debug && os == 'win'
[test_notificationclick-otherwindow.html]
skip-if = e10s && debug && os == 'win'
[test_notificationclick_focus.html]
skip-if = toolkit == "android" || toolkit == "gonk" || (e10s && debug && os == 'win')
[test_notification_constructor_error.html]

View File

@ -0,0 +1,30 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1114554 - controlled page</title>
<script class="testbody" type="text/javascript">
var testWindow = parent;
if (opener) {
testWindow = opener;
}
navigator.serviceWorker.ready.then(function(swr) {
var ifr = document.createElement("iframe");
document.documentElement.appendChild(ifr);
ifr.contentWindow.ServiceWorkerRegistration.prototype.showNotification
.call(swr, "Hi there. The ServiceWorker should receive a click event for this.", { data: { complex: ["jsval", 5] }});
});
navigator.serviceWorker.onmessage = function(msg) {
testWindow.callback(msg.data.result);
};
</script>
</head>
<body>
</body>
</html>

View File

@ -0,0 +1,62 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=916893
-->
<head>
<title>Bug 1114554 - Test ServiceWorkerGlobalScope.notificationclick event.</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="/tests/dom/tests/mochitest/notification/MockServices.js"></script>
<script type="text/javascript" src="/tests/dom/tests/mochitest/notification/NotificationTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1114554">Bug 1114554</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
<script type="text/javascript">
SimpleTest.requestFlakyTimeout("Mock alert service dispatches show and click events.");
function testFrame(src) {
var iframe = document.createElement("iframe");
iframe.src = src;
window.callback = function(result) {
window.callback = null;
document.body.removeChild(iframe);
iframe = null;
ok(result, "Got notificationclick event with correct data.");
MockServices.unregister();
registration.unregister().then(function() {
SimpleTest.finish();
});
};
document.body.appendChild(iframe);
}
var registration;
function runTest() {
MockServices.register();
testFrame('notificationclick-otherwindow.html');
navigator.serviceWorker.register("notificationclick.js", { scope: "notificationclick-otherwindow.html" }).then(function(reg) {
registration = reg;
}, function(e) {
ok(false, "registration should have passed!");
});
};
SimpleTest.waitForExplicitFinish();
SpecialPowers.pushPrefEnv({"set": [
["dom.serviceWorkers.exemptFromPerDomainMax", true],
["dom.serviceWorkers.enabled", true],
["dom.serviceWorkers.testing.enabled", true],
["dom.webnotifications.workers.enabled", true],
["dom.webnotifications.serviceworker.enabled", true],
["notification.prompt.testing", true],
]}, runTest);
</script>
</body>
</html>