jenkins-bot has submitted this change and it was merged. Change subject: ve.utils: Clean up escapeHtml ......................................................................
ve.utils: Clean up escapeHtml Follows-up ccc2248a. * Make callback actually private, and no longer a property of another function. * Remove dead 'default' case of switch statement. The callback is only used for regex matches. The original in MediaWiki core never had such extra case, either (d0459e295d). * Cover with test. Change-Id: Idbf41280cc4920c1924cd40cfe07d9d5e9653e08 --- M src/ve.utils.js M tests/ve.test.js 2 files changed, 23 insertions(+), 30 deletions(-) Approvals: Jforrester: Looks good to me, but someone else must approve Esanders: Looks good to me, approved jenkins-bot: Verified diff --git a/src/ve.utils.js b/src/ve.utils.js index 34eb674..ec02308 100644 --- a/src/ve.utils.js +++ b/src/ve.utils.js @@ -455,40 +455,29 @@ * * This method is basically a copy of `mw.html.escape`. * - * @see #escapeHtml_escapeHtmlCharacter * @param {string} value Attribute value to escape * @returns {string} Escaped attribute value */ -ve.escapeHtml = function ( value ) { - return value.replace( /['"<>&]/g, ve.escapeHtml.escapeHtmlCharacter ); -}; - -/** - * Helper function for #escapeHtml to escape a character for use in HTML. - * - * This is a callback intended to be passed to String#replace. - * - * @method escapeHtml_escapeHtmlCharacter - * @private - * @param {string} key Property name of value being replaced - * @returns {string} Escaped character - */ -ve.escapeHtml.escapeHtmlCharacter = function ( value ) { - switch ( value ) { - case '\'': - return '''; - case '"': - return '"'; - case '<': - return '<'; - case '>': - return '>'; - case '&': - return '&'; - default: - return value; +ve.escapeHtml = ( function () { + function escape( value ) { + switch ( value ) { + case '\'': + return '''; + case '"': + return '"'; + case '<': + return '<'; + case '>': + return '>'; + case '&': + return '&'; + } } -}; + + return function ( value ) { + return value.replace( /['"<>&]/g, escape ); + }; +}() ); /** * Generate HTML attributes. diff --git a/tests/ve.test.js b/tests/ve.test.js index ab9916a..914fb0f 100644 --- a/tests/ve.test.js +++ b/tests/ve.test.js @@ -247,6 +247,10 @@ assert.deepEqual( target, [ 'a', 'b', 'c', 'x', 'y' ], 'insert beyond end' ); } ); +QUnit.test( 'escapeHtml', 1, function ( assert ) { + assert.strictEqual( ve.escapeHtml( ' "script\' <foo & bar> ' ), ' "script' <foo & bar> ' ); +} ); + QUnit.test( 'createDocumentFromHtml', function ( assert ) { var key, doc, expectedHead, expectedBody, cases = [ -- To view, visit https://gerrit.wikimedia.org/r/189509 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Idbf41280cc4920c1924cd40cfe07d9d5e9653e08 Gerrit-PatchSet: 2 Gerrit-Project: VisualEditor/VisualEditor Gerrit-Branch: master Gerrit-Owner: Krinkle <krinklem...@gmail.com> Gerrit-Reviewer: Esanders <esand...@wikimedia.org> Gerrit-Reviewer: Jforrester <jforres...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits