4 <title>Notifications: ServiceWorkerRegistration.showNotification().
</title>
5 <script src=
"../resources/testharness.js"></script>
6 <script src=
"../resources/testharnessreport.js"></script>
7 <script src=
"../serviceworker/resources/test-helpers.js"></script>
8 <script src=
"resources/test-helpers.js"></script>
12 // Tests that the showNotification() function when used in a Service Worker
13 // rejects when no permission has been granted. This test requires the test runner.
15 async_test(function(test
) {
16 var scope
= 'resources/scope/serviceworkerregistration-service-worker-click',
17 script
= 'resources/instrumentation-service-worker.js';
19 getActiveServiceWorkerWithMessagePort(test
, script
, scope
).then(function(workerInfo
) {
20 // (1) Tell the Service Worker to display a Web Notification.
21 workerInfo
.port
.postMessage({
24 title
: 'My Notification',
25 options
: { body
: 'Hello, world!' }
28 workerInfo
.port
.addEventListener('message', function(event
) {
29 if (typeof event
.data
!= 'object' || !event
.data
.command
) {
30 assert_unreached('Invalid message from the Service Worker.');
34 // (2) Listen for confirmation from the Service Worker that the
35 // notification could not be displayed because of a permission error.
36 assert_equals(event
.data
.command
, 'show');
38 assert_false(event
.data
.success
);
39 assert_equals(event
.data
.message
, 'No notification permission has been granted for this origin.');
43 }).catch(unreached_rejection(test
));
45 }, 'showNotification() must reject if no Web Notification permission has been granted.');