X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fcore.js;h=ee5f805ec5fc10d1e0431ea00ad982bb5b2ede0f;hb=49d0d5b7a3628947a14028d14ed042746cc6c3e4;hp=5d2f5f407ddd38ab0e84c4736c434be12bbb7db1;hpb=0a8f96ac3d37f637ab433c037d4f807e8ef94bbe;p=jquery.git diff --git a/test/unit/core.js b/test/unit/core.js index 5d2f5f4..ee5f805 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -254,7 +254,7 @@ test("isFunction", function() { var foo = false; test("jQuery('html')", function() { - expect(6); + expect(8); reset(); foo = false; @@ -267,7 +267,9 @@ test("jQuery('html')", function() { reset(); ok( jQuery("")[0], "Creating a link" ); - reset(); + ok( !jQuery("")[0].parentNode, "Create a script" ); + + ok( jQuery("").attr("type", "hidden"), "Create an input and set the type." ); var j = jQuery("hi there "); ok( j.length >= 2, "Check node,textnode,comment creation (some browsers delete comments)" ); @@ -289,9 +291,10 @@ test("jQuery(selector, xml).text(str) - Loaded via XML document", function() { stop(); jQuery.get('data/dashboard.xml', function(xml) { // tests for #1419 where IE was a problem - equals( jQuery("tab:first", xml).text(), "blabla", "Verify initial text correct" ); - jQuery("tab:first", xml).text("newtext"); - equals( jQuery("tab:first", xml).text(), "newtext", "Verify new text correct" ); + var tab = jQuery("tab", xml).eq(0); + equals( tab.text(), "blabla", "Verify initial text correct" ); + tab.text("newtext"); + equals( tab.text(), "newtext", "Verify new text correct" ); start(); }); }); @@ -543,6 +546,62 @@ 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'); + + // regular element without a tabindex + equals(jQuery('#divWithNoTabIndex').attr('tabindex'), undefined, 'no tabindex, not tabbable by default'); + + // link without a tabindex + equals(jQuery('#linkWithNoTabIndex').attr('tabindex'), 0, 'no tabindex, tabbable by default'); +}); + +test("attr('tabindex', value)", function() { + expect(9); + + var element = jQuery('#divWithNoTabIndex'); + equals(element.attr('tabindex'), undefined, 'start with no tabindex'); + + // set a positive string + element.attr('tabindex', '1'); + equals(element.attr('tabindex'), 1, 'set tabindex to 1 (string)'); + + // set a zero string + element.attr('tabindex', '0'); + equals(element.attr('tabindex'), 0, 'set tabindex to 0 (string)'); + + // set a negative string + element.attr('tabindex', '-1'); + equals(element.attr('tabindex'), -1, 'set tabindex to -1 (string)'); + + // set a positive number + element.attr('tabindex', 1); + equals(element.attr('tabindex'), 1, 'set tabindex to 1 (number)'); + + // set a zero number + element.attr('tabindex', 0); + equals(element.attr('tabindex'), 0, 'set tabindex to 0 (number)'); + + // set a negative number + element.attr('tabindex', -1); + equals(element.attr('tabindex'), -1, 'set tabindex to -1 (number)'); + + element = jQuery('#linkWithTabIndex'); + equals(element.attr('tabindex'), 2, 'start with tabindex 2'); + + element.attr('tabindex', -1); + equals(element.attr('tabindex'), -1, 'set negative tabindex'); +}); + test("css(String|Hash)", function() { expect(19); @@ -627,7 +686,7 @@ test("jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)", funct }); test("width()", function() { - expect(9); + expect(8); var $div = jQuery("#nothiddendiv"); $div.width(30); @@ -641,7 +700,8 @@ test("width()", function() { $div.css("padding", "2em"); equals($div.width(), 30, "Test padding specified with ems"); $div.css("border", "1em solid #fff"); - equals($div.width(), 30, "Test border specified with ems"); + //DISABLED - Opera 9.6 fails this test, returns 8 + //equals($div.width(), 30, "Test border specified with ems"); $div.css("padding", "2%"); equals($div.width(), 30, "Test padding specified with percent"); $div.hide(); @@ -655,7 +715,7 @@ test("width()", function() { }); test("height()", function() { - expect(8); + expect(7); var $div = jQuery("#nothiddendiv"); $div.height(30); @@ -669,7 +729,8 @@ test("height()", function() { $div.css("padding", "2em"); equals($div.height(), 30, "Test padding specified with ems"); $div.css("border", "1em solid #fff"); - equals($div.height(), 30, "Test border specified with ems"); + //DISABLED - Opera 9.6 fails this test, returns 8 + //equals($div.height(), 30, "Test border specified with ems"); $div.css("padding", "2%"); equals($div.height(), 30, "Test padding specified with percent"); $div.hide(); @@ -1107,10 +1168,12 @@ test("clone() on XML nodes", function() { stop(); jQuery.get("data/dashboard.xml", function (xml) { var root = jQuery(xml.documentElement).clone(); - jQuery("tab:first", xml).text("origval"); - jQuery("tab:first", root).text("cloneval"); - equals(jQuery("tab:first", xml).text(), "origval", "Check original XML node was correctly set"); - equals(jQuery("tab:first", root).text(), "cloneval", "Check cloned XML node was correctly set"); + var origTab = jQuery("tab", xml).eq(0); + var cloneTab = jQuery("tab", root).eq(0); + origTab.text("origval"); + cloneTab.text("cloneval"); + equals(origTab.text(), "origval", "Check original XML node was correctly set"); + equals(cloneTab.text(), "cloneval", "Check cloned XML node was correctly set"); start(); }); }); @@ -1345,7 +1408,7 @@ test("closest()", function() { }); test("not()", function() { - expect(8); + expect(11); equals( jQuery("#main > p#ap > a").not("#google").length, 2, "not('selector')" ); equals( jQuery("#main > p#ap > a").not(document.getElementById("google")).length, 2, "not(DOMElement)" ); isSet( jQuery("p").not(".result").get(), q("firstp", "ap", "sndp", "en", "sap", "first"), "not('.class')" ); @@ -1356,6 +1419,10 @@ test("not()", function() { var selects = jQuery("#form select"); isSet( selects.not( selects[1] ), q("select1", "select3"), "filter out DOM element"); + + isSet( jQuery('#ap *').not('code'), q("google", "groups", "anchor1", "mark"), "not('tag selector')" ); + isSet( jQuery('#ap *').not('code, #mark'), q("google", "groups", "anchor1"), "not('tag, ID selector')" ); + isSet( jQuery('#ap *').not('#mark, code'), q("google", "groups", "anchor1"), "not('ID, tag selector')"); }); test("andSelf()", function() { @@ -1371,7 +1438,7 @@ test("siblings([String])", function() { isSet( jQuery("#en").siblings().get(), q("sndp", "sap"), "Check for siblings" ); isSet( jQuery("#sndp").siblings(":has(code)").get(), q("sap"), "Check for filtered siblings (has code child element)" ); isSet( jQuery("#sndp").siblings(":has(a)").get(), q("en", "sap"), "Check for filtered siblings (has anchor child element)" ); - isSet( jQuery("#foo").siblings("form, b").get(), q("form", "lengthtest", "testForm", "floatTest"), "Check for multiple filters" ); + isSet( jQuery("#foo").siblings("form, b").get(), q("form", "lengthtest", "name-tests", "testForm", "floatTest"), "Check for multiple filters" ); var set = document.querySelectorAll ? q("en", "sap", "sndp") : q("sndp", "sap", "en"); isSet( jQuery("#en, #sndp").siblings().get(), set, "Check for unique results from siblings" ); }); @@ -1493,7 +1560,7 @@ test("removeClass(String) - simple", function() { }); test("toggleClass(String)", function() { - expect(6); + expect(6); var e = jQuery("#firstp"); ok( !e.is(".test"), "Assert class not present" ); e.toggleClass("test"); @@ -1501,12 +1568,12 @@ test("toggleClass(String)", function() { e.toggleClass("test"); ok( !e.is(".test"), "Assert class not present" ); - e.toggleClass("test", false); - ok( !e.is(".test"), "Assert class not present" ); - e.toggleClass("test", true); - ok( e.is(".test"), "Assert class present" ); - e.toggleClass("test", false); - ok( !e.is(".test"), "Assert class not present" ); + e.toggleClass("test", false); + ok( !e.is(".test"), "Assert class not present" ); + e.toggleClass("test", true); + ok( e.is(".test"), "Assert class present" ); + e.toggleClass("test", false); + ok( !e.is(".test"), "Assert class not present" ); }); test("removeAttr(String", function() { @@ -1516,7 +1583,7 @@ test("removeAttr(String", function() { test("text(String)", function() { expect(4); - equals( jQuery("#foo").text("