4 <title>Stringifying a PushSubscription object includes all object members
</title>
5 <link rel=
"manifest" href=
"resources/push_manifest.json">
6 <script src=
"../resources/testharness.js"></script>
7 <script src=
"../resources/testharnessreport.js"></script>
8 <script src=
"../resources/testharness-helpers.js"></script>
9 <script src=
"../serviceworker/resources/test-helpers.js"></script>
13 async_test(function(test
) {
14 var workerUrl
= 'resources/empty_worker.js';
15 var workerScope
= 'resources/scope/' + location
.pathname
;
17 service_worker_unregister_and_register(test
, workerUrl
, workerScope
)
18 .then(function(serviceWorkerRegistration
) {
19 swRegistration
= serviceWorkerRegistration
;
20 return wait_for_state(test
, swRegistration
.installing
, 'activated');
23 // If running manually, grant permission when prompted.
24 if (window
.testRunner
)
25 testRunner
.setPermission('push-messaging', 'granted', location
.origin
, location
.origin
);
26 return swRegistration
.pushManager
.subscribe();
28 .then(function(pushSubscription
) {
29 var reflectedObject
= JSON
.parse(JSON
.stringify(pushSubscription
));
30 var expectedProperties
= ['endpoint'];
32 assert_equals(expectedProperties
.length
,
33 Object
.getOwnPropertyNames(reflectedObject
).length
);
35 for (var key
of expectedProperties
)
36 assert_equals(reflectedObject
[key
], pushSubscription
[key
]);
38 return service_worker_unregister_and_done(test
, workerScope
);
40 .catch(unreached_rejection(test
));
41 }, 'Stringifying a PushSubscription object includes all object members');