| Index: third_party/WebKit/LayoutTests/http/tests/notifications/serviceworker-notificationclick-event-data-reflection.html
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/notifications/serviceworker-notificationclick-event-data-reflection.html b/third_party/WebKit/LayoutTests/http/tests/notifications/serviceworker-notificationclick-event-data-reflection.html
|
| index 693f0ac6eeabfe5133ff46f6e17889ef50b845c6..570fb24aabf7b5dc873e059516bb38366287c7c2 100644
|
| --- a/third_party/WebKit/LayoutTests/http/tests/notifications/serviceworker-notificationclick-event-data-reflection.html
|
| +++ b/third_party/WebKit/LayoutTests/http/tests/notifications/serviceworker-notificationclick-event-data-reflection.html
|
| @@ -2,9 +2,11 @@
|
| <html>
|
| <head>
|
| <title>Notifications: data property reflection in the "notificationclick" event.</title>
|
| + <script src="../resources/permissions-helper.js"></script>
|
| <script src="../resources/testharness.js"></script>
|
| <script src="../resources/testharnessreport.js"></script>
|
| <script src="../serviceworker/resources/test-helpers.js"></script>
|
| + <script src="resources/notification-data-reflection-test.js"></script>
|
| <script src="resources/test-helpers.js"></script>
|
| </head>
|
| <body>
|
| @@ -14,71 +16,12 @@
|
| // with which the notification was created (for this test --) in the document.
|
|
|
| async_test(function(test) {
|
| - var scope = 'resources/scope/' + location.pathname,
|
| - script = 'resources/instrumentation-service-worker.js';
|
| -
|
| - // Set notification's data of several type to a structured clone of options's data.
|
| - var notificationDataList = new Array(
|
| - true, // Check Boolean type
|
| - 1024, // Check Number type
|
| - Number.NaN, // Check Number.NaN type
|
| - 'any data', // Check String type
|
| - null, // Check null
|
| - new Array('Saab', 'Volvo', 'BMW'), // Check Array type
|
| - { first: 'first', second: 'second' } // Check object
|
| - );
|
| -
|
| - testRunner.setPermission('notifications', 'granted', location.origin, location.origin);
|
| - getActiveServiceWorkerWithMessagePort(test, script, scope).then(function(workerInfo) {
|
| - // (1) Tell the Service Worker to display a Web Notification.
|
| - var assertNotificationDataReflects = function(pos) {
|
| - workerInfo.port.postMessage({
|
| - command: 'show',
|
| -
|
| - title: scope,
|
| - options: {
|
| - title: scope,
|
| - tag: pos,
|
| - data: notificationDataList[pos]
|
| - }
|
| - });
|
| - };
|
| -
|
| - workerInfo.port.addEventListener('message', function(event) {
|
| - if (typeof event.data != 'object' || !event.data.command) {
|
| - assert_unreached('Invalid message from the Service Worker.');
|
| - return;
|
| - }
|
| -
|
| - // (2) Listen for confirmation from the Service Worker that the
|
| - // notification's display promise has been resolved.
|
| - if (event.data.command == 'show') {
|
| - assert_true(event.data.success, 'The notification must have been displayed.');
|
| - testRunner.simulateWebNotificationClick(scope, -1 /* action_index */);
|
| - return;
|
| - }
|
| -
|
| - // (3) Listen for confirmation from the Service Worker that the
|
| - // notification has been clicked on. Make sure that all properties
|
| - // set on the Notification object are as expected.
|
| - assert_equals(event.data.command, 'click', 'The notification was expected to be clicked.');
|
| -
|
| - var pos = event.data.notification.tag;
|
| -
|
| - if (typeof notificationDataList[pos] === 'object' && notificationDataList[pos] !== null)
|
| - assert_object_equals(event.data.notification.data, notificationDataList[pos], 'The data field must be the same.');
|
| - else
|
| - assert_equals(event.data.notification.data, notificationDataList[pos], 'The data field must be the same.');
|
| -
|
| - if (++pos < notificationDataList.length)
|
| - assertNotificationDataReflects(pos);
|
| - else
|
| - test.done();
|
| - });
|
| -
|
| - assertNotificationDataReflects(0);
|
| - }).catch(unreached_rejection(test));
|
| -
|
| + runNotificationDataReflectionTest(test, {
|
| + run: function (scope) {
|
| + testRunner.simulateWebNotificationClick(scope, -1 /* action_index */);
|
| + },
|
| + name: 'click'
|
| + });
|
| }, 'Clicking on a notification displayed by a Service Worker the notificationclick event.');
|
| </script>
|
| </body>
|
|
|