Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(336)

Unified Diff: LayoutTests/http/tests/notifications/service-worker-show-notification-no-permission.html

Issue 787893002: Actually hook up ServiceWorkerRegistration.showNotification() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: add missing file Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/http/tests/notifications/service-worker-show-notification-no-permission.html
diff --git a/LayoutTests/http/tests/notifications/service-worker-show-notification-no-permission.html b/LayoutTests/http/tests/notifications/service-worker-show-notification-no-permission.html
new file mode 100644
index 0000000000000000000000000000000000000000..887d18b4cb697fc9300a1280b98740ebbbdefb39
--- /dev/null
+++ b/LayoutTests/http/tests/notifications/service-worker-show-notification-no-permission.html
@@ -0,0 +1,44 @@
+<!doctype html>
+<html>
+ <head>
+ <title>Notifications: ServiceWorkerRegistration.showNotification().</title>
+ <script src="../resources/testharness.js"></script>
+ <script src="../resources/testharnessreport.js"></script>
+ <script src="../serviceworker/resources/test-helpers.js"></script>
+ </head>
+ <body>
+ <script>
+ // Tests that the showNotification() function rejects the returned promise with a
+ // TypeError when no permission has been granted for Web Notifications.
+ async_test(function (test) {
+ var scope = 'resources/scope/service-worker-show-notification-no-permission',
+ worker_url = 'resources/empty-worker.js';
+
+ if (window.testRunner)
+ testRunner.grantWebNotificationPermission("http://127.0.0.1:8000", false);
+
+ var registration = null;
+ service_worker_unregister_and_register(test, worker_url, scope).then(function (serviceWorkerRegistration) {
+ registration = serviceWorkerRegistration;
+ return wait_for_update(test, registration);
+ }).then(function (serviceWorker) {
+ return wait_for_state(test, serviceWorker, 'activating');
+ }).then(function () {
+ assert_inherits(registration, 'showNotification', 'showNotification() must be exposed.');
+ registration.showNotification('Title', {
+ body: 'Hello, world!',
+ icon: '/icon.png'
+ }).then(function() {
+ assert_unreached('showNotification() is expected to reject.');
+ }).catch(function(error) {
+ assert_equals(error.name, 'TypeError');
+ assert_equals(error.message, 'No notification permission has been granted for this origin.');
+ test.done();
+ });
+
+ }).catch(unreached_rejection(test));
+
+ }, 'showNotification() must reject if no Web Notification permission has been granted.');
+ </script>
+ </body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698