Integrated the custom fx test suite into the main test suite. All tests are now run...
authorJohn Resig <jeresig@gmail.com>
Sun, 29 Jul 2007 19:07:21 +0000 (19:07 +0000)
committerJohn Resig <jeresig@gmail.com>
Sun, 29 Jul 2007 19:07:21 +0000 (19:07 +0000)
Makefile
build.xml
build/test/data/cow.jpg [moved from build/test/cow.jpg with 100% similarity]
build/test/data/testsuite.css
build/test/fx.html [deleted file]
build/test/index.html
src/fx/fxTest.js
src/jquery/coreTest.js
src/selector/selectorTest.js

index ad7171f..7518027 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -118,8 +118,6 @@ test: ${JQ}
        @@echo " - Copying over script files."
        @@cp -fR ${BUILD_DIR}/test/data ${TEST_DIR}/data
        @@cp -f ${BUILD_DIR}/test/index.html ${TEST_DIR}
        @@echo " - Copying over script files."
        @@cp -fR ${BUILD_DIR}/test/data ${TEST_DIR}/data
        @@cp -f ${BUILD_DIR}/test/index.html ${TEST_DIR}
-       @@cp -f ${BUILD_DIR}/test/fx.html ${TEST_DIR}
-       @@cp -f ${BUILD_DIR}/test/cow.jpg ${TEST_DIR}
 
        @@echo " - Compiling Test Cases"
        @@${JAR} ${BUILD_DIR}/test/test.js ${JQ} ${TEST_DIR}
 
        @@echo " - Compiling Test Cases"
        @@${JAR} ${BUILD_DIR}/test/test.js ${JQ} ${TEST_DIR}
index 7f0a18e..1b17822 100644 (file)
--- a/build.xml
+++ b/build.xml
             <fileset dir="${BUILD_DIR}/test/data/" />
         </copy>
         <copy todir="${TEST_DIR}" file="${BUILD_DIR}/test/index.html" />
             <fileset dir="${BUILD_DIR}/test/data/" />
         </copy>
         <copy todir="${TEST_DIR}" file="${BUILD_DIR}/test/index.html" />
-        <copy todir="${TEST_DIR}" file="${BUILD_DIR}/test/fx.html" />
-        <copy todir="${TEST_DIR}" file="${BUILD_DIR}/test/cow.jpg" />
         <echo message="Test Suite built." />
     </target>
 
         <echo message="Test Suite built." />
     </target>
 
similarity index 100%
rename from build/test/cow.jpg
rename to build/test/data/cow.jpg
index 76319d8..b9d487b 100644 (file)
@@ -9,4 +9,105 @@ p.result { margin-left: 1em; }
 
 #banner { height: 2em; border-bottom: 1px solid white; }
 h2.pass { background-color: green; }
 
 #banner { height: 2em; border-bottom: 1px solid white; }
 h2.pass { background-color: green; }
-h2.fail { background-color: red; }
\ No newline at end of file
+h2.fail { background-color: red; }
+
+div#fx-tests h4 {
+       background: red;
+}
+
+div#fx-tests h4.pass {
+       background: green;
+}
+
+div#fx-tests div.box {
+       background: red url(data/cow.jpg) no-repeat;
+       overflow: hidden;
+       border: 2px solid #000;
+}
+
+div#fx-tests div.overflow {
+       overflow: visible;
+}
+
+div.inline {
+       display: inline;
+}
+
+div.autoheight {
+       height: auto;
+}
+
+div.autowidth {
+       width: auto;
+}
+
+div.autoopacity {
+       opacity: auto;
+}
+
+div.largewidth {
+       width: 100px;
+}
+
+div.largeheight {
+       height: 100px;
+}
+
+div.largeopacity {
+       filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
+}
+
+div.medwidth {
+       width: 50px;
+}
+
+div.medheight {
+       height: 50px;
+}
+
+div.medopacity {
+       opacity: 0.5;
+       filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
+}
+
+div.nowidth {
+       width: 0px;
+}
+
+div.noheight {
+       height: 0px;
+}
+
+div.noopacity {
+       opacity: 0;
+       filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
+}
+
+div.hidden {
+       display: none;
+}
+
+div#fx-tests div.widewidth {
+       background-repeat: repeat-x;
+}
+
+div#fx-tests div.wideheight {
+       background-repeat: repeat-y;
+}
+
+div#fx-tests div.widewidth.wideheight {
+       background-repeat: repeat;
+}
+
+div#fx-tests div.noback {
+       background-image: none;
+}
+
+div.chain, div.chain div { width: 100px; height: 20px; position: relative; float: left; }
+div.chain div { position: absolute; top: 0px; left: 0px; }
+
+div.chain.test { background: red; }
+div.chain.test div { background: green; }
+
+div.chain.out { background: green; }
+div.chain.out div { background: red; display: none; }
diff --git a/build/test/fx.html b/build/test/fx.html
deleted file mode 100644 (file)
index 07b60f9..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
-<head>
-       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-       <title>Animation Test Suite</title>
-       <script src="../dist/jquery.js"></script>
-<style>
-div#tests h4 {
-       background: red;
-}
-
-div#tests h4.pass {
-       background: green;
-}
-
-div#tests div.box {
-       background: red url(cow.jpg) no-repeat;
-       overflow: hidden;
-       border: 2px solid #000;
-}
-
-div#tests div.overflow {
-       overflow: visible;
-}
-
-div.inline {
-       display: inline;
-}
-
-div.autoheight {
-       height: auto;
-}
-
-div.autowidth {
-       width: auto;
-}
-
-div.autoopacity {
-       opacity: auto;
-}
-
-div.largewidth {
-       width: 100px;
-}
-
-div.largeheight {
-       height: 100px;
-}
-
-div.largeopacity {
-       filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
-}
-
-div.medwidth {
-       width: 50px;
-}
-
-div.medheight {
-       height: 50px;
-}
-
-div.medopacity {
-       opacity: 0.5;
-       filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
-}
-
-div.nowidth {
-       width: 0px;
-}
-
-div.noheight {
-       height: 0px;
-}
-
-div.noopacity {
-       opacity: 0;
-       filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
-}
-
-div.hidden {
-       display: none;
-}
-
-div#tests div.widewidth {
-       background-repeat: repeat-x;
-}
-
-div#tests div.wideheight {
-       background-repeat: repeat-y;
-}
-
-div#tests div.widewidth.wideheight {
-       background-repeat: repeat;
-}
-
-div#tests div.noback {
-       background-image: none;
-}
-
-div.chain, div.chain div { width: 100px; height: 20px; position: relative; float: left; }
-div.chain div { position: absolute; top: 0px; left: 0px; }
-
-div.chain.test { background: red; }
-div.chain.test div { background: green; }
-
-div.chain.out { background: green; }
-div.chain.out div { background: red; display: none; }
-</style>
-<script>
-var visible = {
-       Normal: function(elem){},
-       "CSS Hidden": function(elem){
-               $(this).addClass("hidden");
-       },
-       "JS Hidden": function(elem){
-               $(this).hide();
-       }
-};
-
-var from = {
-       "CSS Auto": function(elem,prop){
-               $(elem).addClass("auto" + prop)
-                       .text("This is a long string of text.");
-               return "";
-       },
-       "JS Auto": function(elem,prop){
-               $(elem).css(prop,"auto")
-                       .text("This is a long string of text.");
-               return "";
-       },
-       "CSS 100": function(elem,prop){
-               $(elem).addClass("large" + prop);
-               return "";
-       },
-       "JS 100": function(elem,prop){
-               $(elem).css(prop,prop == "opacity" ? 1 : "100px");
-               return prop == "opacity" ? 1 : 100;
-       },
-       "CSS 50": function(elem,prop){
-               $(elem).addClass("med" + prop);
-               return "";
-       },
-       "JS 50": function(elem,prop){
-               $(elem).css(prop,prop == "opacity" ? 0.50 : "50px");
-               return prop == "opacity" ? 0.5 : 50;
-       },
-       "CSS 0": function(elem,prop){
-               $(elem).addClass("no" + prop);
-               return "";
-       },
-       "JS 0": function(elem,prop){
-               $(elem).css(prop,prop == "opacity" ? 0 : "0px");
-               return 0;
-       }
-};
-
-var to = {
-       /*"Auto": function(elem,prop){
-               $(elem).addClass("wide"+prop);
-               return "auto";
-       },*/
-       /*"toggle (show)": function(elem,prop){
-               $(elem).hide().addClass("wide"+prop);
-               return "show";
-       },*/
-       "show": function(elem,prop){
-               $(elem).hide().addClass("wide"+prop);
-               return "show";
-       },
-       "hide": function(elem,prop){
-               $(elem).addClass("wide"+prop);
-               return "hide";
-       },
-       "100": function(elem,prop){
-               $(elem).addClass("wide"+prop);
-               return prop == "opacity" ? 1 : 100;
-       },
-       "50": function(elem,prop){
-               return prop == "opacity" ? 0.50 : 50;
-       },
-       "0": function(elem,prop){
-               $(elem).addClass("noback");
-               return 0;
-       }
-};
-
-/*var oldAttr = jQuery.attr;
-
-jQuery.attr = function( elem, name, value ){
-       if ( arguments.length == 3 ) {
-               var prev = elem.previousSibling;
-               if ( prev && prev.nodeName == "UL" ) {
-                       $(prev).append( name + ": " + value );
-               }
-       }
-
-       return oldAttr.apply( jQuery, arguments );
-};*/
-
-$(document).ready(function(){
-       makeTest( "JS Overflow and Display" )
-               .addClass("widewidth")
-               .css({ overflow: "visible", display: "inline" })
-               .add( makeTest( "CSS Overflow and Display" ).addClass("overflow inline") )
-               .addClass("widewidth")
-               .text("Some sample text.")
-               .before("text before")
-               .after("text after")
-               .animate({ opacity: 0.5 }, "slow", function(){
-                       var o = jQuery.css( this, "overflow" );
-                       if ( o != "visible" )
-                               return msg(this, "Overflow should be visible: " + o);
-
-                       if ( jQuery.css( this, "display" ) != "inline" )
-                               return msg(this, "Display has been tampered with.");
-
-                       pass( this );
-               });
-
-       jQuery.each( from, function(fn, f){
-               jQuery.each( to, function(tn, t){
-                       var elem = makeTest( fn + " to " + tn );
-
-                       var t_w = t( elem, "width" );
-                       var f_w = f( elem, "width" );
-                       var t_h = t( elem, "height" );
-                       var f_h = f( elem, "height" );
-                       var t_o = t( elem, "opacity" );
-                       var f_o = f( elem, "opacity" );
-
-                       var anim = { width: t_w, height: t_h, opacity: t_o };
-
-                       elem.animate(anim, "slow", function(){
-                               if ( t_w == "show" && this.style.display != "block" )
-                                       return msg(this, "Showing, display not block: " + this.style.display);
-
-                               if ( (t_w == "hide"||t_w == "show") && this.style.width.indexOf(f_w) != 0 )
-                                       return msg(this, "Width not reset to " + f_w + ": " + this.style.width);
-
-                               if ( (t_h == "hide"||t_h == "show") && this.style.height.indexOf(f_h) != 0 )
-                                       return msg(this, "Height not reset to " + f_h + ": " + this.style.height);
-
-                               var cur_o = jQuery.attr(this.style, "opacity");
-                               if ( cur_o !== "" ) cur_o = parseFloat( cur_o );
-
-                               if ( (t_o == "hide"||t_o == "show") && cur_o != f_o ) {
-                                       return msg(this, "Opacity not reset to " + f_o + ": " + cur_o);
-                               }
-
-                               if ( t_w == "hide" && this.style.display != "none" )
-                                       return msg(this, "Hiding, display not none: " + this.style.display);
-
-                               if ( t_o.constructor == Number && cur_o != t_o )
-                                       return msg(this, "Final opacity is not " + t_o + ": " + cur_o);
-
-                               if ( t_w.constructor == Number && this.style.width != t_w + "px" )
-                                       return msg(this, "Final width is not " + t_w + ": " + this.style.width);
-
-                               if ( t_h.constructor == Number && this.style.height != t_h + "px" )
-                                       return msg(this, "Final height is not " + t_h + ": " + this.style.height);
-
-                               var cur_w = jQuery.css(this,"width");
-                               if ( t_w.constructor == Number && this.style.width == "" && cur_w != t_w )
-                                       return msg(this, "Width should be explicitly set to " + t_w + ", is instead: " + cur_w);
-
-                               var cur_h = jQuery.css(this,"height");
-                               if ( t_h.constructor == Number && this.style.height == "" && cur_h != t_h )
-                                       return msg(this, "Height should be explicitly set to " + t_h + ", is instead: " + cur_w);
-
-                               if ( t_o.constructor == Number && jQuery.curCSS(this, "opacity") == "" && cur_o != t_o )
-                                       return msg(this, "Opacity should be explicitly set to " + t_o + ", is instead: " + cur_o);
-
-                               if ( t_h == "show" ) {
-                                       var old_h = jQuery.curCSS(this, "height");
-                                       $(elem).append("<br>Some more text<br>and some more...");
-                                               if ( old_h == jQuery.css(this, "height" ) )
-                                                       return msg(this, "Height is not truly auto.");
-                               }
-
-                               pass( this );
-                       });
-               });
-       });
-       
-       // Chaining Tests
-       $('#fadein div').fadeOut('fast').fadeIn('fast');
-       $('#fadeout div').fadeIn('fast').fadeOut('fast');
-       
-       $('#show div').hide('fast').show('fast');
-       $('#hide div').show('fast').hide('fast');
-       
-       $('#togglein div').toggle('fast').toggle('fast');
-       $('#toggleout div').toggle('fast').toggle('fast');
-       
-       $('#slidedown div').slideDown('fast').slideUp('fast');
-       $('#slideup div').slideUp('fast').slideDown('fast');
-       
-       $('#slidetogglein div').slideToggle('fast').slideToggle('fast');
-       $('#slidetoggleout div').slideToggle('fast').slideToggle('fast');
-});
-
-function pass( elem ) {
-       $(elem).prev().addClass("pass");
-}
-
-function makeTest( text ){
-       var elem = $("<div></div>")
-               .attr("id", "test" + makeTest.id++)
-               .addClass("box");
-
-       $("<h4></h4>")
-               .text( text )
-               .appendTo("#tests")
-               .click(function(){
-                       $(this).next().toggle();
-               })
-               .after( elem );
-
-       return elem;
-}
-
-makeTest.id = 1;
-
-function msg(elem,txt){
-       $(elem).prev().append( "<tt> " + txt + "</tt>" );
-}
-</script>
-</head>
-<body>
-<b>Chain Tests:</b><br/>
-<div id="fadein" class='chain test'>fadeIn<div>fadeIn</div></div>
-<div id="fadeout" class='chain test out'>fadeOut<div>fadeOut</div></div>
-
-<div id="show" class='chain test'>show<div>show</div></div>
-<div id="hide" class='chain test out'>hide<div>hide</div></div>
-
-<div id="togglein" class='chain test'>togglein<div>togglein</div></div>
-<div id="toggleout" class='chain test out'>toggleout<div>toggleout</div></div>
-<br style="clear:both;"/>
-
-<div id="slideup" class='chain test'>slideUp<div>slideUp</div></div>
-<div id="slidedown" class='chain test out'>slideDown<div>slideDown</div></div>
-
-<div id="slidetogglein" class='chain test'>slideToggleIn<div>slideToggleIn</div></div>
-<div id="slidetoggleout" class='chain test out'>slideToggleOut<div>slideToggleOut</div></div>
-<br style="clear:both;"/>
-
-<div id="tests"></div>
-</body>
-</html>
index 756e2a5..4021d33 100644 (file)
@@ -1,6 +1,7 @@
-<html id="html">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr" id="html">
 <head>
 <head>
