<!DOCTYPE html>
<style>
/* Avoid padding on the sides that have a scrollbar, since our current
behavior is inconsistent. */
.scrollable { overflow:scroll; width:2px; height:2px; border:solid; border-width:1px 2px 2px 1px; padding:1px 2px 0; }
.ltr { direction:ltr; padding-right:0; }
.rtl { direction:rtl; padding-left:0; }
.scrollable > div { width:500px; height:600px; }
.scrollable > div.inline-block { display:inline-block; vertical-align:top; }
</style>
<div class="scrollable ltr" id="ltrWithBlockLevel">
<div></div>
</div>
<div class="scrollable rtl" id="rtlWithBlockLevel">
<div></div>
</div>
<div class="scrollable ltr" id="ltrWithInlineLevel">
<div class="inline-block"></div>
</div>
<div class="scrollable rtl" id="rtlWithInlineLevel">
<div class="inline-block"></div>
</div>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
test(function() {
var elm = document.getElementById("ltrWithBlockLevel");
assert_equals(elm.scrollWidth, 502);
assert_equals(elm.scrollHeight, 601);
}, "LTR scrollable with block-level child");
test(function() {
var elm = document.getElementById("rtlWithBlockLevel");
assert_equals(elm.scrollWidth, 502);
assert_equals(elm.scrollHeight, 601);
}, "RTL scrollable with block-level child");
test(function() {
var elm = document.getElementById("ltrWithInlineLevel");
assert_equals(elm.scrollWidth, 502);
assert_equals(elm.scrollHeight, 601);
}, "LTR scrollable with inline-level child");
test(function() {
var elm = document.getElementById("rtlWithInlineLevel");
assert_equals(elm.scrollWidth, 502);
assert_equals(elm.scrollHeight, 601);
}, "RTL scrollable with inline-level child");
</script>