<!DOCTYPE html>

<style>
    body { font: 16px/16px monospace; }

    .region {
        border: 1px solid blue;
        padding: 2px;
        width: 450px;
        height: 40px;
    }

    #region4 {
        height: 308px;
    }

    p {
        margin: 0px;
    }

    #container {
        overflow: auto; 
        border: 3px solid blue;
        width: 470px;
        height: 250px; 
        padding: 30px;
    }

    #inner_scroll {
        height: 75px;
        border: 2px solid green;
        margin: 5px;
        overflow: scroll;
        padding: 5px;
    }
</style>

<script>
    onload = function() {
        if (window.eventSender) {
            eventSender.mouseMoveTo(100, 300);
            eventSender.continuousMouseScrollBy(0, -10000);
            eventSender.mouseMoveTo(100, 100);
            eventSender.continuousMouseScrollBy(0, -10000);
            eventSender.mouseMoveTo(0, 0);
        }
    }
</script>

<body>
    <p><b>The text passes if everything can be scrolled normally using the mouse wheel. Scrolling inside the green div should work until it reaches the end and then the blue container should scroll.</b></p></br>

    <div id="container">
        <div class="region">
            <p>Assume that there is enough content in the flow to fill the regions and the size of the </p>
        </div>
        <div class="region">
            <p style="margin-top: 1px">container is less than the size of regions so that the container gets vertical scrollbar.</p>
        </div>
        <div class="region">
            <p style="margin-top: 1px">Case1. If the mouse cursor is over the flow thread fragmented content inside a region,</p>
        </div>
        <div class="region" id="region4">
            <p style="margin-top: 1px">the user is unable to scroll the content inside the container. Case2. However, if the mouse is outside the flow thread content but still inside the container, then the user is able to scroll the container content.</p>
            <div id="inner_scroll">
                <p>Assume that there is enough content in the flow to fill the regions and the size of the container is less than the size of regions so that the container gets vertical scrollbar. Case1. If the mouse cursor is over the flow thread fragmented content inside a region, the user is unable to scroll the content inside the container. Case2. However, if the mouse is outside the flow thread content but still inside the container, then the user is able to scroll the container content. There *should be* a possibility to scroll the container content even when the mouse cursor is over the flow thread content in regions. (Case1)</p>
                <p>Assume that there is enough content in the flow to fill the regions and the size of the container is less than the size of regions so that the container gets vertical scrollbar. Case1. If the mouse cursor is over the flow thread fragmented content inside a region, the user is unable to scroll the content inside the container. Case2. However, if the mouse is outside the flow thread content but still inside the container, then the user is able to scroll the container content. There *should be* a possibility to scroll the container content even when the mouse cursor is over the flow thread content in regions. (Case1)</p>
                <p>Assume that there is enough content in the flow to fill the regions and the size of the container is less than the size of regions so that the container gets vertical scrollbar. Case1. If the mouse cursor is over the flow thread fragmented content inside a region, the user is unable to scroll the content inside the container. Case2. However, if the mouse is outside the flow thread content but still inside the container, then the user is able to scroll the container content. There *should be* a possibility to scroll the container content even when the mouse cursor is over the flow thread content in regions. (Case1)</p>
            </div>
            <p>Assume that there is enough content in the flow to fill the regions and the size of the container is less than the size of regions so that the container gets vertical scrollbar. Case1. If the mouse cursor is over the flow thread fragmented content inside a region, the user is unable to scroll the content inside the container. Case2.</p>
        </div>
    </div>
</body>
