diff --git a/addons/mail/static/src/js/composers/mention_manager.js b/addons/mail/static/src/js/composers/mention_manager.js index 907263328cc..bca9d6f7ebc 100644 --- a/addons/mail/static/src/js/composers/mention_manager.js +++ b/addons/mail/static/src/js/composers/mention_manager.js @@ -52,10 +52,8 @@ var MentionManager = Widget.extend({ getListenerSelection: function (delimiter) { var listener = _.findWhere(this._listeners, { delimiter: delimiter }); if (listener) { - var inputMentions = this._composer - .$input - .val() - .match(new RegExp(delimiter+'[^ ]+(?= | )', 'g')); + var escapedVal = _.escape(this._composer.$input.val()); + var inputMentions = escapedVal.match(new RegExp(delimiter+'[^ ]+(?= | )', 'g')); return this._validateSelection(listener.selection, inputMentions); } return []; diff --git a/addons/mail/static/tests/discuss_tests.js b/addons/mail/static/tests/discuss_tests.js index c676a805823..3c0d2927c0a 100644 --- a/addons/mail/static/tests/discuss_tests.js +++ b/addons/mail/static/tests/discuss_tests.js @@ -424,7 +424,7 @@ QUnit.test('@ mention in channel', function (assert) { }); QUnit.test('@ mention with special chars', function (assert) { - assert.expect(10); + assert.expect(11); var done = assert.async(); var fetchListenersDef = $.Deferred(); var receiveMessageDef = $.Deferred(); @@ -452,6 +452,9 @@ QUnit.test('@ mention with special chars', function (assert) { ]); } if (args.method === 'message_post') { + assert.deepEqual(args.kwargs.partner_ids, [1], + "mentioned partners are sent to server" + ) var data = { author_id: ["42", "Me"], body: args.kwargs.body,