X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fdimensions.js;h=b38e73bba79d3b2b85d85fc9deb54b8c2fd940f9;hb=3e0cc815043c2425819743e907a0ce263a7ce164;hp=af35850f5cbac7b323b76e493279e7208bd4f6b7;hpb=aea452f1624df811c8b0b2916bfb22213d153f9d;p=jquery.git diff --git a/test/unit/dimensions.js b/test/unit/dimensions.js index af35850..b38e73b 100644 --- a/test/unit/dimensions.js +++ b/test/unit/dimensions.js @@ -1,53 +1,165 @@ module("dimensions"); +function pass( val ) { + return val; +} + +function fn( val ) { + return function(){ return val; }; +} + +function testWidth( val ) { + expect(8); + + var $div = jQuery("#nothiddendiv"); + $div.width( val(30) ); + equals($div.width(), 30, "Test set to 30 correctly"); + $div.hide(); + equals($div.width(), 30, "Test hidden div"); + $div.show(); + $div.width( val(-1) ); // handle negative numbers by ignoring #1599 + equals($div.width(), 30, "Test negative width ignored"); + $div.css("padding", "20px"); + equals($div.width(), 30, "Test padding specified with pixels"); + $div.css("border", "2px solid #fff"); + equals($div.width(), 30, "Test border specified with pixels"); + + $div.css({ display: "", border: "", padding: "" }); + + jQuery("#nothiddendivchild").css({ width: 20, padding: "3px", border: "2px solid #fff" }); + equals(jQuery("#nothiddendivchild").width(), 20, "Test child width with border and padding"); + jQuery("#nothiddendiv, #nothiddendivchild").css({ border: "", padding: "", width: "" }); + + var blah = jQuery("blah"); + equals( blah.width( val(10) ), blah, "Make sure that setting a width on an empty set returns the set." ); + equals( blah.width(), null, "Make sure 'null' is returned on an empty set"); +} + +test("width()", function() { + testWidth( pass ); +}); + +test("width() with function", function() { + testWidth( fn ); +}); + +test("width() with function args", function() { + expect( 2 ); + + var $div = jQuery("#nothiddendiv"); + $div.width( 30 ).width(function(i, width) { + equals( width, 30, "Make sure previous value is corrrect." ); + return width + 1; + }); + + equals( $div.width(), 31, "Make sure value was modified correctly." ); +}); + +function testHeight( val ) { + expect(8); + + var $div = jQuery("#nothiddendiv"); + $div.height( val(30) ); + equals($div.height(), 30, "Test set to 30 correctly"); + $div.hide(); + equals($div.height(), 30, "Test hidden div"); + $div.show(); + $div.height( val(-1) ); // handle negative numbers by ignoring #1599 + equals($div.height(), 30, "Test negative height ignored"); + $div.css("padding", "20px"); + equals($div.height(), 30, "Test padding specified with pixels"); + $div.css("border", "2px solid #fff"); + equals($div.height(), 30, "Test border specified with pixels"); + + $div.css({ display: "", border: "", padding: "", height: "1px" }); + + jQuery("#nothiddendivchild").css({ height: 20, padding: "3px", border: "2px solid #fff" }); + equals(jQuery("#nothiddendivchild").height(), 20, "Test child height with border and padding"); + jQuery("#nothiddendiv, #nothiddendivchild").css({ border: "", padding: "", height: "" }); + + var blah = jQuery("blah"); + equals( blah.height( val(10) ), blah, "Make sure that setting a height on an empty set returns the set." ); + equals( blah.height(), null, "Make sure 'null' is returned on an empty set"); +} + +test("height()", function() { + testHeight( pass ); +}); + +test("height() with function", function() { + testHeight( fn ); +}); + +test("height() with function args", function() { + expect( 2 ); + + var $div = jQuery("#nothiddendiv"); + $div.height( 30 ).height(function(i, height) { + equals( height, 30, "Make sure previous value is corrrect." ); + return height + 1; + }); + + equals( $div.height(), 31, "Make sure value was modified correctly." ); +}); + test("innerWidth()", function() { - expect(3); + expect(4); - var $div = $("#nothiddendiv"); + var $div = jQuery("#nothiddendiv"); // set styles $div.css({ margin: 10, border: "2px solid #fff", width: 30 }); - + equals($div.innerWidth(), 30, "Test with margin and border"); $div.css("padding", "20px"); equals($div.innerWidth(), 70, "Test with margin, border and padding"); $div.hide(); equals($div.innerWidth(), 70, "Test hidden div"); - + // reset styles $div.css({ display: "", border: "", padding: "", width: "", height: "" }); + + var div = jQuery( "
" ); + + // Temporarily require 0 for backwards compat - should be auto + equals( div.innerWidth(), 0, "Make sure that disconnected nodes are handled." ); }); test("innerHeight()", function() { - expect(3); - - var $div = $("#nothiddendiv"); + expect(4); + + var $div = jQuery("#nothiddendiv"); // set styles $div.css({ margin: 10, border: "2px solid #fff", height: 30 }); - + equals($div.innerHeight(), 30, "Test with margin and border"); $div.css("padding", "20px"); equals($div.innerHeight(), 70, "Test with margin, border and padding"); $div.hide(); equals($div.innerHeight(), 70, "Test hidden div"); - + // reset styles $div.css({ display: "", border: "", padding: "", width: "", height: "" }); + + var div = jQuery( "
" ); + + // Temporarily require 0 for backwards compat - should be auto + equals( div.innerHeight(), 0, "Make sure that disconnected nodes are handled." ); }); test("outerWidth()", function() { - expect(6); - - var $div = $("#nothiddendiv"); + expect(7); + + var $div = jQuery("#nothiddendiv"); $div.css("width", 30); - + equals($div.outerWidth(), 30, "Test with only width set"); $div.css("padding", "20px"); equals($div.outerWidth(), 70, "Test with padding"); @@ -55,20 +167,26 @@ test("outerWidth()", function() { equals($div.outerWidth(), 74, "Test with padding and border"); $div.css("margin", "10px"); equals($div.outerWidth(), 74, "Test with padding, border and margin without margin option"); + $div.css("position", "absolute"); equals($div.outerWidth(true), 94, "Test with padding, border and margin with margin option"); $div.hide(); equals($div.outerWidth(true), 94, "Test hidden div with padding, border and margin with margin option"); - + // reset styles - $div.css({ display: "", border: "", padding: "", width: "", height: "" }); + $div.css({ position: "", display: "", border: "", padding: "", width: "", height: "" }); + + var div = jQuery( "
" ); + + // Temporarily require 0 for backwards compat - should be auto + equals( div.outerWidth(), 0, "Make sure that disconnected nodes are handled." ); }); test("outerHeight()", function() { - expect(6); - - var $div = $("#nothiddendiv"); + expect(7); + + var $div = jQuery("#nothiddendiv"); $div.css("height", 30); - + equals($div.outerHeight(), 30, "Test with only width set"); $div.css("padding", "20px"); equals($div.outerHeight(), 70, "Test with padding"); @@ -79,7 +197,12 @@ test("outerHeight()", function() { equals($div.outerHeight(true), 94, "Test with padding, border and margin with margin option"); $div.hide(); equals($div.outerHeight(true), 94, "Test hidden div with padding, border and margin with margin option"); - + // reset styles $div.css({ display: "", border: "", padding: "", width: "", height: "" }); -}); \ No newline at end of file + + var div = jQuery( "
" ); + + // Temporarily require 0 for backwards compat - should be auto + equals( div.outerHeight(), 0, "Make sure that disconnected nodes are handled." ); +});