| 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 |