X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fattributes.js;h=a483195a4cbb16b641b574d05814d57721558be0;hb=5057ff9f43017f673894584358ca95c8753b65d4;hp=3adb018dfb9f9f24f96a2df8ed833431c8c38712;hpb=dc060f08cd898a12e16b817f46bb49861fbfed36;p=jquery.git diff --git a/test/unit/attributes.js b/test/unit/attributes.js index 3adb018..a483195 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -98,15 +98,18 @@ test("attr(Hash)", function() { }); test("attr(String, Object)", function() { - expect(23); + expect(24); + var div = jQuery("div").attr("foo", "bar"), fail = false; + for ( var i = 0; i < div.size(); i++ ) { if ( div.get(i).getAttribute('foo') != "bar" ){ fail = i; break; } } + equals( fail, false, "Set Attribute, the #"+fail+" element didn't get the attribute 'foo'" ); // Fails on IE since recent changes to .attr() @@ -114,6 +117,8 @@ test("attr(String, Object)", function() { jQuery("#name").attr('name', 'something'); equals( jQuery("#name").attr('name'), 'something', 'Set name attribute' ); + jQuery("#name").attr('name', null); + equals( jQuery("#name").attr('title'), '', 'Remove name attribute' ); jQuery("#check2").attr('checked', true); equals( document.getElementById('check2').checked, true, 'Set checked attribute' ); jQuery("#check2").attr('checked', false); @@ -302,7 +307,7 @@ test("removeAttr(String)", function() { }); test("val()", function() { - expect(17); + expect(23); document.getElementById('text1').value = "bla"; equals( jQuery("#text1").val(), "bla", "Check for modified value of input element" ); @@ -329,6 +334,22 @@ test("val()", function() { jQuery('#select3').val(""); same( jQuery('#select3').val(), [''], 'Call val() on a multiple="multiple" select' ); + same( jQuery('#select4').val(), [], 'Call val() on multiple="multiple" select with all disabled options' ); + + jQuery('#select4 optgroup').add('#select4 > [disabled]').attr('disabled', false); + same( jQuery('#select4').val(), ['2', '3'], 'Call val() on multiple="multiple" select with some disabled options' ); + + jQuery('#select4').attr('disabled', true); + same( jQuery('#select4').val(), ['2', '3'], 'Call val() on disabled multiple="multiple" select' ); + + equals( jQuery('#select5').val(), "3", "Check value on ambiguous select." ); + + jQuery('#select5').val(1); + equals( jQuery('#select5').val(), "1", "Check value on ambiguous select." ); + + jQuery('#select5').val(3); + equals( jQuery('#select5').val(), "3", "Check value on ambiguous select." ); + var checks = jQuery("").appendTo("#form"); same( checks.serialize(), "", "Get unchecked values." ); @@ -351,14 +372,20 @@ test("val()", function() { }); var testVal = function(valueObj) { - expect(6); + expect(8); jQuery("#text1").val(valueObj( 'test' )); equals( document.getElementById('text1').value, "test", "Check for modified (via val(String)) value of input element" ); + jQuery("#text1").val(valueObj( undefined )); + equals( document.getElementById('text1').value, "", "Check for modified (via val(undefined)) value of input element" ); + jQuery("#text1").val(valueObj( 67 )); equals( document.getElementById('text1').value, "67", "Check for modified (via val(Number)) value of input element" ); + jQuery("#text1").val(valueObj( null )); + equals( document.getElementById('text1').value, "", "Check for modified (via val(null)) value of input element" ); + jQuery("#select1").val(valueObj( "3" )); equals( jQuery("#select1").val(), "3", "Check for modified (via val(String)) value of select element" ); @@ -473,7 +500,7 @@ test("addClass(Function)", function() { }); test("addClass(Function) with incoming value", function() { - expect(39); + expect(41); var div = jQuery("div"), old = div.map(function(){ return jQuery(this).attr("class"); @@ -546,7 +573,7 @@ test("removeClass(Function) - simple", function() { }); test("removeClass(Function) with incoming value", function() { - expect(39); + expect(41); var $divs = jQuery('div').addClass("test"), old = $divs.map(function(){ return jQuery(this).attr("class");