OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <script src="../../../resources/js-test.js"></script> | 3 <script src="../../../resources/js-test.js"></script> |
4 <label for="submit">Label for Submit</label> | 4 <label inert for="submit">Label for Submit</label> |
5 <dialog> | 5 <input id="text" type="text"> |
6 <input id="text" type="text"> | 6 <input id="submit" type="submit"> |
7 <input id="submit" type="submit"> | |
8 </dialog> | |
9 <script> | 7 <script> |
10 function clickOn(element) { | 8 function clickOn(element) { |
11 if (!window.eventSender) | 9 if (!window.eventSender) |
12 return; | 10 return; |
13 | 11 |
14 var absoluteTop = 0; | 12 var absoluteTop = 0; |
15 var absoluteLeft = 0; | 13 var absoluteLeft = 0; |
16 for (var parentNode = element; parentNode; parentNode = parentNode.offsetPar
ent) { | 14 for (var parentNode = element; parentNode; parentNode = parentNode.offsetPar
ent) { |
17 absoluteLeft += parentNode.offsetLeft; | 15 absoluteLeft += parentNode.offsetLeft; |
18 absoluteTop += parentNode.offsetTop; | 16 absoluteTop += parentNode.offsetTop; |
19 } | 17 } |
20 | 18 |
21 var x = absoluteLeft + element.offsetWidth / 2; | 19 var x = absoluteLeft + element.offsetWidth / 2; |
22 var y = absoluteTop + element.offsetHeight / 2; | 20 var y = absoluteTop + element.offsetHeight / 2; |
23 eventSender.mouseMoveTo(x, y); | 21 eventSender.mouseMoveTo(x, y); |
24 eventSender.mouseDown(); | 22 eventSender.mouseDown(); |
25 eventSender.mouseUp(); | 23 eventSender.mouseUp(); |
26 eventSender.mouseMoveTo(0, 0); | 24 eventSender.mouseMoveTo(0, 0); |
27 } | 25 } |
28 | 26 |
29 description('Tests focusing of an inert label for a non-inert target. label.focu
s() should send focus ' + | 27 description('Tests focusing of an inert label for a non-inert target. label.focu
s() should send focus ' + |
30 'to the target, but clicking the label should be the same as clickin
g on the document body.'); | 28 'to the target, but clicking the label should be the same as clickin
g on the document body.'); |
31 | 29 |
32 document.querySelector('dialog').showModal(); | |
33 document.querySelector('#text').focus(); | 30 document.querySelector('#text').focus(); |
34 | 31 |
35 debug('Testing that calling focus() on label sends focus to its target.'); | 32 debug('Testing that calling focus() on label sends focus to its target.'); |
36 label = document.querySelector('label'); | 33 label = document.querySelector('label'); |
37 label.focus(); | 34 label.focus(); |
38 shouldBe('document.activeElement', "document.querySelector('#submit')"); | 35 shouldBe('document.activeElement', "document.querySelector('#submit')"); |
39 | 36 |
40 debug('Testing that clicking on the label sends focus to document.body.'); | 37 debug('Testing that clicking on the label sends focus to document.body.'); |
41 clickOn(label); | 38 clickOn(label); |
42 shouldBe('document.activeElement', 'document.body'); | 39 shouldBe('document.activeElement', 'document.body'); |
43 </script> | 40 </script> |
44 </html> | 41 </html> |
OLD | NEW |