+
+ QUnit.reset();
+ var tmp = jQuery("<div/>").appendTo("body").click(function(){ ok(true, "Newly bound click run." ); });
+ var y = jQuery('<div/>').appendTo("body").click(function(){ ok(true, "Previously bound click run." ); });
+ var child = y.append("<b>test</b>").find("b").click(function(){ ok(true, "Child bound click run." ); return false; });
+
+ y.replaceWith( tmp );
+
+ tmp.click();
+ y.click(); // Shouldn't be run
+ child.click(); // Shouldn't be run
+
+ tmp.remove();
+ y.remove();
+ child.remove();
+
+ QUnit.reset();
+
+ y = jQuery('<div/>').appendTo("body").click(function(){ ok(true, "Previously bound click run." ); });
+ var child2 = y.append("<u>test</u>").find("u").click(function(){ ok(true, "Child 2 bound click run." ); return false; });
+
+ y.replaceWith( child2 );
+
+ child2.click();
+
+ y.remove();
+ child2.remove();
+
+ QUnit.reset();
+
+ var set = jQuery("<div/>").replaceWith(val("<span>test</span>"));
+ equals( set[0].nodeName.toLowerCase(), "span", "Replace the disconnected node." );
+ equals( set.length, 1, "Replace the disconnected node." );
+
+ var $div = jQuery("<div class='replacewith'></div>").appendTo("body");
+ // TODO: Work on jQuery(...) inline script execution
+ //$div.replaceWith("<div class='replacewith'></div><script>" +
+ //"equals(jQuery('.replacewith').length, 1, 'Check number of elements in page.');" +
+ //"</script>");
+ equals(jQuery('.replacewith').length, 1, 'Check number of elements in page.');
+ jQuery('.replacewith').remove();
+
+ QUnit.reset();
+
+ jQuery("#main").append("<div id='replaceWith'></div>");
+ equals( jQuery("#main").find("div[id=replaceWith]").length, 1, "Make sure only one div exists." );
+
+ jQuery("#replaceWith").replaceWith( val("<div id='replaceWith'></div>") );
+ equals( jQuery("#main").find("div[id=replaceWith]").length, 1, "Make sure only one div exists." );
+
+ jQuery("#replaceWith").replaceWith( val("<div id='replaceWith'></div>") );
+ equals( jQuery("#main").find("div[id=replaceWith]").length, 1, "Make sure only one div exists." );
+}
+
+test("replaceWith(String|Element|Array<Element>|jQuery)", function() {
+ testReplaceWith(bareObj);
+});
+
+test("replaceWith(Function)", function() {
+ testReplaceWith(functionReturningObj);
+
+ expect(21);
+
+ var y = jQuery("#yahoo")[0];
+
+ jQuery(y).replaceWith(function(){
+ equals( this, y, "Make sure the context is coming in correctly." );
+ });
+
+ QUnit.reset();
+});
+
+test("replaceWith(string) for more than one element", function(){
+ expect(3);
+
+ equals(jQuery('#foo p').length, 3, 'ensuring that test data has not changed');
+
+ jQuery('#foo p').replaceWith('<span>bar</span>');
+ equals(jQuery('#foo span').length, 3, 'verify that all the three original element have been replaced');
+ equals(jQuery('#foo p').length, 0, 'verify that all the three original element have been replaced');