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 '&#039;';
-               case '"':
-                       return '&quot;';
-               case '<':
-                       return '&lt;';
-               case '>':
-                       return '&gt;';
-               case '&':
-                       return '&amp;';
-               default:
-                       return value;
+ve.escapeHtml = ( function () {
+       function escape( value ) {
+               switch ( value ) {
+                       case '\'':
+                               return '&#039;';
+                       case '"':
+                               return '&quot;';
+                       case '<':
+                               return '&lt;';
+                       case '>':
+                               return '&gt;';
+                       case '&':
+                               return '&amp;';
+               }
        }
-};
+
+       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> ' ), ' 
&quot;script&#039; &lt;foo &amp; bar&gt; ' );
+} );
+
 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

Reply via email to