From 060fd94547c02036432d28071db9f8995b21c5ae Mon Sep 17 00:00:00 2001 From: JC Brand Date: Thu, 13 Dec 2018 09:28:29 +0100 Subject: [PATCH] Allow features to be passed in to `openAndEnterChatRoom` --- tests/utils.js | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/tests/utils.js b/tests/utils.js index 3f5f31d89..995a70c2f 100644 --- a/tests/utils.js +++ b/tests/utils.js @@ -116,7 +116,7 @@ return _converse.api.rooms.open(`${room}@${server}`); }; - utils.openAndEnterChatRoom = async function (_converse, room, server, nick) { + utils.openAndEnterChatRoom = async function (_converse, room, server, nick, features=[]) { const room_jid = `${room}@${server}`.toLowerCase(); const stanzas = _converse.connection.IQ_stanzas; await _converse.api.rooms.open(room_jid); @@ -137,22 +137,25 @@ 'category': 'conference', 'name': room[0].toUpperCase() + room.slice(1), 'type': 'text' - }).up() - .c('feature', {'var': 'http://jabber.org/protocol/muc'}).up() - .c('feature', {'var': 'jabber:iq:register'}).up() - .c('feature', {'var': 'muc_passwordprotected'}).up() - .c('feature', {'var': 'muc_hidden'}).up() - .c('feature', {'var': 'muc_temporary'}).up() - .c('feature', {'var': 'muc_open'}).up() - .c('feature', {'var': 'muc_unmoderated'}).up() - .c('feature', {'var': 'muc_nonanonymous'}) - .c('x', { 'xmlns':'jabber:x:data', 'type':'result'}) - .c('field', {'var':'FORM_TYPE', 'type':'hidden'}) - .c('value').t('http://jabber.org/protocol/muc#roominfo').up().up() - .c('field', {'type':'text-single', 'var':'muc#roominfo_description', 'label':'Description'}) - .c('value').t('This is the description').up().up() - .c('field', {'type':'text-single', 'var':'muc#roominfo_occupants', 'label':'Number of occupants'}) - .c('value').t(0); + }).up(); + features = features || [ + 'http://jabber.org/protocol/muc', + 'jabber:iq:register', + 'muc_passwordprotected', + 'muc_hidden', + 'muc_temporary', + 'muc_open', + 'muc_unmoderated', + 'muc_nonanonymous'] + features.forEach(f => features_stanza.c('feature', {'var': f}).up()); + features_stanza.c('x', { 'xmlns':'jabber:x:data', 'type':'result'}) + .c('field', {'var':'FORM_TYPE', 'type':'hidden'}) + .c('value').t('http://jabber.org/protocol/muc#roominfo').up().up() + .c('field', {'type':'text-single', 'var':'muc#roominfo_description', 'label':'Description'}) + .c('value').t('This is the description').up().up() + .c('field', {'type':'text-single', 'var':'muc#roominfo_occupants', 'label':'Number of occupants'}) + .c('value').t(0); + _converse.connection._dataRecv(utils.createRequest(features_stanza)); const iq = await utils.waitUntil(() => _.filter( stanzas,