<!DOCTYPE html>
<title>Bug 85856: Test if WebKit can show the left side of the inner elements regardless of the position of its scrollbars. To test manually, open this document and verify we can see "ABC" both in the LTR element and in the RTL element.</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<body dir="ltr" style="-webkit-writing-mode: vertical-rl;">
<div dir="ltr" id="outer-ltr" style="width: 200px; height: 200px; overflow: scroll;">
<div id="inner-ltr" style="text-align: left; width: 300px; height: 300px;">ABC</div>
</div>
<div dir="rtl" id="outer-rtl" style="width: 200px; height: 200px; overflow: scroll;">
<div id="inner-rtl" style="text-align: left; width: 300px; height: 300px;">ABC</div>
</div>
<script>
test(function() {
    var outerLTR = document.getElementById("outer-ltr");
    var innerLTR = document.getElementById("inner-ltr");
    var outerRTL = document.getElementById("outer-rtl");
    var innerRTL = document.getElementById("inner-rtl");
    outerLTR.scrollLeft = 0;
    outerRTL.scrollLeft = 0;

    // Verify the widths of the outer RTL elements are the same as the widths of the outer LTR elements.
    assert_equals(outerLTR.offsetWidth, outerRTL.offsetWidth);
    assert_equals(outerLTR.clientWidth, outerRTL.clientWidth);
    assert_equals(outerLTR.scrollWidth, outerRTL.scrollWidth);

    // Verify the widths of the inner RTL elements are the same as the widths of the inner LTR elements.
    assert_equals(innerLTR.offsetWidth, innerRTL.offsetWidth);
    assert_equals(innerLTR.clientWidth, innerRTL.clientWidth);
    assert_equals(innerLTR.scrollWidth, innerRTL.scrollWidth);

    // Verify the width of the vertical scrollbar of the outer RTL element is the same as the one of the outer LTR element regardless of their scrollbar positions.
    var scrollbarWidthLTR = outerLTR.offsetWidth - outerLTR.clientWidth;
    var scrollbarWidthRTL = outerRTL.offsetWidth - outerRTL.clientWidth;
    assert_equals(scrollbarWidthLTR, scrollbarWidthRTL);
});
</script>
</body>
