aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleg Gaidarenko <markelog@gmail.com>2015-12-22 21:01:43 +0300
committerOleg Gaidarenko <markelog@gmail.com>2015-12-22 21:01:43 +0300
commit7cfa4b26bc96c07254ba036a3a957421e4e43786 (patch)
tree078c9d789a15f1f65b034973945d21e677ba442a
parente73541dfe9fc649d9a519ec18297ab2928740c26 (diff)
downloadjquery-7cfa4b26bc96c07254ba036a3a957421e4e43786.tar.gz
jquery-7cfa4b26bc96c07254ba036a3a957421e4e43786.zip
Revert "Core: Return empty array instead of null for parseHTML("")"
This reverts commit 61bb61279ce51af189d40162dc62e44f04826051.
-rw-r--r--src/core/parseHTML.js4
-rw-r--r--test/unit/core.js27
2 files changed, 13 insertions, 18 deletions
diff --git a/src/core/parseHTML.js b/src/core/parseHTML.js
index f6eb7abb4..55f67c43e 100644
--- a/src/core/parseHTML.js
+++ b/src/core/parseHTML.js
@@ -13,8 +13,8 @@ define( [
// defaults to document
// keepScripts (optional): If true, will include scripts passed in the html string
jQuery.parseHTML = function( data, context, keepScripts ) {
- if ( typeof data !== "string" ) {
- return [];
+ if ( !data || typeof data !== "string" ) {
+ return null;
}
if ( typeof context === "boolean" ) {
keepScripts = context;
diff --git a/test/unit/core.js b/test/unit/core.js
index 84548a0df..9714b8685 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -1504,26 +1504,21 @@ QUnit.test( "jQuery.proxy", function( assert ) {
cb.call( thisObject, "arg3" );
} );
-QUnit.test( "jQuery.parseHTML", function( assert ) {
- assert.expect( 22 );
+QUnit.test("jQuery.parseHTML", function( assert ) {
+ expect( 17 );
var html, nodes;
- assert.deepEqual( jQuery.parseHTML(), [], "Without arguments" );
- assert.deepEqual( jQuery.parseHTML( undefined ), [], "Undefined" );
- assert.deepEqual( jQuery.parseHTML( null ), [], "Null" );
- assert.deepEqual( jQuery.parseHTML( false ), [], "Boolean false" );
- assert.deepEqual( jQuery.parseHTML( 0 ), [], "Zero" );
- assert.deepEqual( jQuery.parseHTML( true ), [], "Boolean true" );
- assert.deepEqual( jQuery.parseHTML( 42 ), [], "Positive number" );
- assert.deepEqual( jQuery.parseHTML( "" ), [], "Empty string" );
- assert.throws( function() {
- jQuery.parseHTML( "<div></div>", document.getElementById( "form" ) );
- }, "Passing an element as the context raises an exception (context should be a document)" );
+ 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." );
+ throws(function() {
+ jQuery.parseHTML( "<div></div>", document.getElementById("form") );
+ }, "Passing an element as the context raises an exception (context should be a document)");
- nodes = jQuery.parseHTML( jQuery( "body" )[ 0 ].innerHTML );
- assert.ok( nodes.length > 4, "Parse a large html string" );
- assert.equal( jQuery.type( nodes ), "array", "parseHTML returns an array rather than a nodelist" );
+ nodes = jQuery.parseHTML( jQuery("body")[0].innerHTML );
+ ok( nodes.length > 4, "Parse a large html string" );
+ equal( jQuery.type( nodes ), "array", "parseHTML returns an array rather than a nodelist" );
html = "<script>undefined()</script>";
assert.equal( jQuery.parseHTML( html ).length, 0, "Ignore scripts by default" );