-       <meta http-equiv="Content-Type" content="text/css; charset=utf-8" />
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>jQuery Test Suite</title>
        <link rel="Stylesheet" media="screen" href="data/testsuite.css" />
        <script type="text/javascript" src="../dist/jquery.js"></script>
        <title>jQuery Test Suite</title>
        <link rel="Stylesheet" media="screen" href="data/testsuite.css" />
        <script type="text/javascript" src="../dist/jquery.js"></script>
                        <input type="text" id="idTest" name="id"/>
                </form>
                <table id="table"></table>
                        <input type="text" id="idTest" name="id"/>
                </form>
                <table id="table"></table>
+               
+               <div id="fx-queue">
+                       <div id="fadein" class='chain test'>fadeIn<div>fadeIn</div></div>
+                       <div id="fadeout" class='chain test out'>fadeOut<div>fadeOut</div></div>
+                       
+                       <div id="show" class='chain test'>show<div>show</div></div>
+                       <div id="hide" class='chain test out'>hide<div>hide</div></div>
+                       
+                       <div id="togglein" class='chain test'>togglein<div>togglein</div></div>
+                       <div id="toggleout" class='chain test out'>toggleout<div>toggleout</div></div>
+               
+                       
+                       <div id="slideup" class='chain test'>slideUp<div>slideUp</div></div>
+                       <div id="slidedown" class='chain test out'>slideDown<div>slideDown</div></div>
+                       
+                       <div id="slidetogglein" class='chain test'>slideToggleIn<div>slideToggleIn</div></div>
+                       <div id="slidetoggleout" class='chain test out'>slideToggleOut<div>slideToggleOut</div></div>
+               </div>
+               
+               <div id="fx-tests"></div>
        </div>
        </dl>
        
        </div>
        </dl>
        
