chromium/third_party/blink/web_tests/fast/scrolling/scroll-max-value.html

<!DOCTYPE html>
<html>
    <head>
        <style>
            #test_section {
                width: 300px;
                height: 300px;
                overflow: auto;
                border: 1px solid silver;
            }
            #test_section > article {
                width: 1000px;
                height: 1000px;
                position: relative;
            }
            #top-left {
                position: absolute;
                top: 0;
                left: 0;
            }
            #bottom-right {
                position: absolute;
                bottom: 0;
                right: 0;
            }
            #test_input {
              width: 300px;
              font-size: 1em;
              padding: 5px 10px 15px 20px;
              border: 1px solid silver;
            }
            #test_input_search {
              width: 300px;
              font-size: 1em;
              padding: 5px 10px 15px 20px;
              border: 1px solid silver;
            }
        </style>
        <script src="../../resources/js-test.js"></script>
    </head>
    <body>
        <section id="test_section">
            <article>
                <span id="top-left">top left</span>
                <span id="bottom-right">bottom right</span>
            </article>
        </section>
        <section>
          <input id="test_input" type="text" value="Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit">
          <input id="test_input_search" type="search" value="Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit">
        </section>
        <p>
            Tests that large scrollLeft/Top values scroll to maximum possible value, i.e, Element.scrollWidth/Height - Element.clientWidth/Height.
        </p>
        <script>

          testScrollToMax('test_section');
          testScrollToMax('test_input');
          testScrollToMax('test_input_search');

          function testScrollToMax(id) {
            var el = document.getElementById(id);
            expectedScrollLeft = el.scrollWidth - el.clientWidth;
            expectedScrollTop = el.scrollHeight - el.clientHeight;

            el.scrollLeft = 100000000;
            el.scrollTop = 100000000;

            if (el.scrollLeft == expectedScrollLeft) {
                testPassed('Setting ' + el.id + '.scrollLeft = 100000000 ' +
                    'scrolls all the way to the right.');
            } else {
                testFailed('Setting ' + el.id + '.scrollLeft = 100000000 ' +
                   'scrolls to ' + el.scrollLeft + ', expected ' +
                    expectedScrollLeft + '.');
            }

            if (el.scrollTop == expectedScrollTop) {
                testPassed('Setting ' + el.id + '.scrollTop = 100000000 ' +
                    'scrolls all the way to the bottom.');
            } else {
                testFailed('Setting ' + el.id + '.scrollTop = 100000000 ' +
                    'scrolls to ' + el.scrollTop + ', expected ' +
                     expectedScrollTop + '.');
            }
          }
        </script>
    </body>
</html>