From e2497c682f26b7916d76cb2896c6fe621b376d82 Mon Sep 17 00:00:00 2001 From: timmywil Date: Thu, 21 Jun 2012 15:28:57 -0400 Subject: Add parseHTML for explicitly parsing strings into html. Fixes #11617. --- test/unit/core.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'test/unit') diff --git a/test/unit/core.js b/test/unit/core.js index 71737a87e..f2f5f41c4 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -1120,6 +1120,35 @@ test("jQuery.proxy", function(){ jQuery.proxy( test4, "meth" )( "boom" ); }); +test("jQuery.parseHTML", function() { + expect( 11 ); + + equal( jQuery.parseHTML(), null, "Nothing in, null out." ); + equal( jQuery.parseHTML( null ), null, "Nothing in, null out." ); + equal( jQuery.parseHTML( "" ), null, "Nothing in, null out." ); + raises(function() { + jQuery.parseHTML( "
", document.getElementById("form") ); + }, "Passing an element as the context raises an exception (context should be a document)"); + + var elems = jQuery.parseHTML( jQuery("body").html() ); + ok( elems.length > 10, "Parse a large html string" ); + equal( jQuery.type( elems ), "array", "parseHTML returns an array rather than a nodelist" ); + + var script = ""; + equal( jQuery.parseHTML( script ).length, 0, "Passing a script is not allowed by default" ); + raises(function() { + jQuery(jQuery.parseHTML( script, true )).appendTo("#qunit-fixture"); + }, "Passing a script is allowed if allowScripts is true"); + + var html = script + "
"; + equal( jQuery.parseHTML( html )[0].nodeName.toLowerCase(), "div", "Ignore scripts by default" ); + raises(function() { + jQuery(jQuery.parseHTML( html, true )).appendTo("#qunit-fixture"); + }, "Passing a script is allowed if allowScripts is true"); + + equal( jQuery.parseHTML("text")[0].nodeType, 3, "Parsing text returns a text node" ); +}); + test("jQuery.parseJSON", function(){ expect(8); -- cgit v1.2.3