X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fmanipulation.js;h=44fafa92b1cb09eb3838b18dcf70989145abe546;hb=59802928566b6be3a66d65e77c2418fff37e6f5f;hp=b9cb35dedd1680da037669dbaa2c75b983eedc7d;hpb=69e6e53555f21f07b534f1169298f7b33011bb4b;p=jquery.git diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js index b9cb35d..44fafa9 100644 --- a/test/unit/manipulation.js +++ b/test/unit/manipulation.js @@ -4,9 +4,12 @@ var bareObj = function(value) { return value; }; var functionReturningObj = function(value) { return (function() { return value; }); }; test("text()", function() { - expect(1); + expect(2); var expected = "This link has class=\"blog\": Simon Willison's Weblog"; equals( jQuery('#sap').text(), expected, 'Check for merged text of more then one element.' ); + + // Check serialization of text values + equals( jQuery(document.createTextNode("foo")).text(), "foo", "Text node was retreived from .text()." ); }); var testWrap = function(val) { @@ -34,7 +37,7 @@ var testWrap = function(val) { var j = jQuery("#nonnodes").contents(); j.wrap(val( "" )); 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" ); + equals( jQuery("#nonnodes > i").text(), j.text(), "Check node,textnode,comment wraps doesn't hurt text" ); // Try wrapping a disconnected node j = jQuery("").wrap(val( "
" )); @@ -124,7 +127,7 @@ var testUnwrap = function() { var abcd = jQuery('#unwrap1 > span, #unwrap2 > span').get(), abcdef = jQuery('#unwrap span').get(); - equals( jQuery('#unwrap1 span, #unwrap2 span:first').unwrap().length, 3, 'make #unwrap1 and #unwrap2 go away' ); + equals( jQuery('#unwrap1 span').add('#unwrap2 span:first').unwrap().length, 3, 'make #unwrap1 and #unwrap2 go away' ); same( jQuery('#unwrap > span').get(), abcd, 'all four spans should still exist' ); same( jQuery('#unwrap3 span').unwrap().get(), jQuery('#unwrap3 > span').get(), 'make all b in #unwrap3 go away' ); @@ -148,7 +151,7 @@ test("unwrap()", function() { }); var testAppend = function(valueObj) { - expect(21); + expect(22); var defaultText = 'Try them out:' var result = jQuery('#first').append(valueObj('buga')); equals( result.text(), defaultText + 'buga', 'Check if text appending works' ); @@ -221,6 +224,8 @@ var testAppend = function(valueObj) { t( "Append Select", "#appendSelect1, #appendSelect2", ["appendSelect1", "appendSelect2"] ); + equals( "Two nodes", jQuery('').append("Two", " nodes").text(), "Appending two text nodes (#4011)" ); + // using contents will get comments regular, text, and comment nodes var j = jQuery("#nonnodes").contents(); var d = jQuery("").appendTo("#nonnodes").append(j); @@ -463,7 +468,7 @@ test("insertAfter(String|Element|Array<Element>|jQuery)", function() { }); var testReplaceWith = function(val) { - expect(12); + expect(14); jQuery('#yahoo').replaceWith(val( 'buga' )); ok( jQuery("#replace")[0], 'Replace element with string' ); ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after string' ); @@ -488,6 +493,13 @@ var testReplaceWith = function(val) { var set = jQuery("").replaceWith(val("test")); equals( set[0].nodeName.toLowerCase(), "span", "Replace the disconnected node." ); equals( set.length, 1, "Replace the disconnected node." ); + + var $div = jQuery("").appendTo("body"); + $div.replaceWith(""); + equals(jQuery('.replacewith').length, 1, 'Check number of elements in page.'); + jQuery('.replacewith').remove(); } test("replaceWith(String|Element|Array<Element>|jQuery)", function() { @@ -602,7 +614,7 @@ test("val()", function() { equals( jQuery('#select2').val(), '3', 'Call val() on a single="single" select' ); - isSet( jQuery('#select3').val(), ['1', '2'], 'Call val() on a multiple="multiple" 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' ); @@ -613,7 +625,7 @@ test("val()", function() { }); var testVal = function(valueObj) { - expect(5); + expect(6); jQuery("#text1").val(valueObj( 'test' )); equals( document.getElementById('text1').value, "test", "Check for modified (via val(String)) value of input element" ); @@ -627,6 +639,10 @@ var testVal = function(valueObj) { jQuery("#select1").val(valueObj( 2 )); equals( jQuery("#select1").val(), "2", "Check for modified (via val(Number)) value of select element" ); + jQuery("#select1").append(""); + 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" )); @@ -643,9 +659,7 @@ test("val(Function)", function() { }) var testHtml = function(valueObj) { - expect(17); - - window.debug = true; + expect(22); jQuery.scriptorder = 0; @@ -657,8 +671,6 @@ var testHtml = function(valueObj) { } ok( pass, "Set HTML" ); - delete window.debug; - reset(); // using contents will get comments regular, text, and comment nodes var j = jQuery("#nonnodes").contents(); @@ -676,6 +688,16 @@ var testHtml = function(valueObj) { equals( $div.html(valueObj( 5 )).html(), '5', 'Setting a number as html' ); equals( $div.html(valueObj( 0 )).html(), '0', 'Setting a zero as html' ); + var $div2 = jQuery(''), insert = "<div>hello1</div>"; + equals( $div2.html(insert).html(), insert, "Verify escaped insertion." ); + equals( $div2.html("x" + insert).html(), "x" + insert, "Verify escaped insertion." ); + equals( $div2.html(" " + insert).html(), " " + insert, "Verify escaped insertion." ); + + var map = jQuery("").html(valueObj("")); + + equals( map[0].childNodes.length, 1, "The area was inserted." ); + equals( map[0].firstChild.nodeName.toLowerCase(), "area", "The area was inserted." ); + reset(); jQuery("#main").html(valueObj(''));