| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| <script src="resources/shadow-dom.js"></script> |
| </head> |
| <body> |
| <p>This tests that pressing Tab key should traverse into shadow DOM subtrees, and pressing Shift-Tab should reverse the order.</p> |
| <div id="sandbox"></div> |
| <pre id="console"></pre> |
| <script> |
| |
| function testWithDistributedNodes() |
| { |
| var sandbox = document.getElementById('sandbox'); |
| sandbox.innerHTML = ''; |
| sandbox.appendChild( |
| createDOM('div', {'id': 'top-div'}, |
| createDOM('input', {'id': 'input-1', 'tabindex': 1}), |
| createDOM('div', {'id': 'shadowhost', 'tabindex': 1}, |
| createShadowRoot( |
| createDOM('content', {'select': '#distributed-node-1'}), |
| createDOM('input', {'id': 'input-2', 'tabindex': 1}), |
| createDOM('content', {'select': '#distributed-node-2'})), |
| createDOM('input', {'id': 'distributed-node-2', 'tabindex': 1}), |
| createDOM('input', {'id': 'distributed-node-1', 'tabindex': 1})), |
| createDOM('input', {'id': 'input-3', 'tabindex': 1}))); |
| sandbox.offsetLeft; |
| |
| var elementsInFocusNavigationOrder = ['input-1', 'shadowhost', 'distributed-node-1', 'shadowhost/input-2', 'distributed-node-2', 'input-3']; |
| testFocusNavigationFowrad(elementsInFocusNavigationOrder); |
| elementsInFocusNavigationOrder.reverse() |
| testFocusNavigationBackward(elementsInFocusNavigationOrder) |
| } |
| |
| function testDetailsSummary() |
| { |
| debug('details/summary elements use Shadow DOM and distributed nodes internally.') |
| var sandbox = document.getElementById('sandbox'); |
| sandbox.innerHTML = ''; |
| sandbox.appendChild( |
| createDOM('div', {'id': 'top-div'}, |
| createDOM('input', {'id': 'input-1'}), |
| createDOM('details', {'id': 'details-1'}, |
| createDOM('summary', {'id': 'summary-1'})), |
| createDOM('input', {'id': 'input-2'}))); |
| sandbox.offsetLeft; |
| |
| var elementsInFocusNavigationOrder = ['input-1', 'summary-1', 'input-2']; |
| testFocusNavigationFowrad(elementsInFocusNavigationOrder); |
| elementsInFocusNavigationOrder.reverse() |
| testFocusNavigationBackward(elementsInFocusNavigationOrder); |
| } |
| |
| |
| function test() { |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| if (!window.eventSender) { |
| testFailed(''); |
| return; |
| } |
| |
| testWithDistributedNodes() |
| testDetailsSummary(); |
| |
| debug('Test finished.'); |
| } |
| |
| test(); |
| |
| </script> |
| </body> |
| </html> |