OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <script src="../resources/testharness.js"></script> | |
3 <script src="../resources/testharnessreport.js"></script> | |
4 <script src="resources/shadow-dom.js"></script> | |
5 | |
6 <div id="log"></div> | |
7 <div id="sandbox"> | |
8 <div id = "host"> | |
9 <template> | |
10 <input id="target1"></input> | |
11 <input id="target2"></input> | |
12 <input id="target3"></input> | |
13 <input id="target4"></input> | |
14 <input id="target5"></input> | |
15 </template> | |
16 </div> | |
17 </div> | |
18 | |
19 <script> | |
20 | |
21 function moveMouseOver(element) | |
22 { | |
23 if (!window.eventSender || !window.internals) | |
24 return; | |
25 | |
26 var x = element.offsetLeft + element.offsetWidth / 2; | |
27 var y; | |
28 if (element.hasChildNodes() || window.internals.shadowRoot(element)) | |
29 y = element.offsetTop; | |
30 else | |
31 y = element.offsetTop + element.offsetHeight / 2; | |
32 eventSender.mouseMoveTo(x, y); | |
33 } | |
34 | |
35 var sandbox = document.getElementById('sandbox'); | |
36 convertTemplatesToShadowRootsWithin(sandbox); | |
37 var target1 = getNodeInComposedTree('host/target1'); | |
38 var target2 = getNodeInComposedTree('host/target2'); | |
39 var target3 = getNodeInComposedTree('host/target3'); | |
40 var target4 = getNodeInComposedTree('host/target4'); | |
41 var target5 = getNodeInComposedTree('host/target5'); | |
42 | |
43 async_test(function(t) { | |
44 target1.onfocus = function(e) { | |
45 t.step(function() { | |
46 assert_equals(e.relatedTarget, null); | |
47 assert_false(e.relatedTargetScoped); | |
48 t.done(); | |
49 }); | |
50 }; | |
51 }, 'Trusted events should have relatedTargetScoped set to false by default.'); | |
52 | |
53 async_test(function(t) { | |
54 target3.onfocus = function(e) { | |
55 t.step(function() { | |
56 assert_equals(e.relatedTarget, target2); | |
57 assert_true(e.relatedTargetScoped); | |
58 t.done(); | |
59 }); | |
60 }; | |
61 }, 'Trusted focus events with a related target should have relatedTargetScoped t
rue.'); | |
62 | |
63 async_test(function(t) { | |
64 target1.onmouseenter = function(e) { | |
65 t.step(function() { | |
66 assert_equals(e.relatedTarget, null); | |
67 assert_false(e.relatedTargetScoped); | |
68 t.done(); | |
69 }); | |
70 }; | |
71 }, 'Trusted mouse events without a related target should have relatedTargetScope
d set to false.'); | |
72 | |
73 async_test(function(t) { | |
74 target3.onmouseenter = function(e) { | |
75 t.step(function() { | |
76 assert_equals(e.relatedTarget, target2); | |
77 assert_true(e.relatedTargetScoped); | |
78 t.done(); | |
79 }); | |
80 }; | |
81 }, 'Trusted mouse events with a related target should have relatedTargetScoped t
rue.'); | |
82 | |
83 async_test(function(t) { | |
84 target4.onfocus = function(e) { | |
85 t.step(function() { | |
86 assert_equals(e.relatedTarget, target5); | |
87 assert_false(e.relatedTargetScoped); | |
88 t.done(); | |
89 }); | |
90 }; | |
91 }, 'Untrusted events should have relatedTargetScoped set to false by default.'); | |
92 | |
93 async_test(function(t) { | |
94 target5.onfocus = function(e) { | |
95 t.step(function() { | |
96 assert_equals(e.relatedTarget, target4); | |
97 assert_true(e.relatedTargetScoped); | |
98 t.done(); | |
99 }); | |
100 }; | |
101 }, 'Trusted focus events with a related target should have relatedTargetScoped t
rue.'); | |
102 | |
103 target1.focus(); | |
104 target2.focus(); | |
105 target3.focus(); | |
106 moveMouseOver(target1); | |
107 moveMouseOver(target2); | |
108 moveMouseOver(target3); | |
109 var userFocus1 = new FocusEvent('focus', { relatedTarget: target5 }); | |
110 target4.dispatchEvent(userFocus1); | |
111 var userFocus2 = new FocusEvent('focus', { relatedTarget: target4, relatedTarget
Scoped: true }); | |
112 target5.dispatchEvent(userFocus2); | |
113 | |
114 </script> | |
OLD | NEW |