From 5c445a02688533ed673f153a40ebb52e4626c3be Mon Sep 17 00:00:00 2001 From: JC Brand Date: Fri, 24 Feb 2017 14:03:26 +0000 Subject: [PATCH] Don't show headlines from full JID if allow_non_roster_messaging is false --- spec/headline.js | 31 ++++++++++++++++++++++++------- src/converse-headline.js | 24 ++++-------------------- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/spec/headline.js b/spec/headline.js index fa3f54304..0968e64d7 100644 --- a/spec/headline.js +++ b/spec/headline.js @@ -24,8 +24,6 @@ * SORRY FOR THIS ADVERT @@ -62,8 +58,6 @@ * * */ - test_utils.openControlBox(); - test_utils.openContactsPanel(_converse); sinon.spy(utils, 'isHeadlineMessage'); runs(function () { var stanza = $msg({ @@ -90,5 +84,28 @@ utils.isHeadlineMessage.restore(); // unwraps }); })); + + it("will not show a headline messages from a full JID if allow_non_roster_messaging is false", mock.initConverse(function (_converse) { + _converse.allow_non_roster_messaging = false; + sinon.spy(utils, 'isHeadlineMessage'); + runs(function () { + var stanza = $msg({ + 'type': 'headline', + 'from': 'andre5114@jabber.snc.ru/Spark', + 'to': 'dummy@localhost', + 'xml:lang': 'en' + }) + .c('nick').t('gpocy').up() + .c('body').t('Здравствуйте друзья'); + _converse.connection._dataRecv(test_utils.createRequest(stanza)); + }); + waits(250); + runs(function () { + expect(_.without('controlbox', _converse.chatboxviews.keys()).length).toBe(0); + expect(utils.isHeadlineMessage.called).toBeTruthy(); + expect(utils.isHeadlineMessage.returned(true)).toBeTruthy(); + utils.isHeadlineMessage.restore(); // unwraps + }); + })); }); })); diff --git a/src/converse-headline.js b/src/converse-headline.js index f595af273..15fc1bd33 100644 --- a/src/converse-headline.js +++ b/src/converse-headline.js @@ -17,24 +17,6 @@ var _ = converse.env._, utils = converse.env.utils; - var onHeadlineMessage = function (message) { - /* Handler method for all incoming messages of type "headline". - */ - var from_jid = message.getAttribute('from'); - var _converse = this.__super__._converse; - if (utils.isHeadlineMessage(message)) { - _converse.chatboxes.create({ - 'id': from_jid, - 'jid': from_jid, - 'fullname': from_jid, - 'type': 'headline' - }).createMessage(message, undefined, message); - _converse.emit('message', message); - } - return true; - }; - - converse.plugins.add('converse-headline', { overrides: { @@ -107,10 +89,12 @@ }); var onHeadlineMessage = function (message) { - /* Handler method for all incoming messages of type "headline". - */ + /* Handler method for all incoming messages of type "headline". */ var from_jid = message.getAttribute('from'); if (utils.isHeadlineMessage(message)) { + if (_.includes(from_jid, '@') && !_converse.allow_non_roster_messaging) { + return; + } _converse.chatboxes.create({ 'id': from_jid, 'jid': from_jid,