Bugfix. Don't create chats for messages without body
This commit is contained in:
parent
1984bdd8e1
commit
dc07440de8
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
- Bugfix: MUC commands were being ignored
|
- Bugfix: MUC commands were being ignored
|
||||||
- Bugfix: Multiple rooms shown active in the rooms list
|
- Bugfix: Multiple rooms shown active in the rooms list
|
||||||
|
- Bugfix: Don't open chats when receiving messages without a `body`
|
||||||
- UI: Always show the OMEMO lock icon (grayed out if not available).
|
- UI: Always show the OMEMO lock icon (grayed out if not available).
|
||||||
- Use `publish-options` with `pubsub#access_model` set to `open` when publishing OMEMO public keys and devices
|
- Use `publish-options` with `pubsub#access_model` set to `open` when publishing OMEMO public keys and devices
|
||||||
- Add a new `converse-pubsub` plugin, for generic PubSub operations
|
- Add a new `converse-pubsub` plugin, for generic PubSub operations
|
||||||
|
|
2
dist/converse.js
vendored
2
dist/converse.js
vendored
|
@ -62401,7 +62401,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha
|
||||||
'fullname': _.get(_converse.api.contacts.get(contact_jid), 'attributes.fullname') // Get chat box, but only create a new one when the message has a body.
|
'fullname': _.get(_converse.api.contacts.get(contact_jid), 'attributes.fullname') // Get chat box, but only create a new one when the message has a body.
|
||||||
|
|
||||||
};
|
};
|
||||||
const has_body = sizzle(`body, encrypted[xmlns="${Strophe.NS.OMEMO}"]`).length > 0;
|
const has_body = sizzle(`body, encrypted[xmlns="${Strophe.NS.OMEMO}"]`, stanza).length > 0;
|
||||||
const chatbox = this.getChatBox(contact_jid, attrs, has_body);
|
const chatbox = this.getChatBox(contact_jid, attrs, has_body);
|
||||||
|
|
||||||
if (chatbox && !chatbox.handleMessageCorrection(stanza) && !chatbox.handleReceipt(stanza)) {
|
if (chatbox && !chatbox.handleMessageCorrection(stanza) && !chatbox.handleReceipt(stanza)) {
|
||||||
|
|
|
@ -140,6 +140,44 @@
|
||||||
done();
|
done();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it("opens when a new message is received", mock.initConverseWithPromises(
|
||||||
|
null, ['rosterGroupsFetched'], {'allow_non_roster_messaging': true},
|
||||||
|
async function (done, _converse) {
|
||||||
|
|
||||||
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
||||||
|
const stanza = Strophe.xmlHtmlNode(
|
||||||
|
"<message from='"+sender_jid+"'"+
|
||||||
|
" type='chat'"+
|
||||||
|
" to='dummy@localhost/resource'>"+
|
||||||
|
" <body>Hey\nHave you heard the news?</body>"+
|
||||||
|
"</message>").firstChild;
|
||||||
|
|
||||||
|
const message_promise = new Promise(resolve => _converse.api.listen.on('message', resolve));
|
||||||
|
_converse.connection._dataRecv(test_utils.createRequest(stanza));
|
||||||
|
await test_utils.waitUntil(() => message_promise);
|
||||||
|
expect(_converse.chatboxviews.keys().length).toBe(2);
|
||||||
|
done();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it("doesn't open when a message without body is received", mock.initConverseWithPromises(
|
||||||
|
null, ['rosterGroupsFetched'], {},
|
||||||
|
async function (done, _converse) {
|
||||||
|
|
||||||
|
test_utils.createContacts(_converse, 'current', 1);
|
||||||
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
||||||
|
const stanza = Strophe.xmlHtmlNode(`
|
||||||
|
<message from="${sender_jid}"
|
||||||
|
type="chat"
|
||||||
|
to="dummy@localhost/resource">
|
||||||
|
<composing xmlns="http://jabber.org/protocol/chatstates"/>
|
||||||
|
</message>`).firstChild;
|
||||||
|
const message_promise = new Promise(resolve => _converse.api.listen.on('message', resolve))
|
||||||
|
_converse.connection._dataRecv(test_utils.createRequest(stanza));
|
||||||
|
await test_utils.waitUntil(() => message_promise);
|
||||||
|
expect(_converse.chatboxviews.keys().length).toBe(1);
|
||||||
|
done();
|
||||||
|
}));
|
||||||
|
|
||||||
it("can be trimmed to conserve space",
|
it("can be trimmed to conserve space",
|
||||||
mock.initConverseWithPromises(null, ['rosterGroupsFetched'], {},
|
mock.initConverseWithPromises(null, ['rosterGroupsFetched'], {},
|
||||||
async function (done, _converse) {
|
async function (done, _converse) {
|
||||||
|
|
|
@ -809,7 +809,7 @@ converse.plugins.add('converse-chatboxes', {
|
||||||
'fullname': _.get(_converse.api.contacts.get(contact_jid), 'attributes.fullname')
|
'fullname': _.get(_converse.api.contacts.get(contact_jid), 'attributes.fullname')
|
||||||
}
|
}
|
||||||
// Get chat box, but only create a new one when the message has a body.
|
// Get chat box, but only create a new one when the message has a body.
|
||||||
const has_body = sizzle(`body, encrypted[xmlns="${Strophe.NS.OMEMO}"]`).length > 0;
|
const has_body = sizzle(`body, encrypted[xmlns="${Strophe.NS.OMEMO}"]`, stanza).length > 0;
|
||||||
const chatbox = this.getChatBox(contact_jid, attrs, has_body);
|
const chatbox = this.getChatBox(contact_jid, attrs, has_body);
|
||||||
if (chatbox && !chatbox.handleMessageCorrection(stanza) && !chatbox.handleReceipt(stanza)) {
|
if (chatbox && !chatbox.handleMessageCorrection(stanza) && !chatbox.handleReceipt(stanza)) {
|
||||||
const msgid = stanza.getAttribute('id'),
|
const msgid = stanza.getAttribute('id'),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user