]> source.dussan.org Git - jquery.git/commitdiff
Core: Return empty array instead of null for parseHTML("")
authorTimo Tijhof <krinklemail@gmail.com>
Wed, 7 Jan 2015 20:12:49 +0000 (20:12 +0000)
committerTimmy Willison <timmywillisn@gmail.com>
Mon, 19 Jan 2015 16:38:04 +0000 (11:38 -0500)
Fixes gh-1997
Close gh-1998

src/core/parseHTML.js
test/unit/core.js

index b0f489536edf9fe6f433340054b3f5c2451c62e4..519600a63998108f74a2cc7975a9a7e1c094ee5b 100644 (file)
@@ -15,8 +15,8 @@ define([
 // defaults to document
 // keepScripts (optional): If true, will include scripts passed in the html string
 jQuery.parseHTML = function( data, context, keepScripts ) {
-       if ( !data || typeof data !== "string" ) {
-               return null;
+       if ( typeof data !== "string" ) {
+               return [];
        }
        if ( typeof context === "boolean" ) {
                keepScripts = context;
index eb05130c54de9b02b94630165cc990687f9238c1..9bcd08fff48b063eb4b99ca8696d6893424bcc48 100644 (file)
@@ -1301,13 +1301,18 @@ test("jQuery.proxy", function(){
 });
 
 test("jQuery.parseHTML", function() {
-       expect( 18 );
+       expect( 23 );
 
        var html, nodes;
 
-       equal( jQuery.parseHTML(), null, "Nothing in, null out." );
-       equal( jQuery.parseHTML( null ), null, "Null in, null out." );
-       equal( jQuery.parseHTML( "" ), null, "Empty string in, null out." );
+       deepEqual( jQuery.parseHTML(), [], "Without arguments" );
+       deepEqual( jQuery.parseHTML( undefined ), [], "Undefined" );
+       deepEqual( jQuery.parseHTML( null ), [], "Null" );
+       deepEqual( jQuery.parseHTML( false ), [], "Boolean false" );
+       deepEqual( jQuery.parseHTML( 0 ), [], "Zero" );
+       deepEqual( jQuery.parseHTML( true ), [], "Boolean true" );
+       deepEqual( jQuery.parseHTML( 42 ), [], "Positive number" );
+       deepEqual( jQuery.parseHTML( "" ), [], "Empty string" );
        throws(function() {
                jQuery.parseHTML( "<div></div>", document.getElementById("form") );
        }, "Passing an element as the context raises an exception (context should be a document)");