OLD | NEW |
1 'use strict'; | 1 'use strict'; |
2 | 2 |
3 function innermostActiveElement(element) | 3 function innermostActiveElement(element) |
4 { | 4 { |
5 element = element || document.activeElement; | 5 element = element || document.activeElement; |
6 if (isIFrameElement(element)) { | 6 if (isIFrameElement(element)) { |
7 if (element.contentDocument.activeElement) | 7 if (element.contentDocument.activeElement) |
8 return innermostActiveElement(element.contentDocument.activeElement)
; | 8 return innermostActiveElement(element.contentDocument.activeElement)
; |
9 return element; | 9 return element; |
10 } | 10 } |
(...skipping 24 matching lines...) Expand all Loading... |
35 | 35 |
36 fromElement.focus(); | 36 fromElement.focus(); |
37 if (!isInnermostActiveElement(from)) | 37 if (!isInnermostActiveElement(from)) |
38 return false; | 38 return false; |
39 | 39 |
40 if (direction == 'forward') | 40 if (direction == 'forward') |
41 navigateFocusForward(); | 41 navigateFocusForward(); |
42 else | 42 else |
43 navigateFocusBackward(); | 43 navigateFocusBackward(); |
44 | 44 |
45 return isInnermostActiveElement(to); | 45 return true; |
46 } | 46 } |
47 | 47 |
48 function navigateFocusForward() | 48 function navigateFocusForward() |
49 { | 49 { |
50 if (window.eventSender) | 50 if (window.eventSender) |
51 eventSender.keyDown('\t'); | 51 eventSender.keyDown('\t'); |
52 } | 52 } |
53 | 53 |
54 function navigateFocusBackward() | 54 function navigateFocusBackward() |
55 { | 55 { |
56 if (window.eventSender) | 56 if (window.eventSender) |
57 eventSender.keyDown('\t', ['shiftKey']); | 57 eventSender.keyDown('\t', ['shiftKey']); |
58 } | 58 } |
59 | 59 |
| 60 function assert_focus_navigation(from, to, direction) |
| 61 { |
| 62 const result = shouldNavigateFocus(from, to, direction); |
| 63 assert_true(result, 'Failed to focus ' + from); |
| 64 const message = 'Focus should move ' + direction + |
| 65 ' from ' + from + ' to ' + to; |
| 66 var toElement = getNodeInComposedTree(to); |
| 67 assert_equals(innermostActiveElement(), toElement, message); |
| 68 } |
| 69 |
60 function assert_focus_navigation_forward(elements) | 70 function assert_focus_navigation_forward(elements) |
61 { | 71 { |
| 72 assert_true(elements.length >= 2, |
| 73 'length of elements should be greater than or equal to 2.'); |
62 for (var i = 0; i + 1 < elements.length; ++i) | 74 for (var i = 0; i + 1 < elements.length; ++i) |
63 assert_true(shouldNavigateFocus(elements[i], elements[i + 1], 'forward')
, | 75 assert_focus_navigation(elements[i], elements[i + 1], 'forward'); |
64 'Focus should move from ' + elements[i] + ' to ' + elements[
i + 1]); | |
65 } | 76 } |
66 | 77 |
67 function assert_focus_navigation_backward(elements) | 78 function assert_focus_navigation_backward(elements) |
68 { | 79 { |
| 80 assert_true(elements.length >= 2, |
| 81 'length of elements should be greater than or equal to 2.'); |
69 for (var i = 0; i + 1 < elements.length; ++i) | 82 for (var i = 0; i + 1 < elements.length; ++i) |
70 assert_true(shouldNavigateFocus(elements[i], elements[i + 1], 'backward'
), | 83 assert_focus_navigation(elements[i], elements[i + 1], 'backward'); |
71 'Focus should move from ' + elements[i] + ' to ' + elements[
i + 1]); | |
72 } | 84 } |
OLD | NEW |