corrade-http-templates – Rev 57

Subversion Repositories:
Rev:
define( [
        "qunit",
        "jquery",
        "ui/effects/effect-scale"
], function( QUnit, $ ) {

QUnit.module( "effect.scale: Scale" );

function run( position, v, h, vo, ho ) {
        var desc = "End Position Correct: " + position + " (" + v + "," + h + ") - origin: (" + vo + "," + ho + ")";
        QUnit.test( desc, function( assert ) {
                var ready = assert.async();
                assert.expect( 2 );
                function complete() {
                        assert.close( parseInt( test.css( h ), 10 ), target[ h ], 1, "Horizontal Position Correct " + desc );
                        assert.close( parseInt( test.css( v ), 10 ), target[ v ], 1, "Vertical Position Correct " + desc );
                        ready();
                }
                var test = $( ".testScale" ),
                        css = {
                                position: position
                        },
                        effect = {
                                effect: "scale",
                                mode: "effect",
                                percent: 200,
                                origin: [ vo, ho ],
                                complete: complete,
                                duration: 1
                        },
                        target = {},
                        relative = position === "relative";

                css[ h ] = 33;
                css[ v ] = 33;
                target[ h ] = h === ho ? css[ h ] : ho === "center" ? css[ h ] - 35 : css[ h ] - 70;
                target[ v ] = v === vo ? css[ v ] : vo === "middle" ? css[ v ] - 35 : css[ v ] - 70;
                if ( relative && h === "right" ) {
                        target[ h ] += 70;
                }
                if ( relative && v === "bottom" ) {
                        target[ v ] += 70;
                }
                test.css( css );
                test.effect( effect );
        } );
}

function suite( position ) {
        run( position, "top", "left", "top", "left" );
        run( position, "top", "left", "middle", "center" );
        run( position, "top", "left", "bottom", "right" );
        /* Firefox is currently not capable of supporting detection of bottom and right....
        run( position, "bottom", "right", "top", "left" );
        run( position, "bottom", "right", "middle", "center" );
        run( position, "bottom", "right", "bottom", "right" );
        */
}

$( function() {
        suite( "absolute" );
        suite( "relative" );
        var fixedElem = $( "<div>" )
                .css( {
                        position: "fixed",
                        top: 10
                } )
                .appendTo( "body" );
        if ( fixedElem.offset().top === 10 ) {
                suite( "fixed" );
        }
} );

} );