From: Timo Tijhof Date: Wed, 7 Jan 2015 20:12:49 +0000 (+0000) Subject: Core: Return empty array instead of null for parseHTML("") X-Git-Tag: 3.0.0-alpha1~136 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=4116914dcac32868c2c822366785e3dd2ccc69d4;p=jquery.git Core: Return empty array instead of null for parseHTML("") Fixes gh-1997 Close gh-1998 --- diff --git a/src/core/parseHTML.js b/src/core/parseHTML.js index b0f489536..519600a63 100644 --- a/src/core/parseHTML.js +++ b/src/core/parseHTML.js @@ -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; diff --git a/test/unit/core.js b/test/unit/core.js index eb05130c5..9bcd08fff 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -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( "
", document.getElementById("form") ); }, "Passing an element as the context raises an exception (context should be a document)");