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 <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits