Merge branch 'setterargs'
This commit is contained in:
commit
d6d5ed4c68
8 changed files with 654 additions and 264 deletions
|
@ -292,6 +292,148 @@ test("attr('tabindex', value)", function() {
|
|||
equals(element.attr('tabindex'), -1, 'set negative tabindex');
|
||||
});
|
||||
|
||||
test("removeAttr(String)", function() {
|
||||
expect(1);
|
||||
equals( jQuery('#mark').removeAttr( "class" )[0].className, "", "remove class" );
|
||||
});
|
||||
|
||||
test("val()", function() {
|
||||
expect(17);
|
||||
|
||||
document.getElementById('text1').value = "bla";
|
||||
equals( jQuery("#text1").val(), "bla", "Check for modified value of input element" );
|
||||
|
||||
reset();
|
||||
|
||||
equals( jQuery("#text1").val(), "Test", "Check for value of input element" );
|
||||
// ticket #1714 this caused a JS error in IE
|
||||
equals( jQuery("#first").val(), "", "Check a paragraph element to see if it has a value" );
|
||||
ok( jQuery([]).val() === undefined, "Check an empty jQuery object will return undefined from val" );
|
||||
|
||||
equals( jQuery('#select2').val(), '3', 'Call val() on a single="single" select' );
|
||||
|
||||
same( jQuery('#select3').val(), ['1', '2'], 'Call val() on a multiple="multiple" select' );
|
||||
|
||||
equals( jQuery('#option3c').val(), '2', 'Call val() on a option element with value' );
|
||||
|
||||
equals( jQuery('#option3a').val(), '', 'Call val() on a option element with empty value' );
|
||||
|
||||
equals( jQuery('#option3e').val(), 'no value', 'Call val() on a option element with no value attribute' );
|
||||
|
||||
equals( jQuery('#option3a').val(), '', 'Call val() on a option element with no value attribute' );
|
||||
|
||||
jQuery('#select3').val("");
|
||||
same( jQuery('#select3').val(), [''], 'Call val() on a multiple="multiple" select' );
|
||||
|
||||
var checks = jQuery("<input type='checkbox' name='test' value='1'/>").appendTo("#form")
|
||||
.add( jQuery("<input type='checkbox' name='test' value='2'/>").appendTo("#form") )
|
||||
.add( jQuery("<input type='checkbox' name='test' value=''/>").appendTo("#form") )
|
||||
.add( jQuery("<input type='checkbox' name='test'/>").appendTo("#form") );
|
||||
|
||||
same( checks.serialize(), "", "Get unchecked values." );
|
||||
|
||||
equals( checks.eq(3).val(), "on", "Make sure a value of 'on' is provided if none is specified." );
|
||||
|
||||
checks.val([ "2" ]);
|
||||
same( checks.serialize(), "test=2", "Get a single checked value." );
|
||||
|
||||
checks.val([ "1", "" ]);
|
||||
same( checks.serialize(), "test=1&test=", "Get multiple checked values." );
|
||||
|
||||
checks.val([ "", "2" ]);
|
||||
same( checks.serialize(), "test=2&test=", "Get multiple checked values." );
|
||||
|
||||
checks.val([ "1", "on" ]);
|
||||
same( checks.serialize(), "test=1&test=on", "Get multiple checked values." );
|
||||
|
||||
checks.remove();
|
||||
});
|
||||
|
||||
var testVal = function(valueObj) {
|
||||
expect(6);
|
||||
|
||||
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( 67 ));
|
||||
equals( document.getElementById('text1').value, "67", "Check for modified (via val(Number)) value of input element" );
|
||||
|
||||
jQuery("#select1").val(valueObj( "3" ));
|
||||
equals( jQuery("#select1").val(), "3", "Check for modified (via val(String)) value of select element" );
|
||||
|
||||
jQuery("#select1").val(valueObj( 2 ));
|
||||
equals( jQuery("#select1").val(), "2", "Check for modified (via val(Number)) value of select element" );
|
||||
|
||||
jQuery("#select1").append("<option value='4'>four</option>");
|
||||
jQuery("#select1").val(valueObj( 4 ));
|
||||
equals( jQuery("#select1").val(), "4", "Should be possible to set the val() to a newly created option" );
|
||||
|
||||
// using contents will get comments regular, text, and comment nodes
|
||||
var j = jQuery("#nonnodes").contents();
|
||||
j.val(valueObj( "asdf" ));
|
||||
equals( j.val(), "asdf", "Check node,textnode,comment with val()" );
|
||||
j.removeAttr("value");
|
||||
}
|
||||
|
||||
test("val(String/Number)", function() {
|
||||
testVal(bareObj);
|
||||
});
|
||||
|
||||
test("val(Function)", function() {
|
||||
testVal(functionReturningObj);
|
||||
})
|
||||
|
||||
test("val(Function) with incoming value", function() {
|
||||
expect(10);
|
||||
|
||||
var oldVal = jQuery("#text1").val();
|
||||
|
||||
jQuery("#text1").val(function(i, val) {
|
||||
equals( val, oldVal, "Make sure the incoming value is correct." );
|
||||
return "test";
|
||||
});
|
||||
|
||||
equals( document.getElementById('text1').value, "test", "Check for modified (via val(String)) value of input element" );
|
||||
|
||||
oldVal = jQuery("#text1").val();
|
||||
|
||||
jQuery("#text1").val(function(i, val) {
|
||||
equals( val, oldVal, "Make sure the incoming value is correct." );
|
||||
return 67;
|
||||
});
|
||||
|
||||
equals( document.getElementById('text1').value, "67", "Check for modified (via val(Number)) value of input element" );
|
||||
|
||||
oldVal = jQuery("#select1").val();
|
||||
|
||||
jQuery("#select1").val(function(i, val) {
|
||||
equals( val, oldVal, "Make sure the incoming value is correct." );
|
||||
return "3";
|
||||
});
|
||||
|
||||
equals( jQuery("#select1").val(), "3", "Check for modified (via val(String)) value of select element" );
|
||||
|
||||
oldVal = jQuery("#select1").val();
|
||||
|
||||
jQuery("#select1").val(function(i, val) {
|
||||
equals( val, oldVal, "Make sure the incoming value is correct." );
|
||||
return 2;
|
||||
});
|
||||
|
||||
equals( jQuery("#select1").val(), "2", "Check for modified (via val(Number)) value of select element" );
|
||||
|
||||
jQuery("#select1").append("<option value='4'>four</option>");
|
||||
|
||||
oldVal = jQuery("#select1").val();
|
||||
|
||||
jQuery("#select1").val(function(i, val) {
|
||||
equals( val, oldVal, "Make sure the incoming value is correct." );
|
||||
return 4;
|
||||
});
|
||||
|
||||
equals( jQuery("#select1").val(), "4", "Should be possible to set the val() to a newly created option" );
|
||||
});
|
||||
|
||||
var testAddClass = function(valueObj) {
|
||||
expect(2);
|
||||
var div = jQuery("div");
|
||||
|
@ -316,6 +458,25 @@ test("addClass(Function)", function() {
|
|||
testAddClass(functionReturningObj);
|
||||
});
|
||||
|
||||
test("addClass(Function) with incoming value", function() {
|
||||
expect(39);
|
||||
|
||||
var div = jQuery("div"), old = div.map(function(){
|
||||
return jQuery(this).attr("class");
|
||||
});
|
||||
|
||||
div.addClass(function(i, val) {
|
||||
equals( val, old[i], "Make sure the incoming value is correct." );
|
||||
return "test";
|
||||
});
|
||||
|
||||
var pass = true;
|
||||
for ( var i = 0; i < div.size(); i++ ) {
|
||||
if ( div.get(i).className.indexOf("test") == -1 ) pass = false;
|
||||
}
|
||||
ok( pass, "Add Class" );
|
||||
});
|
||||
|
||||
var testRemoveClass = function(valueObj) {
|
||||
expect(5);
|
||||
|
||||
|
@ -357,6 +518,23 @@ test("removeClass(Function) - simple", function() {
|
|||
testRemoveClass(functionReturningObj);
|
||||
});
|
||||
|
||||
test("removeClass(Function) with incoming value", function() {
|
||||
expect(39);
|
||||
|
||||
var $divs = jQuery('div').addClass("test"), old = $divs.map(function(){
|
||||
return jQuery(this).attr("class");
|
||||
});
|
||||
|
||||
$divs.removeClass(function(i, val) {
|
||||
equals( val, old[i], "Make sure the incoming value is correct." );
|
||||
return "test";
|
||||
});
|
||||
|
||||
ok( !$divs.is('.test'), "Remove Class" );
|
||||
|
||||
reset();
|
||||
});
|
||||
|
||||
var testToggleClass = function(valueObj) {
|
||||
expect(17);
|
||||
|
||||
|
@ -417,17 +595,57 @@ test("toggleClass(Function[, boolean])", function() {
|
|||
testToggleClass(functionReturningObj);
|
||||
});
|
||||
|
||||
var testRemoveAttr = function(valueObj) {
|
||||
expect(1);
|
||||
equals( jQuery('#mark').removeAttr( valueObj("class") )[0].className, "", "remove class" );
|
||||
};
|
||||
test("toggleClass(Fucntion[, boolean]) with incoming value", function() {
|
||||
expect(14);
|
||||
|
||||
test("removeAttr(String)", function() {
|
||||
testRemoveAttr(bareObj);
|
||||
});
|
||||
var e = jQuery("#firstp"), old = e.attr("class");
|
||||
ok( !e.is(".test"), "Assert class not present" );
|
||||
|
||||
e.toggleClass(function(i, val) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return "test";
|
||||
});
|
||||
ok( e.is(".test"), "Assert class present" );
|
||||
|
||||
old = e.attr("class");
|
||||
|
||||
e.toggleClass(function(i, val) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return "test";
|
||||
});
|
||||
ok( !e.is(".test"), "Assert class not present" );
|
||||
|
||||
old = e.attr("class");
|
||||
|
||||
test("removeAttr(Function)", function() {
|
||||
testRemoveAttr(functionReturningObj);
|
||||
// class name with a boolean
|
||||
e.toggleClass(function(i, val, state) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
equals( state, false, "Make sure that the state is passed in." );
|
||||
return "test";
|
||||
}, false );
|
||||
ok( !e.is(".test"), "Assert class not present" );
|
||||
|
||||
old = e.attr("class");
|
||||
|
||||
e.toggleClass(function(i, val, state) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
equals( state, true, "Make sure that the state is passed in." );
|
||||
return "test";
|
||||
}, true );
|
||||
ok( e.is(".test"), "Assert class present" );
|
||||
|
||||
old = e.attr("class");
|
||||
|
||||
e.toggleClass(function(i, val, state) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
equals( state, false, "Make sure that the state is passed in." );
|
||||
return "test";
|
||||
}, false );
|
||||
ok( !e.is(".test"), "Assert class not present" );
|
||||
|
||||
// Cleanup
|
||||
e.removeClass("test");
|
||||
e.removeData('__className__');
|
||||
});
|
||||
|
||||
test("addClass, removeClass, hasClass", function() {
|
||||
|
|
146
test/unit/css.js
146
test/unit/css.js
|
@ -120,69 +120,123 @@ if(jQuery.browser.msie) {
|
|||
}
|
||||
|
||||
test("css(String, Function)", function() {
|
||||
try {
|
||||
expect(3);
|
||||
expect(3);
|
||||
|
||||
var sizes = ["10px", "20px", "30px"];
|
||||
var sizes = ["10px", "20px", "30px"];
|
||||
|
||||
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div></div>")
|
||||
.appendTo("body");
|
||||
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div></div>")
|
||||
.appendTo("body");
|
||||
|
||||
var index = 0;
|
||||
var index = 0;
|
||||
|
||||
jQuery("#cssFunctionTest div").css("font-size", function() {
|
||||
var size = sizes[index];
|
||||
index++;
|
||||
return size;
|
||||
});
|
||||
jQuery("#cssFunctionTest div").css("font-size", function() {
|
||||
var size = sizes[index];
|
||||
index++;
|
||||
return size;
|
||||
});
|
||||
|
||||
index = 0;
|
||||
index = 0;
|
||||
|
||||
jQuery("#cssFunctionTest div").each(function() {
|
||||
var computedSize = jQuery(this).css("font-size")
|
||||
var expectedSize = sizes[index]
|
||||
equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize );
|
||||
index++;
|
||||
});
|
||||
|
||||
jQuery("#cssFunctionTest").remove();
|
||||
});
|
||||
|
||||
test("css(String, Function) with incoming value", function() {
|
||||
expect(3);
|
||||
|
||||
jQuery("#cssFunctionTest div").each(function() {
|
||||
var computedSize = jQuery(this).css("font-size")
|
||||
var expectedSize = sizes[index]
|
||||
equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize );
|
||||
index++;
|
||||
});
|
||||
var sizes = ["10px", "20px", "30px"];
|
||||
|
||||
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div></div>")
|
||||
.appendTo("body");
|
||||
|
||||
var index = 0;
|
||||
|
||||
jQuery("#cssFunctionTest div").css("font-size", function() {
|
||||
var size = sizes[index];
|
||||
index++;
|
||||
return size;
|
||||
});
|
||||
|
||||
} finally {
|
||||
jQuery("#cssFunctionTest").remove();
|
||||
}
|
||||
index = 0;
|
||||
|
||||
jQuery("#cssFunctionTest div").css("font-size", function(i, computedSize) {
|
||||
var expectedSize = sizes[index]
|
||||
equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize );
|
||||
index++;
|
||||
return computedSize;
|
||||
});
|
||||
|
||||
jQuery("#cssFunctionTest").remove();
|
||||
});
|
||||
|
||||
test("css(Object) where values are Functions", function() {
|
||||
try {
|
||||
expect(3);
|
||||
expect(3);
|
||||
|
||||
var sizes = ["10px", "20px", "30px"];
|
||||
var sizes = ["10px", "20px", "30px"];
|
||||
|
||||
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div></div>")
|
||||
.appendTo("body");
|
||||
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div></div>")
|
||||
.appendTo("body");
|
||||
|
||||
var index = 0;
|
||||
|
||||
var index = 0;
|
||||
jQuery("#cssFunctionTest div").css({fontSize: function() {
|
||||
var size = sizes[index];
|
||||
index++;
|
||||
return size;
|
||||
}});
|
||||
|
||||
index = 0;
|
||||
|
||||
jQuery("#cssFunctionTest div").each(function() {
|
||||
var computedSize = jQuery(this).css("font-size")
|
||||
var expectedSize = sizes[index]
|
||||
equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize );
|
||||
index++;
|
||||
});
|
||||
|
||||
jQuery("#cssFunctionTest").remove();
|
||||
});
|
||||
|
||||
test("css(Object) where values are Functions with incoming values", function() {
|
||||
expect(3);
|
||||
|
||||
var sizes = ["10px", "20px", "30px"];
|
||||
|
||||
jQuery("#cssFunctionTest div").css({fontSize: function() {
|
||||
var size = sizes[index];
|
||||
index++;
|
||||
return size;
|
||||
}});
|
||||
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div>" +
|
||||
"<div class='cssFunction'></div></div>")
|
||||
.appendTo("body");
|
||||
|
||||
var index = 0;
|
||||
|
||||
jQuery("#cssFunctionTest div").css({fontSize: function() {
|
||||
var size = sizes[index];
|
||||
index++;
|
||||
return size;
|
||||
}});
|
||||
|
||||
index = 0;
|
||||
index = 0;
|
||||
|
||||
jQuery("#cssFunctionTest div").each(function() {
|
||||
var computedSize = jQuery(this).css("font-size")
|
||||
var expectedSize = sizes[index]
|
||||
equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize );
|
||||
index++;
|
||||
});
|
||||
jQuery("#cssFunctionTest div").css({"font-size": function(i, computedSize) {
|
||||
var expectedSize = sizes[index]
|
||||
equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize );
|
||||
index++;
|
||||
return computedSize;
|
||||
}});
|
||||
|
||||
} finally {
|
||||
jQuery("#cssFunctionTest").remove();
|
||||
}
|
||||
jQuery("#cssFunctionTest").remove();
|
||||
});
|
||||
|
||||
test("jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)", function () {
|
||||
|
|
|
@ -12,6 +12,42 @@ test("text()", function() {
|
|||
equals( jQuery(document.createTextNode("foo")).text(), "foo", "Text node was retreived from .text()." );
|
||||
});
|
||||
|
||||
var testText = function(valueObj) {
|
||||
expect(4);
|
||||
var val = valueObj("<div><b>Hello</b> cruel world!</div>");
|
||||
equals( jQuery("#foo").text(val)[0].innerHTML.replace(/>/g, ">"), "<div><b>Hello</b> cruel world!</div>", "Check escaped text" );
|
||||
|
||||
// using contents will get comments regular, text, and comment nodes
|
||||
var j = jQuery("#nonnodes").contents();
|
||||
j.text(valueObj("hi!"));
|
||||
equals( jQuery(j[0]).text(), "hi!", "Check node,textnode,comment with text()" );
|
||||
equals( j[1].nodeValue, " there ", "Check node,textnode,comment with text()" );
|
||||
equals( j[2].nodeType, 8, "Check node,textnode,comment with text()" );
|
||||
}
|
||||
|
||||
test("text(String)", function() {
|
||||
testText(bareObj)
|
||||
});
|
||||
|
||||
test("text(Function)", function() {
|
||||
testText(functionReturningObj);
|
||||
});
|
||||
|
||||
test("text(Function) with incoming value", function() {
|
||||
expect(2);
|
||||
|
||||
var old = "This link has class=\"blog\": Simon Willison's Weblog";
|
||||
|
||||
jQuery('#sap').text(function(i, val) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return "foobar";
|
||||
});
|
||||
|
||||
equals( jQuery("#sap").text(), "foobar", 'Check for merged text of more then one element.' );
|
||||
|
||||
reset();
|
||||
});
|
||||
|
||||
var testWrap = function(val) {
|
||||
expect(18);
|
||||
var defaultText = 'Try them out:'
|
||||
|
@ -133,7 +169,7 @@ test("wrapInner(String|Element)", function() {
|
|||
// testWrapInner(functionReturningObj)
|
||||
// })
|
||||
|
||||
var testUnwrap = function() {
|
||||
test("unwrap()", function() {
|
||||
expect(9);
|
||||
|
||||
jQuery("body").append(' <div id="unwrap" style="display: none;"> <div id="unwrap1"> <span class="unwrap">a</span> <span class="unwrap">b</span> </div> <div id="unwrap2"> <span class="unwrap">c</span> <span class="unwrap">d</span> </div> <div id="unwrap3"> <b><span class="unwrap unwrap3">e</span></b> <b><span class="unwrap unwrap3">f</span></b> </div> </div>');
|
||||
|
@ -158,10 +194,6 @@ var testUnwrap = function() {
|
|||
same( jQuery('body > span.unwrap').get(), abcdef, 'body contains 6 .unwrap child spans' );
|
||||
|
||||
jQuery('body > span.unwrap').remove();
|
||||
}
|
||||
|
||||
test("unwrap()", function() {
|
||||
testUnwrap();
|
||||
});
|
||||
|
||||
var testAppend = function(valueObj) {
|
||||
|
@ -256,7 +288,68 @@ test("append(String|Element|Array<Element>|jQuery)", function() {
|
|||
|
||||
test("append(Function)", function() {
|
||||
testAppend(functionReturningObj);
|
||||
})
|
||||
});
|
||||
|
||||
test("append(Function) with incoming value", function() {
|
||||
expect(12);
|
||||
|
||||
var defaultText = 'Try them out:', old = jQuery("#first").html();
|
||||
|
||||
var result = jQuery('#first').append(function(i, val){
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return '<b>buga</b>';
|
||||
});
|
||||
equals( result.text(), defaultText + 'buga', 'Check if text appending works' );
|
||||
|
||||
var select = jQuery('#select3');
|
||||
old = select.html();
|
||||
|
||||
equals( select.append(function(i, val){
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return '<option value="appendTest">Append Test</option>';
|
||||
}).find('option:last-child').attr('value'), 'appendTest', 'Appending html options to select element');
|
||||
|
||||
reset();
|
||||
var expected = "This link has class=\"blog\": Simon Willison's WeblogTry them out:";
|
||||
old = jQuery("#sap").html();
|
||||
|
||||
jQuery('#sap').append(function(i, val){
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return document.getElementById('first');
|
||||
});
|
||||
equals( expected, jQuery('#sap').text(), "Check for appending of element" );
|
||||
|
||||
reset();
|
||||
expected = "This link has class=\"blog\": Simon Willison's WeblogTry them out:Yahoo";
|
||||
old = jQuery("#sap").html();
|
||||
|
||||
jQuery('#sap').append(function(i, val){
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return [document.getElementById('first'), document.getElementById('yahoo')];
|
||||
});
|
||||
equals( expected, jQuery('#sap').text(), "Check for appending of array of elements" );
|
||||
|
||||
reset();
|
||||
expected = "This link has class=\"blog\": Simon Willison's WeblogYahooTry them out:";
|
||||
old = jQuery("#sap").html();
|
||||
|
||||
jQuery('#sap').append(function(i, val){
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return jQuery("#first, #yahoo");
|
||||
});
|
||||
equals( expected, jQuery('#sap').text(), "Check for appending of jQuery object" );
|
||||
|
||||
reset();
|
||||
old = jQuery("#sap").html();
|
||||
|
||||
jQuery("#sap").append(function(i, val){
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return 5;
|
||||
});
|
||||
ok( jQuery("#sap")[0].innerHTML.match( /5$/ ), "Check for appending a number" );
|
||||
|
||||
reset();
|
||||
});
|
||||
|
||||
test("appendTo(String|Element|Array<Element>|jQuery)", function() {
|
||||
expect(12);
|
||||
|
@ -330,7 +423,7 @@ var testPrepend = function(val) {
|
|||
expected = "YahooTry them out:This link has class=\"blog\": Simon Willison's Weblog";
|
||||
jQuery('#sap').prepend(val( jQuery("#first, #yahoo") ));
|
||||
equals( expected, jQuery('#sap').text(), "Check for prepending of jQuery object" );
|
||||
}
|
||||
};
|
||||
|
||||
test("prepend(String|Element|Array<Element>|jQuery)", function() {
|
||||
testPrepend(bareObj);
|
||||
|
@ -338,7 +431,58 @@ test("prepend(String|Element|Array<Element>|jQuery)", function() {
|
|||
|
||||
test("prepend(Function)", function() {
|
||||
testPrepend(functionReturningObj);
|
||||
})
|
||||
});
|
||||
|
||||
test("prepend(Function) with incoming value", function() {
|
||||
expect(10);
|
||||
|
||||
var defaultText = 'Try them out:', old = jQuery('#first').html();
|
||||
var result = jQuery('#first').prepend(function(i, val) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return '<b>buga</b>';
|
||||
});
|
||||
equals( result.text(), 'buga' + defaultText, 'Check if text prepending works' );
|
||||
|
||||
old = jQuery("#select3").html();
|
||||
|
||||
equals( jQuery('#select3').prepend(function(i, val) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return '<option value="prependTest">Prepend Test</option>';
|
||||
}).find('option:first-child').attr('value'), 'prependTest', 'Prepending html options to select element');
|
||||
|
||||
reset();
|
||||
var expected = "Try them out:This link has class=\"blog\": Simon Willison's Weblog";
|
||||
old = jQuery('#sap').html();
|
||||
|
||||
jQuery('#sap').prepend(function(i, val) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return document.getElementById('first');
|
||||
});
|
||||
|
||||
equals( expected, jQuery('#sap').text(), "Check for prepending of element" );
|
||||
|
||||
reset();
|
||||
expected = "Try them out:YahooThis link has class=\"blog\": Simon Willison's Weblog";
|
||||
old = jQuery('#sap').html();
|
||||
|
||||
jQuery('#sap').prepend(function(i, val) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return [document.getElementById('first'), document.getElementById('yahoo')];
|
||||
});
|
||||
|
||||
equals( expected, jQuery('#sap').text(), "Check for prepending of array of elements" );
|
||||
|
||||
reset();
|
||||
expected = "YahooTry them out:This link has class=\"blog\": Simon Willison's Weblog";
|
||||
old = jQuery('#sap').html();
|
||||
|
||||
jQuery('#sap').prepend(function(i, val) {
|
||||
equals( val, old, "Make sure the incoming value is correct." );
|
||||
return jQuery("#first, #yahoo");
|
||||
});
|
||||
|
||||
equals( expected, jQuery('#sap').text(), "Check for prepending of jQuery object" );
|
||||
});
|
||||
|
||||
test("prependTo(String|Element|Array<Element>|jQuery)", function() {
|
||||
expect(6);
|
||||
|
@ -618,92 +762,6 @@ test("clone() on XML nodes", function() {
|
|||
});
|
||||
}
|
||||
|
||||
test("val()", function() {
|
||||
expect(17);
|
||||
|
||||
document.getElementById('text1').value = "bla";
|
||||
equals( jQuery("#text1").val(), "bla", "Check for modified value of input element" );
|
||||
|
||||
reset();
|
||||
|
||||
equals( jQuery("#text1").val(), "Test", "Check for value of input element" );
|
||||
// ticket #1714 this caused a JS error in IE
|
||||
equals( jQuery("#first").val(), "", "Check a paragraph element to see if it has a value" );
|
||||
ok( jQuery([]).val() === undefined, "Check an empty jQuery object will return undefined from val" );
|
||||
|
||||
equals( jQuery('#select2').val(), '3', 'Call val() on a single="single" select' );
|
||||
|
||||
same( jQuery('#select3').val(), ['1', '2'], 'Call val() on a multiple="multiple" select' );
|
||||
|
||||
equals( jQuery('#option3c').val(), '2', 'Call val() on a option element with value' );
|
||||
|
||||
equals( jQuery('#option3a').val(), '', 'Call val() on a option element with empty value' );
|
||||
|
||||
equals( jQuery('#option3e').val(), 'no value', 'Call val() on a option element with no value attribute' );
|
||||
|
||||
equals( jQuery('#option3a').val(), '', 'Call val() on a option element with no value attribute' );
|
||||
|
||||
jQuery('#select3').val("");
|
||||
same( jQuery('#select3').val(), [''], 'Call val() on a multiple="multiple" select' );
|
||||
|
||||
var checks = jQuery("<input type='checkbox' name='test' value='1'/>").appendTo("#form")
|
||||
.add( jQuery("<input type='checkbox' name='test' value='2'/>").appendTo("#form") )
|
||||
.add( jQuery("<input type='checkbox' name='test' value=''/>").appendTo("#form") )
|
||||
.add( jQuery("<input type='checkbox' name='test'/>").appendTo("#form") );
|
||||
|
||||
same( checks.serialize(), "", "Get unchecked values." );
|
||||
|
||||
equals( checks.eq(3).val(), "on", "Make sure a value of 'on' is provided if none is specified." );
|
||||
|
||||
checks.val([ "2" ]);
|
||||
same( checks.serialize(), "test=2", "Get a single checked value." );
|
||||
|
||||
checks.val([ "1", "" ]);
|
||||
same( checks.serialize(), "test=1&test=", "Get multiple checked values." );
|
||||
|
||||
checks.val([ "", "2" ]);
|
||||
same( checks.serialize(), "test=2&test=", "Get multiple checked values." );
|
||||
|
||||
checks.val([ "1", "on" ]);
|
||||
same( checks.serialize(), "test=1&test=on", "Get multiple checked values." );
|
||||
|
||||
checks.remove();
|
||||
});
|
||||
|
||||
var testVal = function(valueObj) {
|
||||
expect(6);
|
||||
|
||||
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( 67 ));
|
||||
equals( document.getElementById('text1').value, "67", "Check for modified (via val(Number)) value of input element" );
|
||||
|
||||
jQuery("#select1").val(valueObj( "3" ));
|
||||
equals( jQuery("#select1").val(), "3", "Check for modified (via val(String)) value of select element" );
|
||||
|
||||
jQuery("#select1").val(valueObj( 2 ));
|
||||
equals( jQuery("#select1").val(), "2", "Check for modified (via val(Number)) value of select element" );
|
||||
|
||||
jQuery("#select1").append("<option value='4'>four</option>");
|
||||
jQuery("#select1").val(valueObj( 4 ));
|
||||
equals( jQuery("#select1").val(), "4", "Should be possible to set the val() to a newly created option" );
|
||||
|
||||
// using contents will get comments regular, text, and comment nodes
|
||||
var j = jQuery("#nonnodes").contents();
|
||||
j.val(valueObj( "asdf" ));
|
||||
equals( j.val(), "asdf", "Check node,textnode,comment with val()" );
|
||||
j.removeAttr("value");
|
||||
}
|
||||
|
||||
test("val(String/Number)", function() {
|
||||
testVal(bareObj);
|
||||
});
|
||||
|
||||
test("val(Function)", function() {
|
||||
testVal(functionReturningObj);
|
||||
})
|
||||
|
||||
var testHtml = function(valueObj) {
|
||||
expect(22);
|
||||
|
||||
|
@ -768,27 +826,66 @@ test("html(Function)", function() {
|
|||
testHtml(functionReturningObj);
|
||||
});
|
||||
|
||||
var testText = function(valueObj) {
|
||||
expect(4);
|
||||
var val = valueObj("<div><b>Hello</b> cruel world!</div>");
|
||||
equals( jQuery("#foo").text(val)[0].innerHTML.replace(/>/g, ">"), "<div><b>Hello</b> cruel world!</div>", "Check escaped text" );
|
||||
test("html(Function) with incoming value", function() {
|
||||
expect(20);
|
||||
|
||||
var div = jQuery("#main > div"), old = div.map(function(){ return jQuery(this).html() });
|
||||
|
||||
div.html(function(i, val) {
|
||||
equals( val, old[i], "Make sure the incoming value is correct." );
|
||||
return "<b>test</b>";
|
||||
});
|
||||
|
||||
var pass = true;
|
||||
div.each(function(){
|
||||
if ( this.childNodes.length !== 1 ) {
|
||||
pass = false;
|
||||
}
|
||||
})
|
||||
ok( pass, "Set HTML" );
|
||||
|
||||
reset();
|
||||
// using contents will get comments regular, text, and comment nodes
|
||||
var j = jQuery("#nonnodes").contents();
|
||||
j.text(valueObj("hi!"));
|
||||
equals( jQuery(j[0]).text(), "hi!", "Check node,textnode,comment with text()" );
|
||||
equals( j[1].nodeValue, " there ", "Check node,textnode,comment with text()" );
|
||||
equals( j[2].nodeType, 8, "Check node,textnode,comment with text()" );
|
||||
}
|
||||
old = j.map(function(){ return jQuery(this).html(); });
|
||||
|
||||
j.html(function(i, val) {
|
||||
equals( val, old[i], "Make sure the incoming value is correct." );
|
||||
return "<b>bold</b>";
|
||||
});
|
||||
|
||||
j.find('b').removeData();
|
||||
equals( j.html().replace(/ xmlns="[^"]+"/g, "").toLowerCase(), "<b>bold</b>", "Check node,textnode,comment with html()" );
|
||||
|
||||
var $div = jQuery('<div />');
|
||||
|
||||
equals( $div.html(function(i, val) {
|
||||
equals( val, "", "Make sure the incoming value is correct." );
|
||||
return 5;
|
||||
}).html(), '5', 'Setting a number as html' );
|
||||
|
||||
equals( $div.html(function(i, val) {
|
||||
equals( val, "5", "Make sure the incoming value is correct." );
|
||||
return 0;
|
||||
}).html(), '0', 'Setting a zero as html' );
|
||||
|
||||
test("text(String)", function() {
|
||||
testText(bareObj)
|
||||
var $div2 = jQuery('<div/>'), insert = "<div>hello1</div>";
|
||||
equals( $div2.html(function(i, val) {
|
||||
equals( val, "", "Make sure the incoming value is correct." );
|
||||
return insert;
|
||||
}).html(), insert, "Verify escaped insertion." );
|
||||
|
||||
equals( $div2.html(function(i, val) {
|
||||
equals( val, insert, "Make sure the incoming value is correct." );
|
||||
return "x" + insert;
|
||||
}).html(), "x" + insert, "Verify escaped insertion." );
|
||||
|
||||
equals( $div2.html(function(i, val) {
|
||||
equals( val, "x" + insert, "Make sure the incoming value is correct." );
|
||||
return " " + insert;
|
||||
}).html(), " " + insert, "Verify escaped insertion." );
|
||||
});
|
||||
|
||||
test("text(Function)", function() {
|
||||
testText(functionReturningObj);
|
||||
})
|
||||
|
||||
var testRemove = function(method) {
|
||||
expect(9);
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
module("offset");
|
||||
|
||||
testoffset("absolute", function( jQuery ) {
|
||||
expect(144);
|
||||
|
||||
// get offset tests
|
||||
var tests = [
|
||||
{ id: '#absolute-1', top: 1, left: 1 },
|
||||
|
@ -51,6 +53,16 @@ testoffset("absolute", function( jQuery ) {
|
|||
equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset({ top: " + this.top + " })" );
|
||||
equals( jQuery( this.id ).offset().left, this.left, "jQuery('" + this.id + "').offset({ left: " + this.left + " })" );
|
||||
|
||||
var top = this.top, left = this.left;
|
||||
|
||||
jQuery( this.id ).offset(function(i, val){
|
||||
equals( val.top, top, "Verify incoming top position." );
|
||||
equals( val.left, left, "Verify incoming top position." );
|
||||
return { top: top + 1, left: left + 1 };
|
||||
});
|
||||
equals( jQuery( this.id ).offset().top, this.top + 1, "jQuery('" + this.id + "').offset({ top: " + this.top + " })" );
|
||||
equals( jQuery( this.id ).offset().left, this.left + 1, "jQuery('" + this.id + "').offset({ left: " + this.left + " })" );
|
||||
|
||||
jQuery( this.id ).offset({ top: this.top, left: this.left, using: function( props ) {
|
||||
jQuery( this ).css({
|
||||
top: props.top + 1,
|
||||
|
@ -63,6 +75,8 @@ testoffset("absolute", function( jQuery ) {
|
|||
});
|
||||
|
||||
testoffset("relative", function( jQuery ) {
|
||||
expect(60);
|
||||
|
||||
// IE is collapsing the top margin of 1px
|
||||
var ie = jQuery.browser.msie && parseInt( jQuery.browser.version ) < 8;
|
||||
|
||||
|
@ -122,6 +136,8 @@ testoffset("relative", function( jQuery ) {
|
|||
});
|
||||
|
||||
testoffset("static", function( jQuery ) {
|
||||
expect(80);
|
||||
|
||||
// IE is collapsing the top margin of 1px
|
||||
var ie = jQuery.browser.msie && parseInt( jQuery.browser.version ) < 8;
|
||||
|
||||
|
@ -187,6 +203,8 @@ testoffset("static", function( jQuery ) {
|
|||
});
|
||||
|
||||
testoffset("fixed", function( jQuery ) {
|
||||
expect(28);
|
||||
|
||||
jQuery.offset.initialize();
|
||||
|
||||
var tests = [
|
||||
|
@ -238,31 +256,18 @@ testoffset("fixed", function( jQuery ) {
|
|||
});
|
||||
|
||||
testoffset("table", function( jQuery ) {
|
||||
var ie = jQuery.browser.msie;
|
||||
expect(4);
|
||||
|
||||
equals( jQuery('#table-1').offset().top, 6, "jQuery('#table-1').offset().top" );
|
||||
equals( jQuery('#table-1').offset().left, 6, "jQuery('#table-1').offset().left" );
|
||||
|
||||
equals( jQuery('#th-1').offset().top, 10, "jQuery('#th-1').offset().top" );
|
||||
equals( jQuery('#th-1').offset().left, 10, "jQuery('#th-1').offset().left" );
|
||||
|
||||
// equals( jQuery('#th-2').offset().top, 10, "jQuery('#th-2').offset().top" );
|
||||
// equals( jQuery('#th-2').offset().left, 116, "jQuery('#th-2').offset().left" );
|
||||
//
|
||||
// equals( jQuery('#th-3').offset().top, 10, "jQuery('#th-3').offset().top" );
|
||||
// equals( jQuery('#th-3').offset().left, 222, "jQuery('#th-3').offset().left" );
|
||||
|
||||
// equals( jQuery('#td-1').offset().top, ie ? 116 : 112, "jQuery('#td-1').offset().top" );
|
||||
// equals( jQuery('#td-1').offset().left, 10, "jQuery('#td-1').offset().left" );
|
||||
//
|
||||
// equals( jQuery('#td-2').offset().top, ie ? 116 : 112, "jQuery('#td-2').offset().top" );
|
||||
// equals( jQuery('#td-2').offset().left, 116, "jQuery('#td-2').offset().left" );
|
||||
//
|
||||
// equals( jQuery('#td-3').offset().top, ie ? 116 : 112, "jQuery('#td-3').offset().top" );
|
||||
// equals( jQuery('#td-3').offset().left, 222, "jQuery('#td-3').offset().left" );
|
||||
});
|
||||
|
||||
testoffset("scroll", function( jQuery, win ) {
|
||||
expect(12);
|
||||
|
||||
var ie = jQuery.browser.msie && parseInt( jQuery.browser.version ) < 8;
|
||||
|
||||
// IE is collapsing the top margin of 1px
|
||||
|
@ -294,6 +299,8 @@ testoffset("scroll", function( jQuery, win ) {
|
|||
});
|
||||
|
||||
testoffset("body", function( jQuery ) {
|
||||
expect(2);
|
||||
|
||||
equals( jQuery('body').offset().top, 1, "jQuery('#body').offset().top" );
|
||||
equals( jQuery('body').offset().left, 1, "jQuery('#body').offset().left" );
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue