Added some .text(Function) tests.
[jquery.git] / test / unit / manipulation.js
index 0ebae16..35b24af 100644 (file)
@@ -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, "&gt;"), "&lt;div&gt;&lt;b&gt;Hello&lt;/b&gt; cruel world!&lt;/div&gt;", "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) {
@@ -618,86 +650,6 @@ test("clone() on XML nodes", function() {
 });
 }
 
-test("val()", function() {
-       expect(15);
-
-       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") );
-
-       same( checks.serialize(), "", "Get unchecked values." );
-
-       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.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);
 
@@ -762,27 +714,6 @@ 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, "&gt;"), "&lt;div&gt;&lt;b&gt;Hello&lt;/b&gt; cruel world!&lt;/div&gt;", "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);
-})
-
 var testRemove = function(method) {
        expect(9);