<!DOCTYPE html>
<html>
<head>
    <style>
        body {
            height: 1000px;
        }
        .scroller {
            margin: 10px;
            width: 100px;
            height: 100px;
        }
        .contents {
            width: 100%;
            height: 200%;
        }
        .auto {
            overflow: auto;
        }
        .scroll {
            overflow: scroll;
        }
    </style>
    <script src="../../../../resources/js-test-pre.js"></script>
    <script>
        jsTestIsAsync = true;
        
        let autoScroller;
        let scrollScroller;

        window.addEventListener('load', () => {
            description('Test scrollbar state internals');
            if (!window.internals)
                return;
            
            debug('Document');
            shouldBeEqualToString('internals.verticalScrollbarState()', 'enabled');
            shouldBeEqualToString('internals.horizontalScrollbarState()', 'none');

            autoScroller = document.querySelector('.auto.scroller')
            scrollScroller = document.querySelector('.scroll.scroller')

            debug('overflow:auto');
            shouldBeEqualToString('internals.verticalScrollbarState(autoScroller)', 'enabled');
            shouldBeEqualToString('internals.horizontalScrollbarState(autoScroller)', 'none');

            debug('overflow:scroll');
            shouldBeEqualToString('internals.verticalScrollbarState(scrollScroller)', 'enabled');
            shouldBeEqualToString('internals.horizontalScrollbarState(scrollScroller)', 'disabled');

            finishJSTest();
        }, false);
    </script>
</head>
<body>
    <div class="auto scroller">
        <div class="contents"></div>
    </div>
    <div class="scroll scroller">
        <div class="contents"></div>
    </div>
    <script src="../../../../resources/js-test-post.js"></script>
</body>
</html>
