| <!DOCTYPE html> |
| <html> |
| <body> |
| <div id=test_body> |
| <h3> |
| Test that verifies the behavior of text-align:-webkit-match-parent. |
| </h3> |
| |
| <div> |
| The test passes if all the lines containing the text "Left Align" are aligned to the left and vice-versa for "Right Align". |
| </div> |
| |
| <h4>Cases where the outermost div is LTR.</h4> |
| <div style="text-align:start"> |
| <div style="text-align:-webkit-match-parent" dir=rtl class=l><span>Left Aligned</span></div> |
| </div> |
| |
| <div style="text-align:start" dir=ltr> |
| <div style="text-align:-webkit-match-parent" dir=rtl class=l><span>Left Aligned</span></div> |
| </div> |
| |
| <div style="text-align:end" dir=ltr> |
| <div style="text-align:-webkit-match-parent" dir=rtl class=r><span>Right Aligned</span></div> |
| </div> |
| |
| <h4>Cases where the outermost div is RTL.</h4> |
| |
| <div style="text-align:start" dir=rtl> |
| <div style="text-align:-webkit-match-parent" dir=ltr class=r><span>Right Aligned</span></div> |
| </div> |
| |
| <div style="text-align:end" dir=rtl> |
| <div style="text-align:-webkit-match-parent" dir=ltr class=l><span>Left Aligned</span></div> |
| </div> |
| |
| <h4>Changing text-align programmatically</h4> |
| |
| <div id=programmatic_change_div style="text-align:end" dir=ltr> |
| <div style="text-align:-webkit-match-parent" dir=rtl class=l><span>Left Aligned</span></div> |
| </div> |
| |
| <script> |
| var top_div = document.getElementById('programmatic_change_div'); |
| top_div.style.setProperty('text-align', 'start', 'important'); |
| </script> |
| |
| <h4>check -webkit-match-parent in a nested div</h4> |
| |
| <div style="text-align:end" dir=ltr> |
| <div> |
| <div style="text-align:-webkit-match-parent" dir=rtl class=r><span>Right Aligned</span></div> |
| </div> |
| </div> |
| |
| <div style="text-align:start" dir=ltr> |
| <div style="text-align:-webkit-match-parent" dir=rtl> |
| <div style="text-align:-webkit-match-parent" dir=rtl class=l><span>Left Aligned</span></div> |
| </div> |
| </div> |
| </div> |
| |
| <pre id="console"> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| // Checks that the given element is left aligned if expectedAlignment is 'left', or right aligned if |
| // expectedAlignment is 'right'. |
| // Our check for right alignment is just !isLeftAligned at the moment, but this is |
| // enough for our purposes. |
| function assertAlignment(element, i, expectedAlignment) |
| { |
| var enclosingDiv = element; |
| var computedStyle = window.getComputedStyle(enclosingDiv, null); |
| var innerSpan = enclosingDiv.children[0]; |
| var leftAlign = expectedAlignment == 'left'; |
| var isLeftAligned = (enclosingDiv.offsetLeft == innerSpan.offsetLeft); |
| |
| if (window.testRunner) { |
| if (leftAlign && isLeftAligned && computedStyle.textAlign == 'left') |
| innerSpan.innerHTML = 'PASS'; |
| else if (!leftAlign && !isLeftAligned && computedStyle.textAlign == 'right') |
| innerSpan.innerHTML = 'PASS'; |
| else |
| innerSpan.innerHTML = 'FAIL'; |
| } |
| } |
| |
| // Actual test. |
| var leftAlignedDivs = document.querySelectorAll(".l"); |
| for (var i = 0; i < leftAlignedDivs.length; i++) |
| assertAlignment(leftAlignedDivs[i], i, 'left'); |
| |
| var rightAlignedDivs = document.querySelectorAll(".r"); |
| for (var i = 0; i < rightAlignedDivs.length; i++) |
| assertAlignment(rightAlignedDivs[i], i, 'right'); |
| |
| </script> |
| </pre> |
| |
| </body> |
| </html> |