<!DOCTYPE html>
<html>
<head>
<title>Document::nodesFromRect : CSS rotate transforms - bug 85792</title>
<style type="text/css">
    #sandbox {
        position: absolute;
        left: 0px;
        top: 0px;
        width: 700px;
        height: 700px;
    }
    #layer {
        position: absolute;
        left: 200px;
        top: 200px;
        width: 300px;
        height: 300px;
    }
    .rotate45 { -webkit-transform: rotate(45deg); }
    .rotate90 { -webkit-transform: rotate(90deg); }
    .rotate180 { -webkit-transform: rotate(180deg); }
    #layer > #fleft { float: left; width: 50px; height: 300px; }
    #layer > #fright { float: right; width: 50px; height: 300px; }
    #layer > .hbox { height: 100px; margin-right: 50px; margin-left: 50px }
</style>
<script src="../../../resources/js-test-pre.js"></script>
<script src="resources/nodesFromRect.js"></script>
</head>

<body>
    <div id=sandbox>
        <div id=layer>
            <div id=fleft></div>
            <div id=fright></div>
            <div id=box1 class=hbox></div>
            <div id=box2 class=hbox></div>
            <div id=box3 class=hbox></div>
        </div>
    </div>

    <script>
        function runTest()
        {
            description(document.title);
            var e = {};

            // Set up shortcut access to elements
            ['sandbox', 'layer', 'fleft', 'fright', 'box1', 'box2', 'box3'].forEach(function(a) {
                e[a] = document.getElementById(a);
            });

            window.scrollTo(0, 0);
            debug('Check unrotated area-testing for sanity');
            check(150, 150, 30, 30, 30, 30, [e.sandbox]);
            check(220, 220, 10, 10, 10, 10, [e.fleft]);
            check(470, 220, 10, 10, 10, 10, [e.fright]);
            check(270, 220, 10, 10, 10, 10, [e.box1]);
            check(270, 320, 10, 10, 10, 10, [e.box2]);
            check(240, 290, 30, 30, 30, 30, [e.fleft, e.box2, e.box1, e.layer]);
            check(180, 220, 10, 30, 10, 0, [e.fleft, e.layer, e.sandbox]);
            check(270, 280, 0, 10, 30, 10, [e.box2, e.box1, e.layer]);
            check(180, 220, 10, 0, 10, 30, [e.sandbox]);


            debug('Check rotated 180deg');
            e['layer'].setAttribute('class', 'rotate180');
            check(150, 150, 30, 30, 30, 30, [e.sandbox]);
            check(220, 220, 10, 10, 10, 10, [e.fright]);
            check(470, 220, 10, 10, 10, 10, [e.fleft]);
            check(270, 220, 10, 10, 10, 10, [e.box3]);
            check(270, 320, 10, 10, 10, 10, [e.box2]);
            check(240, 290, 30, 30, 30, 30, [e.fright, e.box3, e.box2, e.layer]);
            check(180, 220, 10, 30, 10, 0, [e.fright, e.layer, e.sandbox]);
            check(270, 280, 0, 10, 30, 10, [e.box3, e.box2, e.layer]);
            check(180, 220, 10, 0, 10, 30, [e.sandbox]);

            debug('Check rotated 90deg');
            e['layer'].setAttribute('class', 'rotate90');
            check(150, 150, 30, 30, 30, 30, [e.sandbox]);
            check(220, 280, 10, 10, 10, 10, [e.box3]);
            check(470, 280, 10, 10, 10, 10, [e.box1]);
            check(270, 220, 10, 10, 10, 10, [e.fleft]);
            check(270, 470, 10, 10, 10, 10, [e.fright]);
            check(290, 240, 30, 30, 30, 30, [e.fleft, e.box3, e.box2, e.layer]);
            check(180, 280, 10, 30, 10, 0, [e.box3, e.layer, e.sandbox]);
            check(330, 180, 0, 10, 30, 10, [e.fleft, e.layer, e.sandbox]);
            check(280, 260, 40, 10, 10, 10, [e.fleft, e.box3, e.layer]);

            debug('Check rotated 45deg');
            e['layer'].setAttribute('class', 'rotate45');
            check(150, 150, 30, 30, 30, 30, [e.sandbox]);
            check(260, 260, 10, 10, 10, 10, [e.fleft]);
            check(440, 440, 10, 10, 10, 10, [e.fright]);
            check(440, 260, 10, 10, 10, 10, [e.box1]);
            check(260, 440, 10, 10, 10, 10, [e.box3]);
            check(350, 140, 20, 20, 20, 20, [e.fleft, e.layer, e.sandbox]);
            check(350, 140, 20, 20, 70, 20, [e.fleft, e.box1, e.layer, e.sandbox]);
            check(350, 350, 40, 40, 40, 40, [e.box3, e.box2, e.box1, e.layer]);
            check(260, 260, 1, 27, 1, 27, [e.fleft]);

        }

        window.onload = runTest;
    </script>

    <p id='description'></p>
    <span id="console"></span>
    <script src="../../../resources/js-test-post.js"></script>
</body>
</html>

