X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=test%2Funit%2Fmanipulation.js;h=031bf5b720277db2656a7efd231e25ab3432c63e;hb=0474917c9d82fa13d865282d2da2d3cb6e5b89ec;hp=bb78bdd2b813b0da53daec3051bde859a5a7fb69;hpb=2c8af19a06c49dc2121d968c2609087b0a54e894;p=jquery.git diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js index bb78bdd..031bf5b 100644 --- a/test/unit/manipulation.js +++ b/test/unit/manipulation.js @@ -139,11 +139,6 @@ test("wrapAll(String|Element)", function() { testWrapAll(bareObj); }); -// TODO: Figure out why each(wrapAll) is not equivalent to wrapAll -// test("wrapAll(Function)", function() { -// testWrapAll(functionReturningObj); -// }) - var testWrapInner = function(val) { expect(8); var num = jQuery("#first").children().length; @@ -798,7 +793,7 @@ test("clone() on XML nodes", function() { } var testHtml = function(valueObj) { - expect(22); + expect(24); jQuery.scriptorder = 0; @@ -810,6 +805,11 @@ var testHtml = function(valueObj) { } ok( pass, "Set HTML" ); + div = jQuery("
").html( valueObj('
') ); + + equals( div.children().length, 2, "Make sure two child nodes exist." ); + equals( div.children().children().length, 1, "Make sure that a grandchild exists." ); + reset(); // using contents will get comments regular, text, and comment nodes var j = jQuery("#nonnodes").contents(); @@ -828,9 +828,9 @@ var testHtml = function(valueObj) { 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." ); + equals( $div2.html(insert).html().replace(/>/g, ">"), insert, "Verify escaped insertion." ); + equals( $div2.html("x" + insert).html().replace(/>/g, ">"), "x" + insert, "Verify escaped insertion." ); + equals( $div2.html(" " + insert).html().replace(/>/g, ">"), " " + insert, "Verify escaped insertion." ); var map = jQuery("").html(valueObj("jQuery")); @@ -908,17 +908,17 @@ test("html(Function) with incoming value", function() { equals( $div2.html(function(i, val) { equals( val, "", "Make sure the incoming value is correct." ); return insert; - }).html(), insert, "Verify escaped insertion." ); + }).html().replace(/>/g, ">"), insert, "Verify escaped insertion." ); equals( $div2.html(function(i, val) { - equals( val, insert, "Make sure the incoming value is correct." ); + equals( val.replace(/>/g, ">"), insert, "Make sure the incoming value is correct." ); return "x" + insert; - }).html(), "x" + insert, "Verify escaped insertion." ); + }).html().replace(/>/g, ">"), "x" + insert, "Verify escaped insertion." ); equals( $div2.html(function(i, val) { - equals( val, "x" + insert, "Make sure the incoming value is correct." ); + equals( val.replace(/>/g, ">"), "x" + insert, "Make sure the incoming value is correct." ); return " " + insert; - }).html(), " " + insert, "Verify escaped insertion." ); + }).html().replace(/>/g, ">"), " " + insert, "Verify escaped insertion." ); }); var testRemove = function(method) { @@ -976,3 +976,79 @@ test("empty()", function() { equals( j.html(), "", "Check node,textnode,comment empty works" ); }); +test("jQuery.cleanData", function() { + expect(14); + + var type, pos, div, child; + + type = "remove"; + + // Should trigger 4 remove event + div = getDiv().remove(); + + // Should both do nothing + pos = "Outer"; + div.trigger("click"); + + pos = "Inner"; + div.children().trigger("click"); + + type = "empty"; + div = getDiv(); + child = div.children(); + + // Should trigger 2 remove event + div.empty(); + + // Should trigger 1 + pos = "Outer"; + div.trigger("click"); + + // Should do nothing + pos = "Inner"; + child.trigger("click"); + + // Should trigger 2 + div.remove(); + + type = "html"; + + div = getDiv(); + child = div.children(); + + // Should trigger 2 remove event + div.html("
"); + + // Should trigger 1 + pos = "Outer"; + div.trigger("click"); + + // Should do nothing + pos = "Inner"; + child.trigger("click"); + + // Should trigger 2 + div.remove(); + + function getDiv() { + var div = jQuery("
").click(function(){ + ok( true, type + " " + pos + " Click event fired." ); + }).focus(function(){ + ok( true, type + " " + pos + " Focus event fired." ); + }).find("div").click(function(){ + ok( false, type + " " + pos + " Click event fired." ); + }).focus(function(){ + ok( false, type + " " + pos + " Focus event fired." ); + }).end().appendTo("body"); + + div[0].detachEvent = div[0].removeEventListener = function(t){ + ok( true, type + " Outer " + t + " event unbound" ); + }; + + div[0].firstChild.detachEvent = div[0].firstChild.removeEventListener = function(t){ + ok( true, type + " Inner " + t + " event unbound" ); + }; + + return div; + } +});