Updated some of the display/visible/hidden tests to work on an appropriate element.
[jquery.git] / test / unit / core.js
index aec334e..f9b68a7 100644 (file)
@@ -615,11 +615,11 @@ test("css(String|Hash)", function() {
 
        equals( jQuery('#main').css("display"), 'none', 'Check for css property "display"');
 
-       ok( jQuery('#foo').is(':visible'), 'Modifying CSS display: Assert element is visible');
-       jQuery('#foo').css({display: 'none'});
-       ok( !jQuery('#foo').is(':visible'), 'Modified CSS display: Assert element is hidden');
-       jQuery('#foo').css({display: 'block'});
-       ok( jQuery('#foo').is(':visible'), 'Modified CSS display: Assert element is visible');
+       ok( jQuery('#nothiddendiv').is(':visible'), 'Modifying CSS display: Assert element is visible');
+       jQuery('#nothiddendiv').css({display: 'none'});
+       ok( !jQuery('#nothiddendiv').is(':visible'), 'Modified CSS display: Assert element is hidden');
+       jQuery('#nothiddendiv').css({display: 'block'});
+       ok( jQuery('#nothiddendiv').is(':visible'), 'Modified CSS display: Assert element is visible');
 
        jQuery('#floatTest').css({styleFloat: 'right'});
        equals( jQuery('#floatTest').css('styleFloat'), 'right', 'Modified CSS float using "styleFloat": Assert float is right');
@@ -1156,7 +1156,7 @@ test("find(String)", function() {
 });
 
 test("clone()", function() {
-       expect(20);
+       expect(28);
        equals( 'This is a normal link: Yahoo', jQuery('#en').text(), 'Assert text for #en' );
        var clone = jQuery('#yahoo').clone();
        equals( 'Try them out:Yahoo', jQuery('#first').append(clone).text(), 'Check for clone' );
@@ -1176,6 +1176,31 @@ test("clone()", function() {
        // using contents will get comments regular, text, and comment nodes
        var cl = jQuery("#nonnodes").contents().clone();
        ok( cl.length >= 2, "Check node,textnode,comment clone works (some browsers delete comments on clone)" );
+
+       var div = jQuery("<div><ul><li>test</li></ul></div>").click(function(){
+               ok( true, "Bound event still exists." );
+       });
+
+       div = div.clone(true).clone(true);
+       equals( div.length, 1, "One element cloned" );
+       equals( div[0].nodeName.toUpperCase(), "DIV", "DIV element cloned" );
+       div.trigger("click");
+
+       div = jQuery("<div/>").append([ document.createElement("table"), document.createElement("table") ]);
+       div.find("table").click(function(){
+               ok( true, "Bound event still exists." );
+       });
+
+       div = div.clone(true);
+       equals( div.length, 1, "One element cloned" );
+       equals( div[0].nodeName.toUpperCase(), "DIV", "DIV element cloned" );
+       div.find("table:last").trigger("click");
+
+       div = jQuery("<div/>").html('<object height="355" width="425">  <param name="movie" value="http://www.youtube.com/v/JikaHBDoV3k&amp;hl=en">  <param name="wmode" value="transparent"> </object>');
+
+       div = div.clone(true);
+       equals( div.length, 1, "One element cloned" );
+       equals( div[0].nodeName.toUpperCase(), "DIV", "DIV element cloned" );
 });
 
 if (!isLocal) {
@@ -1557,7 +1582,7 @@ test("addClass(String)", function() {
 });
 
 test("removeClass(String) - simple", function() {
-       expect(4);
+       expect(5);
        
        var $divs = jQuery('div');
        
@@ -1566,13 +1591,17 @@ test("removeClass(String) - simple", function() {
        ok( !$divs.is('.test'), "Remove Class" );
 
        reset();
-       
+
        $divs.addClass("test").addClass("foo").addClass("bar");
        $divs.removeClass("test").removeClass("bar").removeClass("foo");
        
        ok( !$divs.is('.test,.bar,.foo'), "Remove multiple classes" );
 
        reset();
+
+       // Make sure that a null value doesn't cause problems
+       $divs.eq(0).addClass("test").removeClass(null);
+       ok( $divs.eq(0).is('.test'), "Null value passed to removeClass" );
        
        $divs.eq(0).addClass("test").removeClass("");
        ok( $divs.eq(0).is('.test'), "Empty string passed to removeClass" );