<!DOCTYPE html>
<html>
<head>
    <style>
        
    </style>
    <script src="../../../resources/js-test-pre.js"></script>
    <script src="../../../resources/ui-helper.js"></script>
    
    <script>
        jsTestIsAsync = true;

        var minXOffset;
        var maxXOffset;
        var minYOffset;
        var maxYOffset;

        function reset()
        {
            minXOffset = 0;
            maxXOffset = -1000;
            minYOffset = 0;
            maxYOffset = -1000;
        }

        async function scrollTest()
        {
            description('Swipes should rubber-band on each side.');
        
            window.addEventListener('scroll', () => {
                minXOffset = Math.min(minXOffset, window.pageXOffset);
                maxXOffset = Math.max(maxXOffset, window.pageXOffset);

                minYOffset = Math.min(minYOffset, window.pageYOffset);
                maxYOffset = Math.max(maxYOffset, window.pageYOffset);
            }, false);


            if (!window.eventSender) {
                finishJSTest();
                return;
            }

            reset();
            debug('');
            debug('Swipe to the left');
            
            await UIHelper.mouseWheelScrollAt(10, 10, 1, 0, 10, 0);
            shouldBeTrue('minXOffset < 0');
            shouldBe('maxXOffset', '0');
            shouldBe('minYOffset', '0');
            shouldBe('maxYOffset', '0');

            reset();
            debug('');
            debug('Swipe to the right');
            await UIHelper.mouseWheelScrollAt(10, 10, -1, 0, -10, 0);
            shouldBe('minXOffset', '0');
            shouldBeTrue('maxXOffset > 0');
            shouldBe('minYOffset', '0');
            shouldBe('maxYOffset', '0');

            reset();
            debug('');
            debug('Swipe down');
            await UIHelper.mouseWheelScrollAt(10, 10, 0, -1, 0, -10);
            shouldBe('minXOffset', '0');
            shouldBe('maxXOffset', '0');
            shouldBe('minYOffset', '0');
            shouldBeTrue('maxYOffset > 0');

            reset();
            debug('');
            debug('Swipe up');
            await UIHelper.mouseWheelScrollAt(10, 10, 0, 1, 0, 10);
            shouldBe('minXOffset', '0');
            shouldBe('maxXOffset', '0');
            shouldBeTrue('minYOffset < 0');
            shouldBe('maxYOffset', '0');
            finishJSTest();
        }

        window.addEventListener('load', () => {
            scrollTest();
        }, false);
    </script>
</head>
<body>
    
    <script src="../../../resources/js-test-post.js"></script>
</body>
</html>
