add-during-dispatch.https.html (1250B)
1 <!DOCTYPE html> 2 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharnessreport.js"></script> 4 <script src="/resources/testdriver.js"></script> 5 <script src="/resources/testdriver-vendor.js"></script> 6 <script src="../resources/orientation-event-helpers.js"></script> 7 <script> 8 'use strict'; 9 10 promise_test(async (t) => { 11 const helper = new SensorTestHelper(t, 'devicemotion'); 12 await helper.grantSensorsPermissions(); 13 await helper.initializeSensors(); 14 15 const motionData = generateMotionData(1, 2, 3, 16 4, 5, 6, 17 7, 8, 9); 18 await helper.setData(motionData); 19 20 return new Promise((resolve, reject) => { 21 let result = reject; 22 window.addEventListener('devicemotion', event1 => { 23 // Now we are in event dispatch. 24 assertEventEquals(event1, getExpectedMotionEvent(motionData)); 25 26 window.addEventListener('devicemotion', event2 => { 27 // Not called until the outer function returns. 28 assertEventEquals(event2, getExpectedMotionEvent(motionData)); 29 result(); 30 }, {once: true}); 31 32 result = resolve; 33 }, {once: true}); 34 }); 35 }, 'Test no fire listeners added during event dispatch.'); 36 </script>