From 7f2cc46955b35dc3d5a0526d0cb038d4a50b936b Mon Sep 17 00:00:00 2001 From: Richard Gibson Date: Mon, 28 May 2012 22:25:04 -0400 Subject: Fix #11767. Modularize build and unit tests for exluding effects. Closes gh-785. To build a version of jQuery without effects, use `grunt build:*:*:-effects`. The unit tests feature-check for the interfaces and skip the unit tests for effects if they don't detect it. --- test/unit/css.js | 184 ++++++++++++++++++++++++++++++++++++++++++++++++--- test/unit/effects.js | 108 ++++-------------------------- test/unit/queue.js | 113 ++++++++++++++++--------------- 3 files changed, 249 insertions(+), 156 deletions(-) (limited to 'test/unit') diff --git a/test/unit/css.js b/test/unit/css.js index ac531f1e0..5e9e109bb 100644 --- a/test/unit/css.js +++ b/test/unit/css.js @@ -411,6 +411,179 @@ test("css(Object) where values are Functions with incoming values", function() { jQuery("#cssFunctionTest").remove(); }); +test("show(); hide()", function() { + expect(22); + + var hiddendiv = jQuery("div.hidden"); + hiddendiv.hide(); + equal( hiddendiv.css("display"), "none", "Non-detached div hidden" ); + hiddendiv.show(); + equal( hiddendiv.css("display"), "block", "Pre-hidden div shown" ); + + var div = jQuery("
").hide(); + equal( div.css("display"), "none", "Detached div hidden" ); + div.appendTo("#qunit-fixture").show(); + equal( div.css("display"), "block", "Pre-hidden div shown" ); + + QUnit.reset(); + + hiddendiv = jQuery("div.hidden"); + + equal(jQuery.css( hiddendiv[0], "display"), "none", "hiddendiv is display: none"); + + hiddendiv.css("display", "block"); + equal(jQuery.css( hiddendiv[0], "display"), "block", "hiddendiv is display: block"); + + hiddendiv.show(); + equal(jQuery.css( hiddendiv[0], "display"), "block", "hiddendiv is display: block"); + + hiddendiv.css("display",""); + + var pass = true; + div = jQuery("#qunit-fixture div"); + div.show().each(function(){ + if ( this.style.display == "none" ) pass = false; + }); + ok( pass, "Show" ); + + // #show-tests * is set display: none in CSS + jQuery("#qunit-fixture").append("

"); + + var old = jQuery("#test-table").show().css("display") !== "table"; + jQuery("#test-table").remove(); + + var test = { + "div" : "block", + "p" : "block", + "a" : "inline", + "code" : "inline", + "pre" : "block", + "span" : "inline", + "table" : old ? "block" : "table", + "thead" : old ? "block" : "table-header-group", + "tbody" : old ? "block" : "table-row-group", + "tr" : old ? "block" : "table-row", + "th" : old ? "block" : "table-cell", + "td" : old ? "block" : "table-cell", + "ul" : "block", + "li" : old ? "block" : "list-item" + }; + + jQuery.each(test, function(selector, expected) { + var elem = jQuery(selector, "#show-tests").show(); + equal( elem.css("display"), expected, "Show using correct display type for " + selector ); + }); + + // Make sure that showing or hiding a text node doesn't cause an error + jQuery("
test
text test").show().remove(); + jQuery("
test
text test").hide().remove(); +}); + +test("show() resolves correct default display #8099", function() { + expect(7); + var tt8099 = jQuery("").appendTo("body"), + dfn8099 = jQuery("", { html: "foo"}).appendTo("body"); + + equal( tt8099.css("display"), "none", "default display override for all tt" ); + equal( tt8099.show().css("display"), "inline", "Correctly resolves display:inline" ); + + equal( jQuery("#foo").hide().show().css("display"), "block", "Correctly resolves display:block after hide/show" ); + + equal( tt8099.hide().css("display"), "none", "default display override for all tt" ); + equal( tt8099.show().css("display"), "inline", "Correctly resolves display:inline" ); + + equal( dfn8099.css("display"), "none", "default display override for all dfn" ); + equal( dfn8099.show().css("display"), "inline", "Correctly resolves display:inline" ); + + tt8099.remove(); + dfn8099.remove(); +}); + +test( "show() resolves correct default display, detached nodes (#10006)", function(){ + // Tests originally contributed by Orkel in + // https://github.com/jquery/jquery/pull/458 + expect( 11 ); + + var div, span; + + div = jQuery("