3 Distributed under both the W3C Test Suite License [1] and the W3C
4 3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
5 policies and contribution forms [3].
7 [1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
8 [2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
9 [3] http://www.w3.org/2004/10/27-testcases
13 <title>Shadow DOM Test: A_05_02_01</title>
14 <link rel="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
15 <link rel="help" href="http://www.w3.org/TR/2013/WD-shadow-dom-201305214#retargeting-related-target">
16 <meta name="assert" content="Retargeting relatedTarget:Event retargeting is a process of computing relative targets for each ancestor of the node at which the event is dispatched. A relative target is a DOM node that most accurately represents the target of a dispatched event at a given ancestor while maintaining the upper boundary encapsulation.">
17 <script src="../../../../../resources/testharness.js"></script>
18 <script src="../../../../../resources/testharnessreport.js"></script>
19 <script src="../../testcommon.js"></script>
20 <link rel="stylesheet" href="../../../../../resources/testharness.css">
25 var A_05_02_01_T01 = async_test('A_05_02_01_T1');
27 A_05_02_01_T01.step(unit(function (ctx) {
29 var d = newRenderedHTMLDocument(ctx);
31 var host = d.createElement('div');
32 host.setAttribute('style', 'height:100%; width:100%');
33 host.setAttribute('id', 'host');
34 d.body.appendChild(host);
36 //Shadow root to play with
37 var s = host.createShadowRoot();
39 var div1 = d.createElement('div');
40 div1.setAttribute('style', 'height:40px; width:100%');
41 div1.setAttribute('id', 'div1');
44 var div2 = d.createElement('div');
45 div2.setAttribute('style', 'height:40px; width:100%');
46 div2.setAttribute('id', 'div2');
49 s.addEventListener('mouseover', A_05_02_01_T01.step_func(function(event) {
50 assert_equals(event.relatedTarget.getAttribute('id'), 'div1', 'Wrong relatedTarget');
53 d.body.addEventListener('mouseover', A_05_02_01_T01.step_func(function(event) {
54 assert_true(false, 'Event must be stopped at Shadow boundary');
58 var evt = document.createEvent("MouseEvents");
59 evt.initMouseEvent("mouseover", true, false, window,
60 0, 10, 10, 10, 10, false, false, false, false, 0, div1);
62 div2.dispatchEvent(evt);
65 A_05_02_01_T01.done();