chromium/third_party/blink/web_tests/fast/frames/frame-deep-nested-resize.html

<html>
    <head>
        <script>
            if (window.testRunner)
                testRunner.dumpAsText();

            function log(frame, success, isWidth, size) {
              if (window.testRunner) {
                alert(frame.name + ' resized correctly = ' + (success ? 'true' : 'false'));
              } else {
                frame.document.close();
                if (success)
                    frame.document.write('<p>Success!</p>');
                else {
                    var rect = frame.frameElement.getBoundingClientRect();
                    frame.document.write('<p>Resize until ');
                    frame.document.write(isWidth ? 'width:' : 'height:');
                    frame.document.write(isWidth ? rect.width : rect.height);
                    frame.document.write(' = ' + size + '</p>');
                }
              }
            }

            function checkProgress() {
                if (!window.testRunner)
                    checkSuccess();
            }

            function init() {
                if (window.testRunner) {
                    //Move the One/* vertical resizer ten pixels west...
                    eventSender.mouseMoveTo(90, 400);
                    eventSender.mouseDown();
                    eventSender.mouseMoveTo(100, 400);
                    eventSender.mouseUp();

                    //Move the Two/Three horizontal resizer ten pixels south...
                    eventSender.mouseMoveTo(400, 70);
                    eventSender.mouseDown();
                    eventSender.mouseMoveTo(400, 80);
                    eventSender.mouseUp();

                    //Move the Three/Four horizontal resizer ten pixels south...
                    eventSender.mouseMoveTo(400, 126);
                    eventSender.mouseDown();
                    eventSender.mouseMoveTo(400, 136);
                    eventSender.mouseUp();

                    //Move the Four/Five horizontal resizer ten pixels south...
                    eventSender.mouseMoveTo(400, 275);
                    eventSender.mouseDown();
                    eventSender.mouseMoveTo(400, 285);
                    eventSender.mouseUp();

                    //Move the Five/Six horizontal resizer ten pixels south...
                    eventSender.mouseMoveTo(400, 392);
                    eventSender.mouseDown();
                    eventSender.mouseMoveTo(400, 402);
                    eventSender.mouseUp();

                    //Move the Six/Seven vertical resizer 200 pixels east...
                    eventSender.mouseMoveTo(788, 400);
                    eventSender.mouseDown();
                    eventSender.mouseMoveTo(588, 400);
                    eventSender.mouseUp();

                    //Move the Seven/Eight vertical resizer 100 pixels east...
                    eventSender.mouseMoveTo(794, 400);
                    eventSender.mouseDown();
                    eventSender.mouseMoveTo(694, 400);
                    eventSender.mouseUp();

                    checkSuccess();
                } else {
                    checkProgress();
                }
            }
            function checkSuccess() {
                    log(One, One.frameElement.getBoundingClientRect().width == 100, true, 100)
                    log(Two, Two.frameElement.getBoundingClientRect().height == 80, false, 80)
                    log(Three, Three.frameElement.getBoundingClientRect().height == 50, false, 50)
                    log(Four, Four.frameElement.getBoundingClientRect().height == 143, false, 143)
                    log(Five, Five.frameElement.getBoundingClientRect().height == 111, false, 111)
                    log(Six, Six.frameElement.getBoundingClientRect().height == 192, false, 192)
                    log(Seven, Seven.frameElement.getBoundingClientRect().width == 100, true, 100)
                    log(Eight, Eight.frameElement.getBoundingClientRect().width == 100, true, 100)
            }

            window.onload = init;
        </script>
    </head>
        <frameset cols='90,*' onmousemove="checkProgress()" onmouseup="checkProgress()" onmousedown="checkProgress()">
            <frame framemargin=0 frameborder=1 name="One" framespacing=1 />
            <frameset rows='70,50,*' onmousemove="checkProgress()" onmouseup="checkProgress()" onmousedown="checkProgress()">
                <frame framemargin=0 frameborder=1 name="Two" framespacing=1 />
                <frame framemargin=0 frameborder=1 name="Three" framespacing=1 />
                <frameset cols='*,0,0' onmousemove="checkProgress()" onmouseup="checkProgress()" onmousedown="checkProgress()">
                    <frameset rows='30%,25%,*' onmousemove="checkProgress()" onmouseup="checkProgress()" onmousedown="checkProgress()">
                        <frame framemargin=0 frameborder=1 name="Four" framespacing=1 />
                        <frame framemargin=0 frameborder=1 name="Five" framespacing=1 />
                        <frame framemargin=0 frameborder=1 name="Six" framespacing=1 />
                    </frameset>
                    <frame framemargin=0 frameborder=1 name="Seven" framespacing=1 />
                    <frame framemargin=0 frameborder=1 name="Eight" framespacing=1 />
                </frameset>
            </frameset>
        </frameset>
</html>