| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <title>TouchEvent Retargeting Tests</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <div id="host0"></div> |
| <div id="host1"></div> |
| <script> |
| var host0 = document.getElementById('host0'); |
| var root0 = host0.attachShadow({ mode: 'open' }); |
| var target0 = document.createElement('div'); |
| root0.appendChild(target0); |
| |
| var host1 = document.getElementById('host1'); |
| var root1 = host1.attachShadow({ mode: 'open' }); |
| var target1 = document.createElement('div'); |
| root1.appendChild(target1); |
| |
| async_test(function(t) { |
| var touch0 = new Touch({ |
| identifier: 0, |
| target: target0, |
| }); |
| var touch1 = new Touch({ |
| identifier: 1, |
| target: target1, |
| }); |
| |
| var touchEvent = new TouchEvent("touchstart", { |
| touches: [touch0, touch1], |
| targetTouches: [touch1], |
| changedTouches: [touch1], |
| }); |
| |
| target0.addEventListener('touchstart', t.step_func_done(function(e) { |
| assert_equals(e.touches.length, 2); |
| assert_equals(e.touches[0].target, target0); |
| assert_equals(e.touches[1].target, host1); |
| |
| assert_equals(e.targetTouches.length, 1); |
| assert_equals(e.targetTouches[0].target, host1); |
| |
| assert_equals(e.changedTouches.length, 1); |
| assert_equals(e.changedTouches[0].target, host1); |
| })); |
| |
| target0.dispatchEvent(touchEvent, { composed: true }); |
| }, "TouchEvent's touches, targetTouches, and changedTouches should be retargeted."); |
| </script> |
| </body> |
| </html> |