chromium/third_party/blink/web_tests/overflow/overflow-basic-002.html

<!doctype html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<style>
#container {
  overflow: auto;
  border: 1px solid black;
  width: 200px;
  height: 100px;
  padding: 5px 10px 15px 20px;
}
#target {
  width: 300px;
  height: 200px;
  background-color: rgba(0, 255, 0, 0.3);
}
</style>
<p>Overflow with container padding, and block children: container block_end padding is part of overflow, inline_end is not part of overflow.</p>
<div id="container">
  <div id="target"></div>
</div>
<script>

var container = document.querySelector('#container');
var target = document.querySelector('#target');

test(function() {
  var containerStyle = window.getComputedStyle(container);
  assert_equals(container.scrollHeight, target.offsetHeight +
    parseInt(containerStyle.paddingTop) +
    parseInt(containerStyle.paddingBottom));
  assert_equals(container.scrollWidth, target.offsetWidth +
    parseInt(containerStyle.paddingLeft) +
    parseInt(containerStyle.paddingRight));
}, "overflow with padding");

test(function() {
  target.style.height = "400px";
  var containerStyle = window.getComputedStyle(container);
  assert_equals(container.scrollHeight, target.offsetHeight +
    parseInt(containerStyle.paddingTop) +
    parseInt(containerStyle.paddingBottom));
  assert_equals(container.scrollWidth, target.offsetWidth +
    parseInt(containerStyle.paddingLeft) +
    parseInt(containerStyle.paddingRight));
}, "overflow with paddding, after resize");
</script>