Made some tweaks to the core tests so that they'll run better under XHTML.
[jquery.git] / test / unit / core.js
index 8483361..e35c083 100644 (file)
@@ -552,22 +552,21 @@ if ( !isLocal ) {
 }
 
 test("attr('tabindex')", function() {
-       expect(5);
-
-       // tabindex 0
-       equals(jQuery('#listWithTabIndex').attr('tabindex'), 0, 'tabindex of 0');
-
-       // positive tabindex
-       equals(jQuery('#linkWithTabIndex').attr('tabindex'), 2, 'tabindex of 2');
-
-       // negative tabindex
-       equals(jQuery('#linkWithNegativeTabIndex').attr('tabindex'), -1, 'negative tabindex');
+       expect(8);
 
-       // regular element without a tabindex
-       equals(jQuery('#divWithNoTabIndex').attr('tabindex'), undefined, 'no tabindex, not tabbable by default');
+       // elements not natively tabbable
+       equals(jQuery('#listWithTabIndex').attr('tabindex'), 5, 'not natively tabbable, with tabindex set to 0');
+       equals(jQuery('#divWithNoTabIndex').attr('tabindex'), undefined, 'not natively tabbable, no tabindex set');
+       
+       // anchor with href
+       equals(jQuery('#linkWithNoTabIndex').attr('tabindex'), 0, 'anchor with href, no tabindex set');
+       equals(jQuery('#linkWithTabIndex').attr('tabindex'), 2, 'anchor with href, tabindex set to 2');
+       equals(jQuery('#linkWithNegativeTabIndex').attr('tabindex'), -1, 'anchor with href, tabindex set to -1');
 
-    // link without a tabindex
-       equals(jQuery('#linkWithNoTabIndex').attr('tabindex'), 0, 'no tabindex, tabbable by default');
+       // anchor without href
+       equals(jQuery('#linkWithNoHrefWithNoTabIndex').attr('tabindex'), undefined, 'anchor without href, no tabindex set');
+       equals(jQuery('#linkWithNoHrefWithTabIndex').attr('tabindex'), 1, 'anchor without href, tabindex set to 2');
+       equals(jQuery('#linkWithNoHrefWithNegativeTabIndex').attr('tabindex'), -1, 'anchor without href, no tabindex set');
 });
 
 test("attr('tabindex', value)", function() {
@@ -751,7 +750,7 @@ test("text()", function() {
 });
 
 test("wrap(String|Element)", function() {
-       expect(8);
+       expect(10);
        var defaultText = 'Try them out:'
        var result = jQuery('#first').wrap('<div class="red"><span></span></div>').text();
        equals( defaultText, result, 'Check for wrapping of on-the-fly html' );
@@ -776,6 +775,11 @@ test("wrap(String|Element)", function() {
        j.wrap("<i></i>");
        equals( jQuery("#nonnodes > i").length, 3, "Check node,textnode,comment wraps ok" );
        equals( jQuery("#nonnodes > i").text(), j.text() + j[1].nodeValue, "Check node,textnode,comment wraps doesn't hurt text" );
+
+       // Try wrapping a disconnected node
+       j = jQuery("<label/>").wrap("<li/>");
+       equals( j[0].nodeName.toUpperCase(), "LABEL", "Element is a label" );
+       equals( j[0].parentNode.nodeName.toUpperCase(), "LI", "Element has been wrapped" );
 });
 
 test("wrapAll(String|Element)", function() {
@@ -1373,7 +1377,7 @@ test("html(String)", function() {
 
        // this is needed, or the expando added by jQuery unique will yield a different html
        j.find('b').removeData();
-       equals( j.html().toLowerCase(), "<b>bold</b>", "Check node,textnode,comment with html()" );
+       equals( j.html().replace(/ xmlns="[^"]+"/g, "").toLowerCase(), "<b>bold</b>", "Check node,textnode,comment with html()" );
 
        jQuery("#main").html("<select/>");
        jQuery("#main select").html("<option>O1</option><option selected='selected'>O2</option><option>O3</option>");
@@ -1787,7 +1791,7 @@ test("contents()", function() {
 test("jQuery.makeArray", function(){
        expect(15);
 
-       equals( jQuery.makeArray(jQuery('html>*'))[0].nodeName, "HEAD", "Pass makeArray a jQuery object" );
+       equals( jQuery.makeArray(jQuery('html>*'))[0].nodeName.toUpperCase(), "HEAD", "Pass makeArray a jQuery object" );
 
        equals( jQuery.makeArray(document.getElementsByName("PWD")).slice(0,1)[0].name, "PWD", "Pass makeArray a nodelist" );
 
@@ -1803,7 +1807,7 @@ test("jQuery.makeArray", function(){
 
        equals( jQuery.makeArray( true )[0].constructor, Boolean, "Pass makeArray a boolean" );
 
-       equals( jQuery.makeArray( document.createElement("div") )[0].nodeName, "DIV", "Pass makeArray a single node" );
+       equals( jQuery.makeArray( document.createElement("div") )[0].nodeName.toUpperCase(), "DIV", "Pass makeArray a single node" );
 
        equals( jQuery.makeArray( {length:2, 0:"a", 1:"b"} ).join(""), "ab", "Pass makeArray an array like map (with length)" );