index f7fb865..dfb9157 100644 (file)
@@ -19,4 +19,266 @@ test("toggle()", function() {
        ok( x.is(":hidden") );
        x.toggle();
        ok( x.is(":visible") );
        ok( x.is(":hidden") );
        x.toggle();
        ok( x.is(":visible") );
-});
\ No newline at end of file
+});
+
+var visible = {
+       Normal: function(elem){},
+       "CSS Hidden": function(elem){
+               $(this).addClass("hidden");
+       },
+       "JS Hidden": function(elem){
+               $(this).hide();
+       }
+};
+
+var from = {
+       "CSS Auto": function(elem,prop){
+               $(elem).addClass("auto" + prop)
+                       .text("This is a long string of text.");
+               return "";
+       },
+       "JS Auto": function(elem,prop){
+               $(elem).css(prop,"auto")
+                       .text("This is a long string of text.");
+               return "";
+       },
+       "CSS 100": function(elem,prop){
+               $(elem).addClass("large" + prop);
+               return "";
+       },
+       "JS 100": function(elem,prop){
+               $(elem).css(prop,prop == "opacity" ? 1 : "100px");
+               return prop == "opacity" ? 1 : 100;
+       },
+       "CSS 50": function(elem,prop){
+               $(elem).addClass("med" + prop);
+               return "";
+       },
+       "JS 50": function(elem,prop){
+               $(elem).css(prop,prop == "opacity" ? 0.50 : "50px");
+               return prop == "opacity" ? 0.5 : 50;
+       },
+       "CSS 0": function(elem,prop){
+               $(elem).addClass("no" + prop);
+               return "";
+       },
+       "JS 0": function(elem,prop){
+               $(elem).css(prop,prop == "opacity" ? 0 : "0px");
+               return 0;
+       }
+};
+
+var to = {
+       "show": function(elem,prop){
+               $(elem).hide().addClass("wide"+prop);
+               return "show";
+       },
+       "hide": function(elem,prop){
+               $(elem).addClass("wide"+prop);
+               return "hide";
+       },
+       "100": function(elem,prop){
+               $(elem).addClass("wide"+prop);
+               return prop == "opacity" ? 1 : 100;
+       },
+       "50": function(elem,prop){
+               return prop == "opacity" ? 0.50 : 50;
+       },
+       "0": function(elem,prop){
+               $(elem).addClass("noback");
+               return 0;
+       }
+};
+
+function checkOverflowDisplay(){
+       var o = jQuery.css( this, "overflow" );
+
+       ok(o == "visible", "Overflow should be visible: " + o);
+       ok(jQuery.css( this, "display" ) == "inline", "Display shouldn't be tampered with.");
+
+       start();
+}
+
+test("JS Overflow and Display", function() {
+       expect(2);
+       stop();
+       makeTest( "JS Overflow and Display" )
+               .addClass("widewidth")
+               .css({ overflow: "visible", display: "inline" })
+               .addClass("widewidth")
+               .text("Some sample text.")
+               .before("text before")
+               .after("text after")
+               .animate({ opacity: 0.5 }, "slow", checkOverflowDisplay);
+});
+               
+test("CSS Overflow and Display", function() {
+       expect(2);
+       stop();
+       makeTest( "CSS Overflow and Display" )
+               .addClass("overflow inline")
+               .addClass("widewidth")
+               .text("Some sample text.")
+               .before("text before")
+               .after("text after")
+               .animate({ opacity: 0.5 }, "slow", checkOverflowDisplay);
+});
+
+jQuery.each( from, function(fn, f){
+       jQuery.each( to, function(tn, t){
+               test(fn + " to " + tn, function() {
+                       var elem = makeTest( fn + " to " + tn );
+       
+                       var t_w = t( elem, "width" );
+                       var f_w = f( elem, "width" );
+                       var t_h = t( elem, "height" );
+                       var f_h = f( elem, "height" );
+                       var t_o = t( elem, "opacity" );
+                       var f_o = f( elem, "opacity" );
+                       
+                       var num = 0;
+                       
+                       if ( t_h == "show" ) num++;
+                       if ( t_w == "show" ) num++;
+                       if ( t_w == "hide"||t_w == "show" ) num++;
+                       if ( t_h == "hide"||t_h == "show" ) num++;
+                       if ( t_o == "hide"||t_o == "show" ) num++;
+                       if ( t_w == "hide" ) num++;
+                       if ( t_o.constructor == Number ) num += 2;
+                       if ( t_w.constructor == Number ) num += 2;
+                       if ( t_h.constructor == Number ) num +=2;
+                       
+                       expect(num);
+                       stop();
+       
+                       var anim = { width: t_w, height: t_h, opacity: t_o };
+       
+                       elem.animate(anim, 50, function(){
+                               if ( t_w == "show" )
+                                       ok( this.style.display == "block", "Showing, display should block: " + this.style.display);
+                                       
+                               if ( t_w == "hide"||t_w == "show" )
+                                       ok(this.style.width.indexOf(f_w) == 0, "Width must be reset to " + f_w + ": " + this.style.width);
+                                       
+                               if ( t_h == "hide"||t_h == "show" )
+                                       ok(this.style.height.indexOf(f_h) == 0, "Height must be reset to " + f_h + ": " + this.style.height);
+                                       
+                               var cur_o = jQuery.attr(this.style, "opacity");
+                               if ( cur_o !== "" ) cur_o = parseFloat( cur_o );
+       
+                               if ( t_o == "hide"||t_o == "show" )
+                                       ok(cur_o == f_o, "Opacity must be reset to " + f_o + ": " + cur_o);
+                                       
+                               if ( t_w == "hide" )
+                                       ok(this.style.display == "none", "Hiding, display should be none: " + this.style.display);
+                                       
+                               if ( t_o.constructor == Number ) {
+                                       ok(cur_o == t_o, "Final opacity should be " + t_o + ": " + cur_o);
+                                       
+                                       ok(jQuery.curCSS(this, "opacity") != "" || cur_o == t_o, "Opacity should be explicitly set to " + t_o + ", is instead: " + cur_o);
+                               }
+                                       
+                               if ( t_w.constructor == Number ) {
+                                       ok(this.style.width == t_w + "px", "Final width should be " + t_w + ": " + this.style.width);
+                                       
+                                       var cur_w = jQuery.css(this,"width");
+
+                                       ok(this.style.width != "" || cur_w == t_w, "Width should be explicitly set to " + t_w + ", is instead: " + cur_w);
+                               }
+                                       
+                               if ( t_h.constructor == Number ) {
+                                       ok(this.style.height == t_h + "px", "Final height should be " + t_h + ": " + this.style.height);
+                                       
+                                       var cur_h = jQuery.css(this,"height");
+
+                                       ok(this.style.height != "" || cur_h == t_h, "Height should be explicitly set to " + t_h + ", is instead: " + cur_w);
+                               }
+                               
+                               if ( t_h == "show" ) {
+                                       var old_h = jQuery.curCSS(this, "height");
+                                       $(elem).append("<br>Some more text<br>and some more...");
+                                       ok(old_h != jQuery.css(this, "height" ), "Make sure height is auto.");
+                               }
+       
+                               start();
+                       });
+               });
+       });
+});
+
+var check = ['opacity','height','width','display','overflow'];
+
+jQuery.fn.saveState = function(){
+       expect(check.length);
+       stop();
+       return this.each(function(){
+               var self = this;
+               self.save = {};
+               jQuery.each(check, function(i,c){
+                       self.save[c] = jQuery.css(self,c);
+               });
+       });
+};
+
+function checkState(){
+       var self = this;
+       jQuery.each(this.save, function(c,v){
+               var cur = jQuery.css(self,c);
+               ok( v == cur, "Make sure that " + c + " is reset (Old: " + v + " Cur: " + cur + ")");
+       });
+       start();
+}
+
+// Chaining Tests
+test("Chain fadeOut fadeIn", function() {
+       $('#fadein div').saveState().fadeOut('fast').fadeIn('fast',checkState);
+});
+test("Chain fadeIn fadeOut", function() {
+       $('#fadeout div').saveState().fadeIn('fast').fadeOut('fast',checkState);
+});
+
+test("Chain hide show", function() {
+       $('#show div').saveState().hide('fast').show('fast',checkState);
+});
+test("Chain show hide", function() {
+       $('#hide div').saveState().show('fast').hide('fast',checkState);
+});
+
+test("Chain toggle in", function() {
+       $('#togglein div').saveState().toggle('fast').toggle('fast',checkState);
+});
+test("Chain toggle out", function() {
+       $('#toggleout div').saveState().toggle('fast').toggle('fast',checkState);
+});
+
+test("Chain slideDown slideUp", function() {
+       $('#slidedown div').saveState().slideDown('fast').slideUp('fast',checkState);
+});
+test("Chain slideUp slideDown", function() {
+       $('#slideup div').saveState().slideUp('fast').slideDown('fast',checkState);
+});
+
+test("Chain slideToggle in", function() {
+       $('#slidetogglein div').saveState().slideToggle('fast').slideToggle('fast',checkState);
+});
+test("Chain slideToggle out", function() {
+       $('#slidetoggleout div').saveState().slideToggle('fast').slideToggle('fast',checkState);
+});
+
+function makeTest( text ){
+       var elem = $("<div></div>")
+               .attr("id", "test" + makeTest.id++)
+               .addClass("box");
+
+       $("<h4></h4>")
+               .text( text )
+               .appendTo("#fx-tests")
+               .click(function(){
+                       $(this).next().toggle();
+               })
+               .after( elem );
+
+       return elem;
+}
+
+makeTest.id = 1;
\ No newline at end of file
index ee44381..db8b58d 100644 (file)
@@ -118,22 +118,22 @@ test("isFunction", function() {
 
 test("length", function() {
        expect(1);
 
 test("length", function() {
        expect(1);
-       ok( $("div").length == 2, "Get Number of Elements Found" );
+       ok( $("p").length == 6, "Get Number of Elements Found" );
 });
 
 test("size()", function() {
        expect(1);
 });
 
 test("size()", function() {
        expect(1);
-       ok( $("div").size() == 2, "Get Number of Elements Found" );
+       ok( $("p").size() == 6, "Get Number of Elements Found" );
 });
 
 test("get()", function() {
        expect(1);
 });
 
 test("get()", function() {
        expect(1);
-       isSet( $("div").get(), q("main","foo"), "Get All Elements" );
+       isSet( $("p").get(), q("firstp","ap","sndp","en","sap","first"), "Get All Elements" );
 });
 
 test("get(Number)", function() {
        expect(1);
 });
 
 test("get(Number)", function() {
        expect(1);
-       ok( $("div").get(0) == document.getElementById("main"), "Get A Single Element" );
+       ok( $("p").get(0) == document.getElementById("firstp"), "Get A Single Element" );
 });
 
 test("add(String|Element|Array)", function() {
 });
 
 test("add(String|Element|Array)", function() {
index 5b77b3b..9e646ce 100644 (file)
@@ -3,10 +3,10 @@ module("selector");
 test("element", function() {
        expect(9);
        ok( $("*").size() >= 30, "Select all" );
 test("element", function() {
        expect(9);
        ok( $("*").size() >= 30, "Select all" );
-       t( "Element Selector", "div", ["main","foo"] );
+       t( "Element Selector", "p", ["firstp","ap","sndp","en","sap","first"] );
        t( "Element Selector", "body", ["body"] );
        t( "Element Selector", "html", ["html"] );
        t( "Element Selector", "body", ["body"] );
        t( "Element Selector", "html", ["html"] );
-       t( "Parent Element", "div div", ["foo"] );
+       t( "Parent Element", "div p", ["firstp","ap","sndp","en","sap","first"] );
        ok( $("param", "#object1").length == 2, "Object/param as context" );
        
        ok( $("#length").length, '&lt;input name="length"&gt; cannot be found under IE, see #945' );
        ok( $("param", "#object1").length == 2, "Object/param as context" );
        
        ok( $("#length").length, '&lt;input name="length"&gt; cannot be found under IE, see #945' );
@@ -84,10 +84,10 @@ test("class", function() {
 
 test("multiple", function() {
        expect(4);
 
 test("multiple", function() {
        expect(4);
-       t( "Comma Support", "a.blog, div", ["mark","simon","main","foo"] );
-       t( "Comma Support", "a.blog , div", ["mark","simon","main","foo"] );
-       t( "Comma Support", "a.blog ,div", ["mark","simon","main","foo"] );
-       t( "Comma Support", "a.blog,div", ["mark","simon","main","foo"] );
+       t( "Comma Support", "a.blog, p", ["mark","simon","firstp","ap","sndp","en","sap","first"] );
+       t( "Comma Support", "a.blog , p", ["mark","simon","firstp","ap","sndp","en","sap","first"] );
+       t( "Comma Support", "a.blog ,p", ["mark","simon","firstp","ap","sndp","en","sap","first"] );
+       t( "Comma Support", "a.blog,p", ["mark","simon","firstp","ap","sndp","en","sap","first"] );
 });
 
 test("child and adjacent", function() {
 });
 
 test("child and adjacent", function() {
@@ -158,7 +158,7 @@ test("pseudo (:) selectors", function() {
        t( "Selected Option Element", "option:selected", ["option1a","option2d","option3b","option3c"] );
        t( "Text Contains", "a:contains('Google')", ["google","groups"] );
        t( "Text Contains", "a:contains('Google Groups')", ["groups"] );
        t( "Selected Option Element", "option:selected", ["option1a","option2d","option3b","option3c"] );
        t( "Text Contains", "a:contains('Google')", ["google","groups"] );
        t( "Text Contains", "a:contains('Google Groups')", ["groups"] );
-       t( "Element Preceded By", "p ~ div", ["foo"] );
+       t( "Element Preceded By", "p ~ div", ["foo","fx-queue","fx-tests"] );
        t( "Not", "a.blog:not(.link)", ["mark"] );
        
        t( "nth Element", "p:nth(1)", ["ap"] );
        t( "Not", "a.blog:not(.link)", ["mark"] );
        
        t( "nth Element", "p:nth(1)", ["ap"] );
@@ -186,18 +186,18 @@ test("basic xpath", function() {
        expect(16);
        ok( jQuery.find("//*").length >= 30, "All Elements (//*)" );
        ok( jQuery.find("//div", q("main")[0])[0] = q("foo")[0], "All Relative (#main//div)" );
        expect(16);
        ok( jQuery.find("//*").length >= 30, "All Elements (//*)" );
        ok( jQuery.find("//div", q("main")[0])[0] = q("foo")[0], "All Relative (#main//div)" );
-       t( "All Div Elements", "//div", ["main","foo"] );
+       t( "All P Elements", "//p", ["firstp","ap","sndp","en","sap","first"] );
        t( "Absolute Path", "/html/body", ["body"] );
        t( "Absolute Path w/ *", "/* /body", ["body"] );
        t( "Long Absolute Path", "/html/body/dl/div/div/p", ["sndp","en","sap"] );
        t( "Absolute Path", "/html/body", ["body"] );
        t( "Absolute Path w/ *", "/* /body", ["body"] );
        t( "Long Absolute Path", "/html/body/dl/div/div/p", ["sndp","en","sap"] );
-       t( "Absolute and Relative Paths", "/html//div", ["main","foo"] );
+       t( "Absolute and Relative Paths", "/html//p", ["firstp","ap","sndp","en","sap","first"] );
        t( "All Children, Explicit", "//code/*", ["anchor1","anchor2"] );
        t( "All Children, Implicit", "//code/", ["anchor1","anchor2"] );
        t( "Attribute Exists", "//a[@title]", ["google"] );
        t( "Attribute Equals", "//a[@rel='bookmark']", ["simon1"] );
        t( "Parent Axis", "//p/..", ["main","foo"] );
        t( "All Children, Explicit", "//code/*", ["anchor1","anchor2"] );
        t( "All Children, Implicit", "//code/", ["anchor1","anchor2"] );
        t( "Attribute Exists", "//a[@title]", ["google"] );
        t( "Attribute Equals", "//a[@rel='bookmark']", ["simon1"] );
        t( "Parent Axis", "//p/..", ["main","foo"] );
-       t( "Sibling Axis", "//p/../", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","lengthtest","table","sndp","en","sap"] );
-       t( "Sibling Axis", "//p/../*", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","lengthtest","table","sndp","en","sap"] );
+       t( "Sibling Axis", "//p/../", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","lengthtest","table","fx-queue","fx-tests","sndp","en","sap"] );
+       t( "Sibling Axis", "//p/../*", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","lengthtest","table","fx-queue","fx-tests","sndp","en","sap"] );
        t( "Has Children", "//p[a]", ["firstp","ap","en","sap"] );
        
        $("#foo").each(function() {
        t( "Has Children", "//p[a]", ["firstp","ap","en","sap"] );
        
        $("#foo").each(function() {