untrusted-event.https.html (1742B)
1 <!DOCTYPE html> 2 <meta charset=utf-8> 3 <link rel="help" href="https://w3c.github.io/payment-handler/"> 4 <title>Test for untrusted event</title> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script> 8 <script> 9 10 async function getResultFromSW(serviceWorkerContainer) { 11 return new Promise((resolve, reject) => { 12 serviceWorkerContainer.addEventListener('message', listener = e => { 13 serviceWorkerContainer.removeEventListener('message', listener); 14 if (e.data) { 15 resolve(e.data); 16 } else { 17 reject(); 18 } 19 }); 20 }); 21 } 22 23 promise_test(async t => { 24 const registration = await service_worker_unregister_and_register( 25 t, 'untrusted-event.js', 'payment-app/'); 26 await wait_for_state(t, registration.installing, 'activated'); 27 28 const controlled_window = (await with_iframe('payment-app/payment.html')).contentWindow; 29 30 // Test for untrusted PaymentRequestEvent 31 { 32 const result = getResultFromSW(controlled_window.navigator.serviceWorker); 33 controlled_window.navigator.serviceWorker.controller.postMessage('paymentrequest'); 34 35 const expected = [ 36 "InvalidStateError", /* respondWith */ 37 "InvalidStateError" /* openWindow */ 38 ]; 39 40 assert_array_equals(await result, expected); 41 } 42 43 // Test for untrusted CanMakePaymentEvent 44 { 45 const result = getResultFromSW(controlled_window.navigator.serviceWorker); 46 controlled_window.navigator.serviceWorker.controller.postMessage('canmakepayment'); 47 48 const expected = [ 49 "InvalidStateError", /* respondWith */ 50 ]; 51 52 assert_array_equals(await result, expected); 53 } 54 }); 55 56 </script>