Use shakespearean character names in tests

This commit is contained in:
JC Brand 2019-06-03 07:58:51 +02:00
parent 5738b3748a
commit 737e27c726
31 changed files with 1096 additions and 1100 deletions

View File

@ -13,15 +13,15 @@
}); });
it("Show a chat room", function () { it("Show a chat room", function () {
test_utils.openChatRoom('lounge', 'localhost', 'dummy'); test_utils.openChatRoom('lounge', 'mongague.lit', 'romeo');
var view = converse.chatboxviews.get('lounge@localhost'); var view = converse.chatboxviews.get('lounge@mongague.lit');
if (!view.$el.find('.chat-area').length) { view.renderChatArea(); } if (!view.$el.find('.chat-area').length) { view.renderChatArea(); }
var text = 'This is a sent message'; var text = 'This is a sent message';
view.$el.find('.chat-textarea').text(text); view.$el.find('.chat-textarea').text(text);
view.$el.find('textarea.chat-textarea').trigger($.Event('keypress', {keyCode: 13})); view.$el.find('textarea.chat-textarea').trigger($.Event('keypress', {keyCode: 13}));
var message = $msg({ var message = $msg({
from: 'lounge@localhost/dummy', from: 'lounge@mongague.lit/romeo',
to: 'dummy@localhost.com', to: 'romeo@mongague.lit.com',
type: 'groupchat', type: 'groupchat',
id: view.model.messages.at(0).get('msgid') id: view.model.messages.at(0).get('msgid')
}).c('body').t(text); }).c('body').t(text);
@ -30,9 +30,9 @@
var nick = mock.chatroom_names[0]; var nick = mock.chatroom_names[0];
text = 'This is a received message'; text = 'This is a received message';
message = $msg({ message = $msg({
from: 'lounge@localhost/'+nick, from: 'lounge@mongague.lit/'+nick,
id: '1', id: '1',
to: 'dummy@localhost', to: 'romeo@mongague.lit',
type: 'groupchat' type: 'groupchat'
}).c('body').t(text); }).c('body').t(text);
view.onChatRoomMessage(message.nodeTree); view.onChatRoomMessage(message.nodeTree);
@ -49,7 +49,7 @@
$msg({ $msg({
'type': 'headline', 'type': 'headline',
'from': 'notify.example.com', 'from': 'notify.example.com',
'to': 'dummy@localhost', 'to': 'romeo@mongague.lit',
'xml:lang': 'en' 'xml:lang': 'en'
}) })
.c('subject').t('MAIL').up() .c('subject').t('MAIL').up()
@ -59,7 +59,7 @@
}); });
xit("Show a private chat box", function () { xit("Show a private chat box", function () {
var contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; var contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@mongague.lit';
var chatbox = test_utils.openChatBoxFor(contact_jid); var chatbox = test_utils.openChatBoxFor(contact_jid);
var view = converse.chatboxviews.get(contact_jid); var view = converse.chatboxviews.get(contact_jid);
var message = 'This message is sent from this chatbox'; var message = 'This message is sent from this chatbox';

View File

@ -20,19 +20,19 @@
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
async function (done, _converse) { async function (done, _converse) {
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'tom'); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'tom');
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
['dick', 'harry'].forEach((nick) => { ['dick', 'harry'].forEach((nick) => {
_converse.connection._dataRecv(test_utils.createRequest( _converse.connection._dataRecv(test_utils.createRequest(
$pres({ $pres({
'to': 'tom@localhost/resource', 'to': 'tom@montague.lit/resource',
'from': `lounge@localhost/${nick}` 'from': `lounge@montague.lit/${nick}`
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
'affiliation': 'none', 'affiliation': 'none',
'jid': `${nick}@localhost/resource`, 'jid': `${nick}@montague.lit/resource`,
'role': 'participant' 'role': 'participant'
}))); })));
}); });
@ -62,17 +62,17 @@
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
async function (done, _converse) { async function (done, _converse) {
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy'); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
expect(view.model.occupants.length).toBe(1); expect(view.model.occupants.length).toBe(1);
let presence = $pres({ let presence = $pres({
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'from': 'lounge@localhost/some1' 'from': 'lounge@montague.lit/some1'
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
'affiliation': 'none', 'affiliation': 'none',
'jid': 'some1@localhost/resource', 'jid': 'some1@montague.lit/resource',
'role': 'participant' 'role': 'participant'
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
@ -109,13 +109,13 @@
expect(view.el.querySelector('.suggestion-box__results').hidden).toBeTruthy(); expect(view.el.querySelector('.suggestion-box__results').hidden).toBeTruthy();
presence = $pres({ presence = $pres({
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'from': 'lounge@localhost/some2' 'from': 'lounge@montague.lit/some2'
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
'affiliation': 'none', 'affiliation': 'none',
'jid': 'some2@localhost/resource', 'jid': 'some2@montague.lit/resource',
'role': 'participant' 'role': 'participant'
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
@ -148,13 +148,13 @@
// Test that pressing tab twice selects // Test that pressing tab twice selects
presence = $pres({ presence = $pres({
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'from': 'lounge@localhost/z3r0' 'from': 'lounge@montague.lit/z3r0'
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
'affiliation': 'none', 'affiliation': 'none',
'jid': 'z3r0@localhost/resource', 'jid': 'z3r0@montague.lit/resource',
'role': 'participant' 'role': 'participant'
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
@ -173,17 +173,17 @@
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
async function (done, _converse) { async function (done, _converse) {
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy'); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
expect(view.model.occupants.length).toBe(1); expect(view.model.occupants.length).toBe(1);
const presence = $pres({ const presence = $pres({
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'from': 'lounge@localhost/some1' 'from': 'lounge@montague.lit/some1'
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
'affiliation': 'none', 'affiliation': 'none',
'jid': 'some1@localhost/resource', 'jid': 'some1@montague.lit/resource',
'role': 'participant' 'role': 'participant'
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));

View File

@ -96,7 +96,7 @@
await test_utils.waitUntil(() => sent_stanza); await test_utils.waitUntil(() => sent_stanza);
expect(sent_stanza.toLocaleString()).toBe( expect(sent_stanza.toLocaleString()).toBe(
`<iq from="dummy@localhost/resource" id="${IQ_id}" type="set" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${IQ_id}" type="set" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<publish node="storage:bookmarks">`+ `<publish node="storage:bookmarks">`+
`<item id="current">`+ `<item id="current">`+
@ -154,7 +154,7 @@
['http://jabber.org/protocol/pubsub#publish-options'] ['http://jabber.org/protocol/pubsub#publish-options']
); );
await test_utils.waitUntil(() => _converse.bookmarks); await test_utils.waitUntil(() => _converse.bookmarks);
let jid = 'lounge@localhost'; let jid = 'lounge@montague.lit';
_converse.bookmarks.create({ _converse.bookmarks.create({
'jid': jid, 'jid': jid,
'autojoin': false, 'autojoin': false,
@ -222,8 +222,8 @@
[{'category': 'pubsub', 'type': 'pep'}], [{'category': 'pubsub', 'type': 'pep'}],
['http://jabber.org/protocol/pubsub#publish-options'] ['http://jabber.org/protocol/pubsub#publish-options']
); );
await _converse.api.rooms.open(`lounge@localhost`); await _converse.api.rooms.open(`lounge@montague.lit`);
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
let bookmark_icon = await test_utils.waitUntil(() => view.el.querySelector('.toggle-bookmark')); let bookmark_icon = await test_utils.waitUntil(() => view.el.querySelector('.toggle-bookmark'));
expect(_.includes(bookmark_icon.classList, 'button-on')).toBeFalsy(); expect(_.includes(bookmark_icon.classList, 'button-on')).toBeFalsy();
_converse.bookmarks.create({ _converse.bookmarks.create({
@ -289,7 +289,7 @@
// conferences to bookmark (since we removed the one and // conferences to bookmark (since we removed the one and
// only bookmark). // only bookmark).
expect(sent_stanza.toLocaleString()).toBe( expect(sent_stanza.toLocaleString()).toBe(
`<iq from="dummy@localhost/resource" id="${IQ_id}" type="set" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${IQ_id}" type="set" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<publish node="storage:bookmarks">`+ `<publish node="storage:bookmarks">`+
`<item id="current">`+ `<item id="current">`+
@ -389,8 +389,8 @@
* </message> * </message>
*/ */
var stanza = $msg({ var stanza = $msg({
'from': 'dummy@localhost', 'from': 'romeo@montague.lit',
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'type': 'headline', 'type': 'headline',
'id': 'rnfoo1' 'id': 'rnfoo1'
}).c('event', {'xmlns': 'http://jabber.org/protocol/pubsub#event'}) }).c('event', {'xmlns': 'http://jabber.org/protocol/pubsub#event'})
@ -445,7 +445,7 @@
); );
expect(Strophe.serialize(call.args[0])).toBe( expect(Strophe.serialize(call.args[0])).toBe(
`<iq from="dummy@localhost/resource" id="${IQ_id}" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${IQ_id}" type="get" xmlns="jabber:client">`+
'<pubsub xmlns="http://jabber.org/protocol/pubsub">'+ '<pubsub xmlns="http://jabber.org/protocol/pubsub">'+
'<items node="storage:bookmarks"/>'+ '<items node="storage:bookmarks"/>'+
'</pubsub>'+ '</pubsub>'+
@ -528,7 +528,7 @@
).pop() ).pop()
); );
expect(Strophe.serialize(call.args[0])).toBe( expect(Strophe.serialize(call.args[0])).toBe(
`<iq from="dummy@localhost/resource" id="${IQ_id}" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${IQ_id}" type="get" xmlns="jabber:client">`+
'<pubsub xmlns="http://jabber.org/protocol/pubsub">'+ '<pubsub xmlns="http://jabber.org/protocol/pubsub">'+
'<items node="storage:bookmarks"/>'+ '<items node="storage:bookmarks"/>'+
'</pubsub>'+ '</pubsub>'+
@ -616,7 +616,7 @@
).pop() ).pop()
); );
expect(Strophe.serialize(call.args[0])).toBe( expect(Strophe.serialize(call.args[0])).toBe(
`<iq from="dummy@localhost/resource" id="${IQ_id}" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${IQ_id}" type="get" xmlns="jabber:client">`+
'<pubsub xmlns="http://jabber.org/protocol/pubsub">'+ '<pubsub xmlns="http://jabber.org/protocol/pubsub">'+
'<items node="storage:bookmarks"/>'+ '<items node="storage:bookmarks"/>'+
'</pubsub>'+ '</pubsub>'+

View File

@ -25,7 +25,7 @@
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);
test_utils.sendMessage(view, '/help'); test_utils.sendMessage(view, '/help');
@ -55,11 +55,11 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
await test_utils.waitUntilDiscoConfirmed(_converse, 'localhost', [], ['vcard-temp']); await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
await test_utils.waitUntil(() => _converse.xmppstatus.vcard.get('fullname')); await test_utils.waitUntil(() => _converse.xmppstatus.vcard.get('fullname'));
await test_utils.openControlBox(); await test_utils.openControlBox();
expect(_converse.chatboxes.length).toEqual(1); expect(_converse.chatboxes.length).toEqual(1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
let message = '/me is tired'; let message = '/me is tired';
const msg = $msg({ const msg = $msg({
from: sender_jid, from: sender_jid,
@ -73,12 +73,12 @@
const view = _converse.chatboxviews.get(sender_jid); const view = _converse.chatboxviews.get(sender_jid);
await new Promise((resolve, reject) => view.once('messageInserted', resolve)); await new Promise((resolve, reject) => view.once('messageInserted', resolve));
expect(view.el.querySelectorAll('.chat-msg--action').length).toBe(1); expect(view.el.querySelectorAll('.chat-msg--action').length).toBe(1);
expect(_.includes(view.el.querySelector('.chat-msg__author').textContent, '**Max Frankfurter')).toBeTruthy(); expect(_.includes(view.el.querySelector('.chat-msg__author').textContent, '**Mercutio')).toBeTruthy();
expect(view.el.querySelector('.chat-msg__text').textContent).toBe('is tired'); expect(view.el.querySelector('.chat-msg__text').textContent).toBe('is tired');
message = '/me is as well'; message = '/me is as well';
await test_utils.sendMessage(view, message); await test_utils.sendMessage(view, message);
expect(view.el.querySelectorAll('.chat-msg--action').length).toBe(2); expect(view.el.querySelectorAll('.chat-msg--action').length).toBe(2);
await test_utils.waitUntil(() => sizzle('.chat-msg__author:last', view.el).pop().textContent.trim() === '**Max Mustermann'); await test_utils.waitUntil(() => sizzle('.chat-msg__author:last', view.el).pop().textContent.trim() === '**Romeo Montague');
const last_el = sizzle('.chat-msg__text:last', view.el).pop(); const last_el = sizzle('.chat-msg__text:last', view.el).pop();
expect(last_el.textContent).toBe('is as well'); expect(last_el.textContent).toBe('is as well');
expect(u.hasClass('chat-msg--followup', last_el)).toBe(false); expect(u.hasClass('chat-msg--followup', last_el)).toBe(false);
@ -115,7 +115,7 @@
const online_contacts = _converse.rosterview.el.querySelectorAll('.roster-group .current-xmpp-contact a.open-chat'); const online_contacts = _converse.rosterview.el.querySelectorAll('.roster-group .current-xmpp-contact a.open-chat');
expect(online_contacts.length).toBe(15); expect(online_contacts.length).toBe(15);
let el = online_contacts[0]; let el = online_contacts[0];
const jid = el.textContent.trim().replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = el.textContent.trim().replace(/ /g,'.').toLowerCase() + '@montague.lit';
el.click(); el.click();
await test_utils.waitUntil(() => _converse.chatboxes.length == 2); await test_utils.waitUntil(() => _converse.chatboxes.length == 2);
const chatboxview = _converse.chatboxviews.get(jid); const chatboxview = _converse.chatboxviews.get(jid);
@ -126,7 +126,7 @@
online_contacts[1].click(); online_contacts[1].click();
await test_utils.waitUntil(() => _converse.chatboxes.length == 3); await test_utils.waitUntil(() => _converse.chatboxes.length == 3);
el = online_contacts[1]; el = online_contacts[1];
const new_jid = el.textContent.trim().replace(/ /g,'.').toLowerCase() + '@localhost'; const new_jid = el.textContent.trim().replace(/ /g,'.').toLowerCase() + '@montague.lit';
const new_chatboxview = _converse.chatboxviews.get(new_jid); const new_chatboxview = _converse.chatboxviews.get(new_jid);
expect(_converse.chatboxviews.trimChats).toHaveBeenCalled(); expect(_converse.chatboxviews.trimChats).toHaveBeenCalled();
// Check that new chat boxes are created to the left of the // Check that new chat boxes are created to the left of the
@ -140,11 +140,11 @@
async function (done, _converse) { async function (done, _converse) {
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const stanza = u.toStanza(` const stanza = u.toStanza(`
<message from="${sender_jid}" <message from="${sender_jid}"
type="chat" type="chat"
to="dummy@localhost/resource"> to="romeo@montague.lit/orchard">
<body>Hey\nHave you heard the news?</body> <body>Hey\nHave you heard the news?</body>
</message>`); </message>`);
@ -161,11 +161,11 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const stanza = u.toStanza(` const stanza = u.toStanza(`
<message from="${sender_jid}" <message from="${sender_jid}"
type="chat" type="chat"
to="dummy@localhost/resource"> to="romeo@montague.lit/orchard">
<composing xmlns="http://jabber.org/protocol/chatstates"/> <composing xmlns="http://jabber.org/protocol/chatstates"/>
</message>`); </message>`);
const message_promise = new Promise(resolve => _converse.api.listen.on('message', resolve)) const message_promise = new Promise(resolve => _converse.api.listen.on('message', resolve))
@ -209,7 +209,7 @@
for (i=0; i<online_contacts.length; i++) { for (i=0; i<online_contacts.length; i++) {
const el = online_contacts[i]; const el = online_contacts[i];
jid = _.trim(el.textContent.trim()).replace(/ /g,'.').toLowerCase() + '@localhost'; jid = _.trim(el.textContent.trim()).replace(/ /g,'.').toLowerCase() + '@montague.lit';
chatboxview = _converse.chatboxviews.get(jid); chatboxview = _converse.chatboxviews.get(jid);
spyOn(chatboxview, 'minimize').and.callThrough(); spyOn(chatboxview, 'minimize').and.callThrough();
chatboxview.model.set({'minimized': true}); chatboxview.model.set({'minimized': true});
@ -237,7 +237,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const chat = await _converse.api.chats.create(sender_jid, {'minimized': true}); const chat = await _converse.api.chats.create(sender_jid, {'minimized': true});
await test_utils.waitUntil(() => _converse.chatboxes.length > 1); await test_utils.waitUntil(() => _converse.chatboxes.length > 1);
const chatBoxView = _converse.chatboxviews.get(sender_jid); const chatBoxView = _converse.chatboxviews.get(sender_jid);
@ -257,14 +257,14 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@montague.lit';
// openControlBox was called earlier, so the controlbox is // openControlBox was called earlier, so the controlbox is
// visible, but no other chat boxes have been created. // visible, but no other chat boxes have been created.
expect(_converse.chatboxes.length).toEqual(1); expect(_converse.chatboxes.length).toEqual(1);
const view = await test_utils.openChatBoxFor(_converse, contact_jid); const view = await test_utils.openChatBoxFor(_converse, contact_jid);
const el = sizzle('a.open-chat:contains("'+view.model.getDisplayName()+'")', _converse.rosterview.el).pop(); const el = sizzle('a.open-chat:contains("'+view.model.getDisplayName()+'")', _converse.rosterview.el).pop();
const jid = el.textContent.replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = el.textContent.replace(/ /g,'.').toLowerCase() + '@montague.lit';
spyOn(_converse.api, "trigger"); spyOn(_converse.api, "trigger");
el.click(); el.click();
await test_utils.waitUntil(() => _converse.api.trigger.calls.count(), 500); await test_utils.waitUntil(() => _converse.api.trigger.calls.count(), 500);
@ -317,7 +317,7 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[7].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[7].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length);
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const controlview = _converse.chatboxviews.get('controlbox'), // The controlbox is currently open const controlview = _converse.chatboxviews.get('controlbox'), // The controlbox is currently open
@ -352,7 +352,7 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[7].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[7].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length);
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const trimmed_chatboxes = _converse.minimized_chats; const trimmed_chatboxes = _converse.minimized_chats;
@ -433,7 +433,7 @@
await test_utils.waitForRoster(_converse, 'current', 3); await test_utils.waitForRoster(_converse, 'current', 3);
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const chatbox = _converse.chatboxes.get(contact_jid); const chatbox = _converse.chatboxes.get(contact_jid);
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);
@ -453,7 +453,7 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);
const toolbar = view.el.querySelector('ul.chat-toolbar'); const toolbar = view.el.querySelector('ul.chat-toolbar');
@ -484,7 +484,7 @@
test_utils.openControlBox(); test_utils.openControlBox();
let toolbar, call_button; let toolbar, call_button;
const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@montague.lit';
spyOn(_converse.api, "trigger"); spyOn(_converse.api, "trigger");
// First check that the button doesn't show if it's not enabled // First check that the button doesn't show if it's not enabled
// via "visible_toolbar_buttons" // via "visible_toolbar_buttons"
@ -518,12 +518,12 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
test_utils.openControlBox(); test_utils.openControlBox();
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
let stanza = u.toStanza( let stanza = u.toStanza(
`<message from="${sender_jid}" `<message from="${sender_jid}"
type="chat" type="chat"
to="dummy@localhost/resource"> to="romeo@montague.lit/orchard">
<composing xmlns="http://jabber.org/protocol/chatstates"/> <composing xmlns="http://jabber.org/protocol/chatstates"/>
<no-store xmlns="urn:xmpp:hints"/> <no-store xmlns="urn:xmpp:hints"/>
<no-permanent-store xmlns="urn:xmpp:hints"/> <no-permanent-store xmlns="urn:xmpp:hints"/>
@ -533,7 +533,7 @@
stanza = u.toStanza( stanza = u.toStanza(
`<message from="${sender_jid}" `<message from="${sender_jid}"
type="chat" type="chat"
to="dummy@localhost/resource"> to="romeo@montague.lit/orchard">
<paused xmlns="http://jabber.org/protocol/chatstates"/> <paused xmlns="http://jabber.org/protocol/chatstates"/>
<no-store xmlns="urn:xmpp:hints"/> <no-store xmlns="urn:xmpp:hints"/>
<no-permanent-store xmlns="urn:xmpp:hints"/> <no-permanent-store xmlns="urn:xmpp:hints"/>
@ -551,7 +551,7 @@
test_utils.openControlBox(); test_utils.openControlBox();
spyOn(_converse.api, "trigger"); spyOn(_converse.api, "trigger");
const sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@montague.lit';
// <composing> state // <composing> state
const msg = $msg({ const msg = $msg({
'from': sender_jid, 'from': sender_jid,
@ -573,7 +573,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
test_utils.openControlBox(); test_utils.openControlBox();
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length); test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length);
spyOn(_converse.connection, 'send'); spyOn(_converse.connection, 'send');
@ -596,7 +596,7 @@
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length);
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
@ -630,7 +630,7 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length);
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
@ -672,7 +672,7 @@
// See XEP-0085 https://xmpp.org/extensions/xep-0085.html#definitions // See XEP-0085 https://xmpp.org/extensions/xep-0085.html#definitions
spyOn(_converse.api, "trigger"); spyOn(_converse.api, "trigger");
const sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length);
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
@ -713,12 +713,12 @@
async function (done, _converse) { async function (done, _converse) {
let contact, sent_stanza, IQ_id, stanza; let contact, sent_stanza, IQ_id, stanza;
await test_utils.waitUntilDiscoConfirmed(_converse, 'localhost', [], ['vcard-temp']); await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
await test_utils.waitUntil(() => _converse.xmppstatus.vcard.get('fullname')); await test_utils.waitUntil(() => _converse.xmppstatus.vcard.get('fullname'));
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
// Send a message from a different resource // Send a message from a different resource
spyOn(_converse, 'log'); spyOn(_converse, 'log');
const recipient_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@localhost'; const recipient_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const view = await test_utils.openChatBoxFor(_converse, recipient_jid); const view = await test_utils.openChatBoxFor(_converse, recipient_jid);
const msg = $msg({ const msg = $msg({
'from': _converse.bare_jid, 'from': _converse.bare_jid,
@ -759,7 +759,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
test_utils.openControlBox(); test_utils.openControlBox();
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group li').length, 700); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group li').length, 700);
_converse.TIMEOUTS.PAUSED = 200; // Make the timeout shorter so that we can test _converse.TIMEOUTS.PAUSED = 200; // Make the timeout shorter so that we can test
@ -818,7 +818,7 @@
// TODO: only show paused state if the previous state was composing // TODO: only show paused state if the previous state was composing
// See XEP-0085 https://xmpp.org/extensions/xep-0085.html#definitions // See XEP-0085 https://xmpp.org/extensions/xep-0085.html#definitions
spyOn(_converse.api, "trigger").and.callThrough(); spyOn(_converse.api, "trigger").and.callThrough();
const sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const view = await test_utils.openChatBoxFor(_converse, sender_jid); const view = await test_utils.openChatBoxFor(_converse, sender_jid);
// <paused> state // <paused> state
const msg = $msg({ const msg = $msg({
@ -841,12 +841,12 @@
async function (done, _converse) { async function (done, _converse) {
let contact, sent_stanza, IQ_id, stanza; let contact, sent_stanza, IQ_id, stanza;
await test_utils.waitUntilDiscoConfirmed(_converse, 'localhost', [], ['vcard-temp']); await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
await test_utils.waitUntil(() => _converse.xmppstatus.vcard.get('fullname')); await test_utils.waitUntil(() => _converse.xmppstatus.vcard.get('fullname'));
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
// Send a message from a different resource // Send a message from a different resource
spyOn(_converse, 'log'); spyOn(_converse, 'log');
const recipient_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@localhost'; const recipient_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const view = await test_utils.openChatBoxFor(_converse, recipient_jid); const view = await test_utils.openChatBoxFor(_converse, recipient_jid);
const msg = $msg({ const msg = $msg({
'from': _converse.bare_jid, 'from': _converse.bare_jid,
@ -891,7 +891,7 @@
_converse.TIMEOUTS.INACTIVE = 200; _converse.TIMEOUTS.INACTIVE = 200;
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
test_utils.openControlBox(); test_utils.openControlBox();
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 1000); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 1000);
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
@ -939,7 +939,7 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);
spyOn(_converse.connection, 'send'); spyOn(_converse.connection, 'send');
@ -958,7 +958,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
test_utils.openControlBox(); test_utils.openControlBox();
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length);
const view = await test_utils.openChatBoxFor(_converse, contact_jid); const view = await test_utils.openChatBoxFor(_converse, contact_jid);
@ -984,7 +984,7 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
test_utils.openControlBox(); test_utils.openControlBox();
const sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@montague.lit';
// See XEP-0085 https://xmpp.org/extensions/xep-0085.html#definitions // See XEP-0085 https://xmpp.org/extensions/xep-0085.html#definitions
spyOn(_converse.api, "trigger"); spyOn(_converse.api, "trigger");
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
@ -1028,7 +1028,7 @@
test_utils.openControlBox(); test_utils.openControlBox();
spyOn(_converse.api, "trigger"); spyOn(_converse.api, "trigger");
const sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@montague.lit';
// <paused> state // <paused> state
const msg = $msg({ const msg = $msg({
from: sender_jid, from: sender_jid,
@ -1057,7 +1057,7 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
spyOn(_converse.api, "trigger"); spyOn(_converse.api, "trigger");
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
@ -1103,7 +1103,7 @@
expect(_converse.msg_counter).toBe(0); expect(_converse.msg_counter).toBe(0);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const view = await test_utils.openChatBoxFor(_converse, sender_jid) const view = await test_utils.openChatBoxFor(_converse, sender_jid)
const previous_state = _converse.windowState; const previous_state = _converse.windowState;
@ -1158,7 +1158,7 @@
spyOn(_converse, 'incrementMsgCounter').and.callThrough(); spyOn(_converse, 'incrementMsgCounter').and.callThrough();
_converse.saveWindowState(null, 'focus'); _converse.saveWindowState(null, 'focus');
const message = 'This message will not increment the message counter'; const message = 'This message will not increment the message counter';
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost', const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit',
msg = $msg({ msg = $msg({
from: sender_jid, from: sender_jid,
to: _converse.connection.jid, to: _converse.connection.jid,
@ -1181,7 +1181,7 @@
// initial state // initial state
expect(_converse.msg_counter).toBe(0); expect(_converse.msg_counter).toBe(0);
const message = 'This message will always increment the message counter from zero', const message = 'This message will always increment the message counter from zero',
sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost', sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit',
msgFactory = function () { msgFactory = function () {
return $msg({ return $msg({
from: sender_jid, from: sender_jid,
@ -1228,7 +1228,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost', const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit',
msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread'); msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
const view = await test_utils.openChatBoxFor(_converse, sender_jid) const view = await test_utils.openChatBoxFor(_converse, sender_jid)
@ -1246,7 +1246,7 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost', const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit',
msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be read'); msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be read');
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
@ -1262,7 +1262,7 @@
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const msgFactory = function () { const msgFactory = function () {
return test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread'); return test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
}; };
@ -1281,7 +1281,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const msgFactory = () => test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread'); const msgFactory = () => test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
const chatbox = _converse.chatboxes.get(sender_jid); const chatbox = _converse.chatboxes.get(sender_jid);
@ -1299,7 +1299,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const msgFactory = () => test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread'); const msgFactory = () => test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
const chatbox = _converse.chatboxes.get(sender_jid); const chatbox = _converse.chatboxes.get(sender_jid);
@ -1318,7 +1318,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const msgFactory = () => test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread'); const msgFactory = () => test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
const chatbox = _converse.chatboxes.get(sender_jid); const chatbox = _converse.chatboxes.get(sender_jid);
@ -1342,7 +1342,7 @@
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
let msg, indicator_el; let msg, indicator_el;
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500);
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
const chatbox = _converse.chatboxes.get(sender_jid); const chatbox = _converse.chatboxes.get(sender_jid);
@ -1367,7 +1367,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
let indicator_el, msg; let indicator_el, msg;
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500);
@ -1397,7 +1397,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const msgFactory = () => test_utils.createChatMessage(_converse, sender_jid, 'This message will be received as unread, but eventually will be read'); const msgFactory = () => test_utils.createChatMessage(_converse, sender_jid, 'This message will be received as unread, but eventually will be read');
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500);
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
@ -1423,7 +1423,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500);
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
const chatbox = _converse.chatboxes.get(sender_jid); const chatbox = _converse.chatboxes.get(sender_jid);
@ -1447,7 +1447,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500);
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
const chatbox = _converse.chatboxes.get(sender_jid); const chatbox = _converse.chatboxes.get(sender_jid);
@ -1474,7 +1474,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
const msgFactory = function () { const msgFactory = function () {
return test_utils.createChatMessage(_converse, sender_jid, 'This message will be received as unread, but eventually will be read'); return test_utils.createChatMessage(_converse, sender_jid, 'This message will be received as unread, but eventually will be read');
@ -1502,7 +1502,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const view = await test_utils.openChatBoxFor(_converse, sender_jid) const view = await test_utils.openChatBoxFor(_converse, sender_jid)
const msgFactory = function () { const msgFactory = function () {
return test_utils.createChatMessage(_converse, sender_jid, return test_utils.createChatMessage(_converse, sender_jid,
@ -1530,7 +1530,7 @@
const base_url = document.URL.split(window.location.pathname)[0], const base_url = document.URL.split(window.location.pathname)[0],
message = "geo:37.786971,-122.399677", message = "geo:37.786971,-122.399677",
contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);

View File

@ -48,13 +48,13 @@
test_utils.openControlBox(); test_utils.openControlBox();
// Adding two contacts one with Capital initials and one with small initials of same JID (Case sensitive check) // Adding two contacts one with Capital initials and one with small initials of same JID (Case sensitive check)
_converse.roster.create({ _converse.roster.create({
jid: mock.pend_names[0].replace(/ /g,'.').toLowerCase() + '@localhost', jid: mock.pend_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'none', subscription: 'none',
ask: 'subscribe', ask: 'subscribe',
fullname: mock.pend_names[0] fullname: mock.pend_names[0]
}); });
_converse.roster.create({ _converse.roster.create({
jid: mock.pend_names[0].replace(/ /g,'.') + '@localhost', jid: mock.pend_names[0].replace(/ /g,'.') + '@montague.lit',
subscription: 'none', subscription: 'none',
ask: 'subscribe', ask: 'subscribe',
fullname: mock.pend_names[0] fullname: mock.pend_names[0]
@ -74,7 +74,7 @@
test_utils.createContacts(_converse, 'all').openControlBox(); test_utils.createContacts(_converse, 'all').openControlBox();
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, sender_jid); await test_utils.openChatBoxFor(_converse, sender_jid);
await test_utils.waitUntil(() => _converse.chatboxes.length); await test_utils.waitUntil(() => _converse.chatboxes.length);
const chatview = _converse.chatboxviews.get(sender_jid); const chatview = _converse.chatboxviews.get(sender_jid);
@ -208,13 +208,13 @@
input_jid.value = 'someone@'; input_jid.value = 'someone@';
const evt = new Event('input'); const evt = new Event('input');
input_jid.dispatchEvent(evt); input_jid.dispatchEvent(evt);
expect(modal.el.querySelector('.suggestion-box li').textContent).toBe('someone@localhost'); expect(modal.el.querySelector('.suggestion-box li').textContent).toBe('someone@montague.lit');
input_jid.value = 'someone@localhost'; input_jid.value = 'someone@montague.lit';
input_name.value = 'Someone'; input_name.value = 'Someone';
modal.el.querySelector('button[type="submit"]').click(); modal.el.querySelector('button[type="submit"]').click();
expect(sent_stanza.toLocaleString()).toEqual( expect(sent_stanza.toLocaleString()).toEqual(
`<iq id="${IQ_id}" type="set" xmlns="jabber:client">`+ `<iq id="${IQ_id}" type="set" xmlns="jabber:client">`+
`<query xmlns="jabber:iq:roster"><item jid="someone@localhost" name="Someone"/></query>`+ `<query xmlns="jabber:iq:roster"><item jid="someone@montague.lit" name="Someone"/></query>`+
`</iq>`); `</iq>`);
done(); done();
})); }));
@ -236,7 +236,7 @@
expect(!_.isNull(modal.el.querySelector('form.add-xmpp-contact'))).toBeTruthy(); expect(!_.isNull(modal.el.querySelector('form.add-xmpp-contact'))).toBeTruthy();
const input_jid = modal.el.querySelector('input[name="jid"]'); const input_jid = modal.el.querySelector('input[name="jid"]');
const input_name = modal.el.querySelector('input[name="name"]'); const input_name = modal.el.querySelector('input[name="name"]');
input_jid.value = 'someone@localhost'; input_jid.value = 'someone@montague.lit';
modal.el.querySelector('button[type="submit"]').click(); modal.el.querySelector('button[type="submit"]').click();
const IQ_stanzas = _converse.connection.IQ_stanzas; const IQ_stanzas = _converse.connection.IQ_stanzas;
@ -245,7 +245,7 @@
); );
expect(Strophe.serialize(sent_stanza)).toEqual( expect(Strophe.serialize(sent_stanza)).toEqual(
`<iq id="${sent_stanza.getAttribute('id')}" type="set" xmlns="jabber:client">`+ `<iq id="${sent_stanza.getAttribute('id')}" type="set" xmlns="jabber:client">`+
`<query xmlns="jabber:iq:roster"><item jid="someone@localhost"/></query>`+ `<query xmlns="jabber:iq:roster"><item jid="someone@montague.lit"/></query>`+
`</iq>` `</iq>`
); );
done(); done();
@ -324,10 +324,10 @@
'send': function () { 'send': function () {
const value = modal.el.querySelector('input[name="name"]').value; const value = modal.el.querySelector('input[name="name"]').value;
if (value === 'existing') { if (value === 'existing') {
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
xhr.responseText = JSON.stringify([{"jid": contact_jid, "fullname": mock.cur_names[0]}]); xhr.responseText = JSON.stringify([{"jid": contact_jid, "fullname": mock.cur_names[0]}]);
} else if (value === 'dummy') { } else if (value === 'romeo') {
xhr.responseText = JSON.stringify([{"jid": "dummy@localhost", "fullname": "Max Mustermann"}]); xhr.responseText = JSON.stringify([{"jid": "romeo@montague.lit", "fullname": "Romeo Montague"}]);
} else if (value === 'ambiguous') { } else if (value === 'ambiguous') {
xhr.responseText = JSON.stringify([ xhr.responseText = JSON.stringify([
{"jid": "marty@mcfly.net", "fullname": "Marty McFly"}, {"jid": "marty@mcfly.net", "fullname": "Marty McFly"},
@ -374,7 +374,7 @@
expect(feedback_el.textContent).toBe('Sorry, could not find a contact with that name'); expect(feedback_el.textContent).toBe('Sorry, could not find a contact with that name');
feedback_el.textContent = ''; feedback_el.textContent = '';
input_el.value = 'dummy'; input_el.value = 'romeo';
modal.el.querySelector('button[type="submit"]').click(); modal.el.querySelector('button[type="submit"]').click();
feedback_el = modal.el.querySelector('.invalid-feedback'); feedback_el = modal.el.querySelector('.invalid-feedback');
expect(feedback_el.textContent).toBe('You cannot add yourself as a contact'); expect(feedback_el.textContent).toBe('You cannot add yourself as a contact');

View File

@ -254,16 +254,16 @@
let contact = await _converse.api.contacts.get('non-existing@jabber.org'); let contact = await _converse.api.contacts.get('non-existing@jabber.org');
expect(contact).toBeFalsy(); expect(contact).toBeFalsy();
// Check when a single jid is given // Check when a single jid is given
const jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
contact = await _converse.api.contacts.get(jid); contact = await _converse.api.contacts.get(jid);
expect(contact.get('fullname')).toBe(mock.cur_names[0]); expect(contact.getDisplayName()).toBe(mock.cur_names[0]);
expect(contact.get('jid')).toBe(jid); expect(contact.get('jid')).toBe(jid);
// You can retrieve multiple contacts by passing in an array // You can retrieve multiple contacts by passing in an array
const jid2 = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost'; const jid2 = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@montague.lit';
let list = await _converse.api.contacts.get([jid, jid2]); let list = await _converse.api.contacts.get([jid, jid2]);
expect(Array.isArray(list)).toBeTruthy(); expect(Array.isArray(list)).toBeTruthy();
expect(list[0].get('fullname')).toBe(mock.cur_names[0]); expect(list[0].getDisplayName()).toBe(mock.cur_names[0]);
expect(list[1].get('fullname')).toBe(mock.cur_names[1]); expect(list[1].getDisplayName()).toBe(mock.cur_names[1]);
// Check that all JIDs are returned if you call without any parameters // Check that all JIDs are returned if you call without any parameters
list = await _converse.api.contacts.get(); list = await _converse.api.contacts.get();
expect(list.length).toBe(mock.cur_names.length); expect(list.length).toBe(mock.cur_names.length);
@ -294,8 +294,8 @@
// Test on chat that doesn't exist. // Test on chat that doesn't exist.
expect(_converse.api.chats.get('non-existing@jabber.org')).toBeFalsy(); expect(_converse.api.chats.get('non-existing@jabber.org')).toBeFalsy();
const jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const jid2 = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost'; const jid2 = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@montague.lit';
// Test on chat that's not open // Test on chat that's not open
let box = _converse.api.chats.get(jid); let box = _converse.api.chats.get(jid);
@ -327,8 +327,8 @@
test_utils.createContacts(_converse, 'current', 2); test_utils.createContacts(_converse, 'current', 2);
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const jid2 = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost'; const jid2 = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@montague.lit';
// Test on chat that doesn't exist. // Test on chat that doesn't exist.
expect(_converse.api.chats.get('non-existing@jabber.org')).toBeFalsy(); expect(_converse.api.chats.get('non-existing@jabber.org')).toBeFalsy();

View File

@ -22,7 +22,7 @@
const IQ_ids = _converse.connection.IQ_ids; const IQ_ids = _converse.connection.IQ_ids;
test_utils.waitUntil(function () { test_utils.waitUntil(function () {
return _.filter(IQ_stanzas, function (iq) { return _.filter(IQ_stanzas, function (iq) {
return iq.querySelector('iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#info"]'); return iq.querySelector('iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#info"]');
}).length > 0; }).length > 0;
}, 300).then(function () { }, 300).then(function () {
/* <iq type='result' /* <iq type='result'
@ -52,13 +52,13 @@
* </iq> * </iq>
*/ */
var stanza = _.find(IQ_stanzas, function (iq) { var stanza = _.find(IQ_stanzas, function (iq) {
return iq.querySelector('iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#info"]'); return iq.querySelector('iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#info"]');
}); });
var info_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)]; var info_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)];
stanza = $iq({ stanza = $iq({
'type': 'result', 'type': 'result',
'from': 'localhost', 'from': 'montague.lit',
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'id': info_IQ_id 'id': info_IQ_id
}).c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'}) }).c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'})
.c('identity', { .c('identity', {
@ -88,12 +88,12 @@
expect(entities.length).toBe(2); // We have an extra entity, which is the user's JID expect(entities.length).toBe(2); // We have an extra entity, which is the user's JID
expect(entities.get(_converse.domain).features.length).toBe(5); expect(entities.get(_converse.domain).features.length).toBe(5);
expect(entities.get(_converse.domain).identities.length).toBe(3); expect(entities.get(_converse.domain).identities.length).toBe(3);
expect(entities.get('localhost').features.where({'var': 'jabber:iq:version'}).length).toBe(1); expect(entities.get('montague.lit').features.where({'var': 'jabber:iq:version'}).length).toBe(1);
expect(entities.get('localhost').features.where({'var': 'jabber:iq:time'}).length).toBe(1); expect(entities.get('montague.lit').features.where({'var': 'jabber:iq:time'}).length).toBe(1);
expect(entities.get('localhost').features.where({'var': 'jabber:iq:register'}).length).toBe(1); expect(entities.get('montague.lit').features.where({'var': 'jabber:iq:register'}).length).toBe(1);
expect(entities.get('localhost').features.where( expect(entities.get('montague.lit').features.where(
{'var': 'http://jabber.org/protocol/disco#items'}).length).toBe(1); {'var': 'http://jabber.org/protocol/disco#items'}).length).toBe(1);
expect(entities.get('localhost').features.where( expect(entities.get('montague.lit').features.where(
{'var': 'http://jabber.org/protocol/disco#info'}).length).toBe(1); {'var': 'http://jabber.org/protocol/disco#info'}).length).toBe(1);
@ -131,13 +131,13 @@
* </iq> * </iq>
*/ */
var stanza = _.find(IQ_stanzas, function (iq) { var stanza = _.find(IQ_stanzas, function (iq) {
return iq.querySelector('iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#items"]'); return iq.querySelector('iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#items"]');
}); });
var items_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)]; var items_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)];
stanza = $iq({ stanza = $iq({
'type': 'result', 'type': 'result',
'from': 'localhost', 'from': 'montague.lit',
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'id': items_IQ_id 'id': items_IQ_id
}).c('query', {'xmlns': 'http://jabber.org/protocol/disco#items'}) }).c('query', {'xmlns': 'http://jabber.org/protocol/disco#items'})
.c('item', { .c('item', {
@ -151,14 +151,14 @@
'name': 'Gateway to Marlowe IM'}).up() 'name': 'Gateway to Marlowe IM'}).up()
.c('item', { .c('item', {
'jid': 'localhost', 'jid': 'montague.lit',
'node': 'books', 'node': 'books',
'name': 'Books by and about Shakespeare'}).up() 'name': 'Books by and about Shakespeare'}).up()
.c('item', { .c('item', {
'node': 'localhost', 'node': 'montague.lit',
'name': 'Wear your literary taste with pride'}).up() 'name': 'Wear your literary taste with pride'}).up()
.c('item', { .c('item', {
'jid': 'localhost', 'jid': 'montague.lit',
'node': 'music', 'node': 'music',
'name': 'Music from the time of Shakespeare' 'name': 'Music from the time of Shakespeare'
}); });

View File

@ -16,7 +16,7 @@
/* XMPP spam message: /* XMPP spam message:
* *
* <message xmlns="jabber:client" * <message xmlns="jabber:client"
* to="dummy@localhost" * to="romeo@montague.lit"
* type="chat" * type="chat"
* from="gapowa20102106@rds-rostov.ru/Adium"> * from="gapowa20102106@rds-rostov.ru/Adium">
* <nick xmlns="http://jabber.org/protocol/nick">-wwdmz</nick> * <nick xmlns="http://jabber.org/protocol/nick">-wwdmz</nick>
@ -26,7 +26,7 @@
sinon.spy(utils, 'isHeadlineMessage'); sinon.spy(utils, 'isHeadlineMessage');
const stanza = $msg({ const stanza = $msg({
'xmlns': 'jabber:client', 'xmlns': 'jabber:client',
'to': 'dummy@localhost', 'to': 'romeo@montague.lit',
'type': 'chat', 'type': 'chat',
'from': 'gapowa20102106@rds-rostov.ru/Adium', 'from': 'gapowa20102106@rds-rostov.ru/Adium',
}) })
@ -59,7 +59,7 @@
const stanza = $msg({ const stanza = $msg({
'type': 'headline', 'type': 'headline',
'from': 'notify.example.com', 'from': 'notify.example.com',
'to': 'dummy@localhost', 'to': 'romeo@montague.lit',
'xml:lang': 'en' 'xml:lang': 'en'
}) })
.c('subject').t('SIEVE').up() .c('subject').t('SIEVE').up()
@ -91,7 +91,7 @@
var stanza = $msg({ var stanza = $msg({
'type': 'headline', 'type': 'headline',
'from': 'andre5114@jabber.snc.ru/Spark', 'from': 'andre5114@jabber.snc.ru/Spark',
'to': 'dummy@localhost', 'to': 'romeo@montague.lit',
'xml:lang': 'en' 'xml:lang': 'en'
}) })
.c('nick').t('gpocy').up() .c('nick').t('gpocy').up()

View File

@ -21,7 +21,7 @@
await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, [], []); await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, [], []);
await test_utils.waitUntil(() => _.filter( await test_utils.waitUntil(() => _.filter(
IQ_stanzas, IQ_stanzas,
iq => iq.querySelector('iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#info"]')).length iq => iq.querySelector('iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#info"]')).length
); );
/* <iq type='result' /* <iq type='result'
@ -39,13 +39,13 @@
*/ */
let stanza = _.find(IQ_stanzas, function (iq) { let stanza = _.find(IQ_stanzas, function (iq) {
return iq.querySelector( return iq.querySelector(
'iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#info"]'); 'iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#info"]');
}); });
const info_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)]; const info_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)];
stanza = $iq({ stanza = $iq({
'type': 'result', 'type': 'result',
'from': 'localhost', 'from': 'montague.lit',
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'id': info_IQ_id 'id': info_IQ_id
}).c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'}) }).c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'})
.c('identity', { .c('identity', {
@ -59,8 +59,8 @@
let entities = await _converse.api.disco.entities.get(); let entities = await _converse.api.disco.entities.get();
expect(entities.length).toBe(2); expect(entities.length).toBe(2);
expect(_.includes(entities.pluck('jid'), 'localhost')).toBe(true); expect(_.includes(entities.pluck('jid'), 'montague.lit')).toBe(true);
expect(_.includes(entities.pluck('jid'), 'dummy@localhost')).toBe(true); expect(_.includes(entities.pluck('jid'), 'romeo@montague.lit')).toBe(true);
expect(entities.get(_converse.domain).features.length).toBe(2); expect(entities.get(_converse.domain).features.length).toBe(2);
expect(entities.get(_converse.domain).identities.length).toBe(1); expect(entities.get(_converse.domain).identities.length).toBe(1);
@ -69,7 +69,7 @@
// so it will make a query for it. // so it will make a query for it.
await test_utils.waitUntil(() => _.filter( await test_utils.waitUntil(() => _.filter(
IQ_stanzas, IQ_stanzas,
iq => iq.querySelector('iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#items"]') iq => iq.querySelector('iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#items"]')
).length ).length
); );
/* <iq from='montague.tld' /* <iq from='montague.tld'
@ -83,29 +83,29 @@
* </iq> * </iq>
*/ */
stanza = _.find(IQ_stanzas, function (iq) { stanza = _.find(IQ_stanzas, function (iq) {
return iq.querySelector('iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#items"]'); return iq.querySelector('iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#items"]');
}); });
const items_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)]; const items_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)];
stanza = $iq({ stanza = $iq({
'type': 'result', 'type': 'result',
'from': 'localhost', 'from': 'montague.lit',
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'id': items_IQ_id 'id': items_IQ_id
}).c('query', {'xmlns': 'http://jabber.org/protocol/disco#items'}) }).c('query', {'xmlns': 'http://jabber.org/protocol/disco#items'})
.c('item', { .c('item', {
'jid': 'upload.localhost', 'jid': 'upload.montague.lit',
'name': 'HTTP File Upload'}); 'name': 'HTTP File Upload'});
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
_converse.api.disco.entities.get().then(function (entities) { _converse.api.disco.entities.get().then(function (entities) {
expect(entities.length).toBe(2); expect(entities.length).toBe(2);
expect(entities.get('localhost').items.length).toBe(1); expect(entities.get('montague.lit').items.length).toBe(1);
return test_utils.waitUntil(function () { return test_utils.waitUntil(function () {
// Converse.js sees that the entity has a disco#info feature, // Converse.js sees that the entity has a disco#info feature,
// so it will make a query for it. // so it will make a query for it.
return _.filter(IQ_stanzas, function (iq) { return _.filter(IQ_stanzas, function (iq) {
return iq.querySelector('iq[to="upload.localhost"] query[xmlns="http://jabber.org/protocol/disco#info"]'); return iq.querySelector('iq[to="upload.montague.lit"] query[xmlns="http://jabber.org/protocol/disco#info"]');
}).length > 0; }).length > 0;
}, 300); }, 300);
}); });
@ -113,13 +113,13 @@
stanza = await test_utils.waitUntil(() => stanza = await test_utils.waitUntil(() =>
_.filter( _.filter(
IQ_stanzas, IQ_stanzas,
iq => iq.querySelector('iq[to="upload.localhost"] query[xmlns="http://jabber.org/protocol/disco#info"]') iq => iq.querySelector('iq[to="upload.montague.lit"] query[xmlns="http://jabber.org/protocol/disco#info"]')
).pop() ).pop()
); );
const IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)]; const IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)];
expect(Strophe.serialize(stanza)).toBe( expect(Strophe.serialize(stanza)).toBe(
`<iq from="dummy@localhost/resource" id="`+IQ_id+`" to="upload.localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="`+IQ_id+`" to="upload.montague.lit" type="get" xmlns="jabber:client">`+
`<query xmlns="http://jabber.org/protocol/disco#info"/>`+ `<query xmlns="http://jabber.org/protocol/disco#info"/>`+
`</iq>`); `</iq>`);
@ -144,7 +144,7 @@
* </query> * </query>
* </iq> * </iq>
*/ */
stanza = $iq({'type': 'result', 'to': 'dummy@localhost/resource', 'id': IQ_id, 'from': 'upload.localhost'}) stanza = $iq({'type': 'result', 'to': 'romeo@montague.lit/orchard', 'id': IQ_id, 'from': 'upload.montague.lit'})
.c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'}) .c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'})
.c('identity', {'category':'store', 'type':'file', 'name':'HTTP File Upload'}).up() .c('identity', {'category':'store', 'type':'file', 'name':'HTTP File Upload'}).up()
.c('feature', {'var':'urn:xmpp:http:upload:0'}).up() .c('feature', {'var':'urn:xmpp:http:upload:0'}).up()
@ -156,12 +156,12 @@
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
entities = await _converse.api.disco.entities.get(); entities = await _converse.api.disco.entities.get();
expect(entities.get('localhost').items.get('upload.localhost').identities.where({'category': 'store'}).length).toBe(1); expect(entities.get('montague.lit').items.get('upload.montague.lit').identities.where({'category': 'store'}).length).toBe(1);
const supported = await _converse.api.disco.supports(Strophe.NS.HTTPUPLOAD, _converse.domain); const supported = await _converse.api.disco.supports(Strophe.NS.HTTPUPLOAD, _converse.domain);
expect(supported).toBe(true); expect(supported).toBe(true);
const features = await _converse.api.disco.features.get(Strophe.NS.HTTPUPLOAD, _converse.domain); const features = await _converse.api.disco.features.get(Strophe.NS.HTTPUPLOAD, _converse.domain);
expect(features.length).toBe(1); expect(features.length).toBe(1);
expect(features[0].get('jid')).toBe('upload.localhost'); expect(features[0].get('jid')).toBe('upload.montague.lit');
expect(features[0].dataforms.where({'FORM_TYPE': {value: "urn:xmpp:http:upload:0", type: "hidden"}}).length).toBe(1); expect(features[0].dataforms.where({'FORM_TYPE': {value: "urn:xmpp:http:upload:0", type: "hidden"}}).length).toBe(1);
done(); done();
})); }));
@ -171,7 +171,7 @@
describe("A file upload toolbar button", function () { describe("A file upload toolbar button", function () {
it("does not appear in private chats", mock.initConverse(async (done, _converse) => { it("does not appear in private chats", mock.initConverse(async (done, _converse) => {
var contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; var contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@montague.lit';
test_utils.createContacts(_converse, 'current'); test_utils.createContacts(_converse, 'current');
test_utils.openChatBoxFor(_converse, contact_jid); test_utils.openChatBoxFor(_converse, contact_jid);
@ -190,15 +190,15 @@
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
async (done, _converse) => { async (done, _converse) => {
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy'); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
test_utils.waitUntilDiscoConfirmed( test_utils.waitUntilDiscoConfirmed(
_converse, _converse.domain, _converse, _converse.domain,
[{'category': 'server', 'type':'IM'}], [{'category': 'server', 'type':'IM'}],
['http://jabber.org/protocol/disco#items'], [], 'info'); ['http://jabber.org/protocol/disco#items'], [], 'info');
await test_utils.waitUntilDiscoConfirmed(_converse, _converse.domain, [], [], ['upload.localhost'], 'items'); await test_utils.waitUntilDiscoConfirmed(_converse, _converse.domain, [], [], ['upload.montague.lit'], 'items');
await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.localhost', [], [Strophe.NS.HTTPUPLOAD], []); await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.montague.lit', [], [Strophe.NS.HTTPUPLOAD], []);
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
expect(view.el.querySelector('.chat-toolbar .upload-file')).toBe(null); expect(view.el.querySelector('.chat-toolbar .upload-file')).toBe(null);
done(); done();
})); }));
@ -216,11 +216,11 @@
[{'category': 'server', 'type':'IM'}], [{'category': 'server', 'type':'IM'}],
['http://jabber.org/protocol/disco#items'], [], 'info'); ['http://jabber.org/protocol/disco#items'], [], 'info');
await test_utils.waitUntilDiscoConfirmed(_converse, _converse.domain, [], [], ['upload.localhost'], 'items') await test_utils.waitUntilDiscoConfirmed(_converse, _converse.domain, [], [], ['upload.montague.lit'], 'items')
await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.localhost', [], [Strophe.NS.HTTPUPLOAD], []); await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.montague.lit', [], [Strophe.NS.HTTPUPLOAD], []);
test_utils.createContacts(_converse, 'current', 3); test_utils.createContacts(_converse, 'current', 3);
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);
test_utils.waitUntil(() => view.el.querySelector('.upload-file')); test_utils.waitUntil(() => view.el.querySelector('.upload-file'));
@ -237,11 +237,11 @@
[{'category': 'server', 'type':'IM'}], [{'category': 'server', 'type':'IM'}],
['http://jabber.org/protocol/disco#items'], [], 'info'); ['http://jabber.org/protocol/disco#items'], [], 'info');
await test_utils.waitUntilDiscoConfirmed(_converse, _converse.domain, [], [], ['upload.localhost'], 'items'); await test_utils.waitUntilDiscoConfirmed(_converse, _converse.domain, [], [], ['upload.montague.lit'], 'items');
await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.localhost', [], [Strophe.NS.HTTPUPLOAD], []); await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.montague.lit', [], [Strophe.NS.HTTPUPLOAD], []);
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy'); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
await test_utils.waitUntil(() => _converse.chatboxviews.get('lounge@localhost').el.querySelector('.upload-file')); await test_utils.waitUntil(() => _converse.chatboxviews.get('lounge@montague.lit').el.querySelector('.upload-file'));
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
expect(view.el.querySelector('.chat-toolbar .upload-file')).not.toBe(null); expect(view.el.querySelector('.chat-toolbar .upload-file')).not.toBe(null);
done(); done();
})); }));
@ -262,7 +262,7 @@
await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.montague.tld', [], [Strophe.NS.HTTPUPLOAD], []); await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.montague.tld', [], [Strophe.NS.HTTPUPLOAD], []);
test_utils.createContacts(_converse, 'current'); test_utils.createContacts(_converse, 'current');
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);
const file = { const file = {
@ -277,7 +277,7 @@
await test_utils.waitUntil(() => _.filter(IQ_stanzas, iq => iq.querySelector('iq[to="upload.montague.tld"] request')).length); await test_utils.waitUntil(() => _.filter(IQ_stanzas, iq => iq.querySelector('iq[to="upload.montague.tld"] request')).length);
const iq = IQ_stanzas.pop(); const iq = IQ_stanzas.pop();
expect(Strophe.serialize(iq)).toBe( expect(Strophe.serialize(iq)).toBe(
`<iq from="dummy@localhost/resource" `+ `<iq from="romeo@montague.lit/orchard" `+
`id="${iq.getAttribute("id")}" `+ `id="${iq.getAttribute("id")}" `+
`to="upload.montague.tld" `+ `to="upload.montague.tld" `+
`type="get" `+ `type="get" `+
@ -294,7 +294,7 @@
const stanza = u.toStanza(` const stanza = u.toStanza(`
<iq from="upload.montague.tld" <iq from="upload.montague.tld"
id="${iq.getAttribute("id")}" id="${iq.getAttribute("id")}"
to="dummy@localhost/resource" to="romeo@montague.lit/orchard"
type="result"> type="result">
<slot xmlns="urn:xmpp:http:upload:0"> <slot xmlns="urn:xmpp:http:upload:0">
<put url="https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my-juliet.jpg"> <put url="https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my-juliet.jpg">
@ -328,9 +328,9 @@
await test_utils.waitUntil(() => sent_stanza, 1000); await test_utils.waitUntil(() => sent_stanza, 1000);
expect(sent_stanza.toLocaleString()).toBe( expect(sent_stanza.toLocaleString()).toBe(
`<message from="dummy@localhost/resource" `+ `<message from="romeo@montague.lit/orchard" `+
`id="${sent_stanza.nodeTree.getAttribute("id")}" `+ `id="${sent_stanza.nodeTree.getAttribute("id")}" `+
`to="irini.vlastuin@localhost" `+ `to="lady.montague@montague.lit" `+
`type="chat" `+ `type="chat" `+
`xmlns="jabber:client">`+ `xmlns="jabber:client">`+
`<body>${message}</body>`+ `<body>${message}</body>`+
@ -365,13 +365,13 @@
await test_utils.waitUntilDiscoConfirmed(_converse, _converse.domain, [], [], ['upload.montague.tld'], 'items'); await test_utils.waitUntilDiscoConfirmed(_converse, _converse.domain, [], [], ['upload.montague.tld'], 'items');
await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.montague.tld', [], [Strophe.NS.HTTPUPLOAD], []); await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.montague.tld', [], [Strophe.NS.HTTPUPLOAD], []);
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy'); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
// Wait until MAM query has been sent out // Wait until MAM query has been sent out
const sent_stanzas = _converse.connection.sent_stanzas; const sent_stanzas = _converse.connection.sent_stanzas;
await test_utils.waitUntil(() => sent_stanzas.filter(s => sizzle(`[xmlns="${Strophe.NS.MAM}"]`, s).length).pop()); await test_utils.waitUntil(() => sent_stanzas.filter(s => sizzle(`[xmlns="${Strophe.NS.MAM}"]`, s).length).pop());
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
const file = { const file = {
'type': 'image/jpeg', 'type': 'image/jpeg',
'size': '23456' , 'size': '23456' ,
@ -384,7 +384,7 @@
await test_utils.waitUntil(() => _.filter(IQ_stanzas, iq => iq.querySelector('iq[to="upload.montague.tld"] request')).length); await test_utils.waitUntil(() => _.filter(IQ_stanzas, iq => iq.querySelector('iq[to="upload.montague.tld"] request')).length);
const iq = IQ_stanzas.pop(); const iq = IQ_stanzas.pop();
expect(Strophe.serialize(iq)).toBe( expect(Strophe.serialize(iq)).toBe(
`<iq from="dummy@localhost/resource" `+ `<iq from="romeo@montague.lit/orchard" `+
`id="${iq.getAttribute("id")}" `+ `id="${iq.getAttribute("id")}" `+
`to="upload.montague.tld" `+ `to="upload.montague.tld" `+
`type="get" `+ `type="get" `+
@ -400,7 +400,7 @@
const stanza = u.toStanza(` const stanza = u.toStanza(`
<iq from='upload.montague.tld' <iq from='upload.montague.tld'
id="${iq.getAttribute('id')}" id="${iq.getAttribute('id')}"
to='dummy@localhost/resource' to='romeo@montague.lit/orchard'
type='result'> type='result'>
<slot xmlns='urn:xmpp:http:upload:0'> <slot xmlns='urn:xmpp:http:upload:0'>
<put url='https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my-juliet.jpg'> <put url='https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my-juliet.jpg'>
@ -435,9 +435,9 @@
await test_utils.waitUntil(() => sent_stanza, 1000); await test_utils.waitUntil(() => sent_stanza, 1000);
expect(sent_stanza.toLocaleString()).toBe( expect(sent_stanza.toLocaleString()).toBe(
`<message `+ `<message `+
`from="dummy@localhost/resource" `+ `from="romeo@montague.lit/orchard" `+
`id="${sent_stanza.nodeTree.getAttribute("id")}" `+ `id="${sent_stanza.nodeTree.getAttribute("id")}" `+
`to="lounge@localhost" `+ `to="lounge@montague.lit" `+
`type="groupchat" `+ `type="groupchat" `+
`xmlns="jabber:client">`+ `xmlns="jabber:client">`+
`<body>${message}</body>`+ `<body>${message}</body>`+
@ -466,18 +466,18 @@
await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, [], []); await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, [], []);
await test_utils.waitUntil(() => _.filter( await test_utils.waitUntil(() => _.filter(
IQ_stanzas, IQ_stanzas,
iq => iq.querySelector('iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#info"]')).length iq => iq.querySelector('iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#info"]')).length
); );
let stanza = _.find(IQ_stanzas, function (iq) { let stanza = _.find(IQ_stanzas, function (iq) {
return iq.querySelector( return iq.querySelector(
'iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#info"]'); 'iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#info"]');
}); });
const info_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)]; const info_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)];
stanza = $iq({ stanza = $iq({
'type': 'result', 'type': 'result',
'from': 'localhost', 'from': 'montague.lit',
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'id': info_IQ_id 'id': info_IQ_id
}).c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'}) }).c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'})
.c('identity', { .c('identity', {
@ -491,8 +491,8 @@
let entities = await _converse.api.disco.entities.get(); let entities = await _converse.api.disco.entities.get();
expect(entities.length).toBe(2); expect(entities.length).toBe(2);
expect(_.includes(entities.pluck('jid'), 'localhost')).toBe(true); expect(_.includes(entities.pluck('jid'), 'montague.lit')).toBe(true);
expect(_.includes(entities.pluck('jid'), 'dummy@localhost')).toBe(true); expect(_.includes(entities.pluck('jid'), 'romeo@montague.lit')).toBe(true);
expect(entities.get(_converse.domain).features.length).toBe(2); expect(entities.get(_converse.domain).features.length).toBe(2);
expect(entities.get(_converse.domain).identities.length).toBe(1); expect(entities.get(_converse.domain).identities.length).toBe(1);
@ -501,22 +501,22 @@
// Converse.js sees that the entity has a disco#items feature, // Converse.js sees that the entity has a disco#items feature,
// so it will make a query for it. // so it will make a query for it.
return _.filter(IQ_stanzas, function (iq) { return _.filter(IQ_stanzas, function (iq) {
return iq.querySelector('iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#items"]'); return iq.querySelector('iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#items"]');
}).length > 0; }).length > 0;
}, 300); }, 300);
stanza = _.find(IQ_stanzas, function (iq) { stanza = _.find(IQ_stanzas, function (iq) {
return iq.querySelector('iq[to="localhost"] query[xmlns="http://jabber.org/protocol/disco#items"]'); return iq.querySelector('iq[to="montague.lit"] query[xmlns="http://jabber.org/protocol/disco#items"]');
}); });
var items_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)]; var items_IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)];
stanza = $iq({ stanza = $iq({
'type': 'result', 'type': 'result',
'from': 'localhost', 'from': 'montague.lit',
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'id': items_IQ_id 'id': items_IQ_id
}).c('query', {'xmlns': 'http://jabber.org/protocol/disco#items'}) }).c('query', {'xmlns': 'http://jabber.org/protocol/disco#items'})
.c('item', { .c('item', {
'jid': 'upload.localhost', 'jid': 'upload.montague.lit',
'name': 'HTTP File Upload'}); 'name': 'HTTP File Upload'});
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
@ -524,24 +524,24 @@
entities = await _converse.api.disco.entities.get() entities = await _converse.api.disco.entities.get()
expect(entities.length).toBe(2); expect(entities.length).toBe(2);
expect(entities.get('localhost').items.length).toBe(1); expect(entities.get('montague.lit').items.length).toBe(1);
await test_utils.waitUntil(function () { await test_utils.waitUntil(function () {
// Converse.js sees that the entity has a disco#info feature, // Converse.js sees that the entity has a disco#info feature,
// so it will make a query for it. // so it will make a query for it.
return _.filter(IQ_stanzas, function (iq) { return _.filter(IQ_stanzas, function (iq) {
return iq.querySelector('iq[to="upload.localhost"] query[xmlns="http://jabber.org/protocol/disco#info"]'); return iq.querySelector('iq[to="upload.montague.lit"] query[xmlns="http://jabber.org/protocol/disco#info"]');
}).length > 0; }).length > 0;
}, 300); }, 300);
stanza = _.find(IQ_stanzas, iq => iq.querySelector('iq[to="upload.localhost"] query[xmlns="http://jabber.org/protocol/disco#info"]')); stanza = _.find(IQ_stanzas, iq => iq.querySelector('iq[to="upload.montague.lit"] query[xmlns="http://jabber.org/protocol/disco#info"]'));
const IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)]; const IQ_id = IQ_ids[IQ_stanzas.indexOf(stanza)];
expect(Strophe.serialize(stanza)).toBe( expect(Strophe.serialize(stanza)).toBe(
`<iq from="dummy@localhost/resource" id="${IQ_id}" to="upload.localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${IQ_id}" to="upload.montague.lit" type="get" xmlns="jabber:client">`+
`<query xmlns="http://jabber.org/protocol/disco#info"/>`+ `<query xmlns="http://jabber.org/protocol/disco#info"/>`+
`</iq>`); `</iq>`);
// Upload service responds and reports a maximum file size of 5MiB // Upload service responds and reports a maximum file size of 5MiB
stanza = $iq({'type': 'result', 'to': 'dummy@localhost/resource', 'id': IQ_id, 'from': 'upload.localhost'}) stanza = $iq({'type': 'result', 'to': 'romeo@montague.lit/orchard', 'id': IQ_id, 'from': 'upload.montague.lit'})
.c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'}) .c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'})
.c('identity', {'category':'store', 'type':'file', 'name':'HTTP File Upload'}).up() .c('identity', {'category':'store', 'type':'file', 'name':'HTTP File Upload'}).up()
.c('feature', {'var':'urn:xmpp:http:upload:0'}).up() .c('feature', {'var':'urn:xmpp:http:upload:0'}).up()
@ -552,12 +552,12 @@
.c('value').t('5242880'); .c('value').t('5242880');
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
entities = await _converse.api.disco.entities.get(); entities = await _converse.api.disco.entities.get();
expect(entities.get('localhost').items.get('upload.localhost').identities.where({'category': 'store'}).length).toBe(1); expect(entities.get('montague.lit').items.get('upload.montague.lit').identities.where({'category': 'store'}).length).toBe(1);
await _converse.api.disco.supports(Strophe.NS.HTTPUPLOAD, _converse.domain); await _converse.api.disco.supports(Strophe.NS.HTTPUPLOAD, _converse.domain);
test_utils.createContacts(_converse, 'current'); test_utils.createContacts(_converse, 'current');
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);
var file = { var file = {
@ -595,7 +595,7 @@
await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.montague.tld', [], [Strophe.NS.HTTPUPLOAD], []); await test_utils.waitUntilDiscoConfirmed(_converse, 'upload.montague.tld', [], [Strophe.NS.HTTPUPLOAD], []);
test_utils.createContacts(_converse, 'current'); test_utils.createContacts(_converse, 'current');
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);
const file = { const file = {
@ -609,7 +609,7 @@
await test_utils.waitUntil(() => _.filter(IQ_stanzas, iq => iq.querySelector('iq[to="upload.montague.tld"] request')).length) await test_utils.waitUntil(() => _.filter(IQ_stanzas, iq => iq.querySelector('iq[to="upload.montague.tld"] request')).length)
const iq = IQ_stanzas.pop(); const iq = IQ_stanzas.pop();
expect(Strophe.serialize(iq)).toBe( expect(Strophe.serialize(iq)).toBe(
`<iq from="dummy@localhost/resource" `+ `<iq from="romeo@montague.lit/orchard" `+
`id="${iq.getAttribute("id")}" `+ `id="${iq.getAttribute("id")}" `+
`to="upload.montague.tld" `+ `to="upload.montague.tld" `+
`type="get" `+ `type="get" `+
@ -626,7 +626,7 @@
const stanza = u.toStanza(` const stanza = u.toStanza(`
<iq from="upload.montague.tld" <iq from="upload.montague.tld"
id="${iq.getAttribute("id")}" id="${iq.getAttribute("id")}"
to="dummy@localhost/resource" to="romeo@montague.lit/orchard"
type="result"> type="result">
<slot xmlns="urn:xmpp:http:upload:0"> <slot xmlns="urn:xmpp:http:upload:0">
<put url="https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my-juliet.jpg"> <put url="https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my-juliet.jpg">

View File

@ -21,7 +21,7 @@
expect(label.textContent).toBe('This is a trusted device'); expect(label.textContent).toBe('This is a trusted device');
expect(checkbox.checked).toBe(true); expect(checkbox.checked).toBe(true);
cbview.el.querySelector('input[name="jid"]').value = 'dummy@localhost'; cbview.el.querySelector('input[name="jid"]').value = 'romeo@montague.lit';
cbview.el.querySelector('input[name="password"]').value = 'secret'; cbview.el.querySelector('input[name="password"]').value = 'secret';
spyOn(cbview.loginpanel, 'connect'); spyOn(cbview.loginpanel, 'connect');
@ -58,7 +58,7 @@
expect(label.textContent).toBe('This is a trusted device'); expect(label.textContent).toBe('This is a trusted device');
expect(checkbox.checked).toBe(false); expect(checkbox.checked).toBe(false);
cbview.el.querySelector('input[name="jid"]').value = 'dummy@localhost'; cbview.el.querySelector('input[name="jid"]').value = 'romeo@montague.lit';
cbview.el.querySelector('input[name="password"]').value = 'secret'; cbview.el.querySelector('input[name="password"]').value = 'secret';
spyOn(cbview.loginpanel, 'connect'); spyOn(cbview.loginpanel, 'connect');

View File

@ -24,11 +24,11 @@
null, ['discoInitialized'], {}, null, ['discoInitialized'], {},
async function (done, _converse) { async function (done, _converse) {
await test_utils.openAndEnterChatRoom(_converse, 'trek-radio', 'conference.lightwitch.org', 'dummy'); await test_utils.openAndEnterChatRoom(_converse, 'trek-radio', 'conference.lightwitch.org', 'romeo');
const view = _converse.chatboxviews.get('trek-radio@conference.lightwitch.org'); const view = _converse.chatboxviews.get('trek-radio@conference.lightwitch.org');
let stanza = u.toStanza( let stanza = u.toStanza(
`<message xmlns="jabber:client" to="dummy@localhost/resource" type="groupchat" from="trek-radio@conference.lightwitch.org/some1"> `<message xmlns="jabber:client" to="romeo@montague.lit/orchard" type="groupchat" from="trek-radio@conference.lightwitch.org/some1">
<body>Hello</body> <body>Hello</body>
<stanza-id xmlns="urn:xmpp:sid:0" id="45fbbf2a-1059-479d-9283-c8effaf05621" by="trek-radio@conference.lightwitch.org"/> <stanza-id xmlns="urn:xmpp:sid:0" id="45fbbf2a-1059-479d-9283-c8effaf05621" by="trek-radio@conference.lightwitch.org"/>
</message>`); </message>`);
@ -40,7 +40,7 @@
stanza = u.toStanza( stanza = u.toStanza(
`<message xmlns="jabber:client" `<message xmlns="jabber:client"
to="dummy@localhost/resource" to="romeo@montague.lit/orchard"
from="trek-radio@conference.lightwitch.org"> from="trek-radio@conference.lightwitch.org">
<result xmlns="urn:xmpp:mam:2" queryid="82d9db27-6cf8-4787-8c2c-5a560263d823" id="45fbbf2a-1059-479d-9283-c8effaf05621"> <result xmlns="urn:xmpp:mam:2" queryid="82d9db27-6cf8-4787-8c2c-5a560263d823" id="45fbbf2a-1059-479d-9283-c8effaf05621">
<forwarded xmlns="urn:xmpp:forward:0"> <forwarded xmlns="urn:xmpp:forward:0">
@ -111,10 +111,10 @@
null, ['discoInitialized'], {}, null, ['discoInitialized'], {},
async function (done, _converse) { async function (done, _converse) {
await test_utils.openAndEnterChatRoom(_converse, 'discuss', 'conference.conversejs.org', 'dummy'); await test_utils.openAndEnterChatRoom(_converse, 'discuss', 'conference.conversejs.org', 'romeo');
const view = _converse.chatboxviews.get('discuss@conference.conversejs.org'); const view = _converse.chatboxviews.get('discuss@conference.conversejs.org');
let stanza = u.toStanza( let stanza = u.toStanza(
`<message xmlns="jabber:client" to="dummy@localhost/resource" from="discuss@conference.conversejs.org"> `<message xmlns="jabber:client" to="romeo@montague.lit/orchard" from="discuss@conference.conversejs.org">
<result xmlns="urn:xmpp:mam:2" queryid="06fea9ca-97c9-48c4-8583-009ff54ea2e8" id="7a9fde91-4387-4bf8-b5d3-978dab8f6bf3"> <result xmlns="urn:xmpp:mam:2" queryid="06fea9ca-97c9-48c4-8583-009ff54ea2e8" id="7a9fde91-4387-4bf8-b5d3-978dab8f6bf3">
<forwarded xmlns="urn:xmpp:forward:0"> <forwarded xmlns="urn:xmpp:forward:0">
<delay xmlns="urn:xmpp:delay" stamp="2018-12-05T04:53:12Z"/> <delay xmlns="urn:xmpp:delay" stamp="2018-12-05T04:53:12Z"/>
@ -132,7 +132,7 @@
expect(view.content.querySelectorAll('.chat-msg').length).toBe(1); expect(view.content.querySelectorAll('.chat-msg').length).toBe(1);
stanza = u.toStanza( stanza = u.toStanza(
`<message xmlns="jabber:client" to="dummy@localhost/resource" from="discuss@conference.conversejs.org"> `<message xmlns="jabber:client" to="romeo@montague.lit/orchard" from="discuss@conference.conversejs.org">
<result xmlns="urn:xmpp:mam:2" queryid="06fea9ca-97c9-48c4-8583-009ff54ea2e8" id="7a9fde91-4387-4bf8-b5d3-978dab8f6bf3"> <result xmlns="urn:xmpp:mam:2" queryid="06fea9ca-97c9-48c4-8583-009ff54ea2e8" id="7a9fde91-4387-4bf8-b5d3-978dab8f6bf3">
<forwarded xmlns="urn:xmpp:forward:0"> <forwarded xmlns="urn:xmpp:forward:0">
<delay xmlns="urn:xmpp:delay" stamp="2018-12-05T04:53:12Z"/> <delay xmlns="urn:xmpp:delay" stamp="2018-12-05T04:53:12Z"/>
@ -272,13 +272,13 @@
* </result> * </result>
* </message> * </message>
*/ */
const msg1 = $msg({'id':'iasd207', 'from': 'other@chat.shakespear.lit', 'to': 'dummy@localhost'}) const msg1 = $msg({'id':'iasd207', 'from': 'other@chat.shakespear.lit', 'to': 'romeo@montague.lit'})
.c('result', {'xmlns': 'urn:xmpp:mam:2', 'queryid':queryid, 'id':'34482-21985-73620'}) .c('result', {'xmlns': 'urn:xmpp:mam:2', 'queryid':queryid, 'id':'34482-21985-73620'})
.c('forwarded', {'xmlns':'urn:xmpp:forward:0'}) .c('forwarded', {'xmlns':'urn:xmpp:forward:0'})
.c('delay', {'xmlns':'urn:xmpp:delay', 'stamp':'2010-07-10T23:08:25Z'}).up() .c('delay', {'xmlns':'urn:xmpp:delay', 'stamp':'2010-07-10T23:08:25Z'}).up()
.c('message', { .c('message', {
'xmlns':'jabber:client', 'xmlns':'jabber:client',
'to':'dummy@localhost', 'to':'romeo@montague.lit',
'id':'162BEBB1-F6DB-4D9A-9BD8-CFDCC801A0B2', 'id':'162BEBB1-F6DB-4D9A-9BD8-CFDCC801A0B2',
'from':'coven@chat.shakespeare.lit/firstwitch', 'from':'coven@chat.shakespeare.lit/firstwitch',
'type':'groupchat' }) 'type':'groupchat' })
@ -728,7 +728,7 @@
async function (done, _converse) { async function (done, _converse) {
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]); await test_utils.waitUntilDiscoConfirmed(_converse, _converse.bare_jid, null, [Strophe.NS.MAM]);
@ -747,7 +747,7 @@
`<query queryid="${queryid}" xmlns="urn:xmpp:mam:2">`+ `<query queryid="${queryid}" xmlns="urn:xmpp:mam:2">`+
`<x type="submit" xmlns="jabber:x:data">`+ `<x type="submit" xmlns="jabber:x:data">`+
`<field type="hidden" var="FORM_TYPE"><value>urn:xmpp:mam:2</value></field>`+ `<field type="hidden" var="FORM_TYPE"><value>urn:xmpp:mam:2</value></field>`+
`<field var="with"><value>max.frankfurter@localhost</value></field>`+ `<field var="with"><value>mercutio@montague.lit</value></field>`+
`</x>`+ `</x>`+
`<set xmlns="http://jabber.org/protocol/rsm"><max>50</max><before></before></set>`+ `<set xmlns="http://jabber.org/protocol/rsm"><max>50</max><before></before></set>`+
`</query>`+ `</query>`+

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,7 @@
_converse.minimized_chats.toggleview.model.browserStorage._clear(); _converse.minimized_chats.toggleview.model.browserStorage._clear();
_converse.minimized_chats.initToggle(); _converse.minimized_chats.initToggle();
let contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; let contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid) await test_utils.openChatBoxFor(_converse, contact_jid)
let chatview = _converse.chatboxviews.get(contact_jid); let chatview = _converse.chatboxviews.get(contact_jid);
expect(chatview.model.get('minimized')).toBeFalsy(); expect(chatview.model.get('minimized')).toBeFalsy();
@ -31,7 +31,7 @@
expect(_converse.minimized_chats.keys().length).toBe(1); expect(_converse.minimized_chats.keys().length).toBe(1);
expect(_converse.minimized_chats.keys()[0]).toBe(contact_jid); expect(_converse.minimized_chats.keys()[0]).toBe(contact_jid);
contact_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost'; contact_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
chatview = _converse.chatboxviews.get(contact_jid); chatview = _converse.chatboxviews.get(contact_jid);
expect(chatview.model.get('minimized')).toBeFalsy(); expect(chatview.model.get('minimized')).toBeFalsy();
@ -55,7 +55,7 @@
_converse.minimized_chats.toggleview.model.browserStorage._clear(); _converse.minimized_chats.toggleview.model.browserStorage._clear();
_converse.minimized_chats.initToggle(); _converse.minimized_chats.initToggle();
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
const chatview = _converse.chatboxviews.get(contact_jid); const chatview = _converse.chatboxviews.get(contact_jid);
expect(u.isVisible(_converse.minimized_chats.el)).toBeFalsy(); expect(u.isVisible(_converse.minimized_chats.el)).toBeFalsy();
@ -90,7 +90,7 @@
expect(_.isNull(unread_el)).toBe(true); expect(_.isNull(unread_el)).toBe(true);
for (i=0; i<3; i++) { for (i=0; i<3; i++) {
contact_jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; contact_jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
test_utils.openChatBoxFor(_converse, contact_jid); test_utils.openChatBoxFor(_converse, contact_jid);
} }
test_utils.waitUntil(() => _converse.chatboxes.length == 4).then(() => { test_utils.waitUntil(() => _converse.chatboxes.length == 4).then(() => {
@ -161,13 +161,13 @@
var view = _converse.chatboxviews.get(room_jid); var view = _converse.chatboxviews.get(room_jid);
view.model.set({'minimized': true}); view.model.set({'minimized': true});
var contact_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@localhost'; var contact_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@montague.lit';
var message = 'fires: Your attention is required'; var message = 'fires: Your attention is required';
var nick = mock.chatroom_names[0], var nick = mock.chatroom_names[0],
msg = $msg({ msg = $msg({
from: room_jid+'/'+nick, from: room_jid+'/'+nick,
id: (new Date()).getTime(), id: (new Date()).getTime(),
to: 'dummy@localhost', to: 'romeo@montague.lit',
type: 'groupchat' type: 'groupchat'
}).c('body').t(message).tree(); }).c('body').t(message).tree();
view.model.onMessage(msg); view.model.onMessage(msg);

File diff suppressed because it is too large Load Diff

View File

@ -26,7 +26,7 @@
spyOn(_converse, 'isMessageToHiddenChat').and.returnValue(true); spyOn(_converse, 'isMessageToHiddenChat').and.returnValue(true);
const message = 'This message will show a desktop notification'; const message = 'This message will show a desktop notification';
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost', const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit',
msg = $msg({ msg = $msg({
from: sender_jid, from: sender_jid,
to: _converse.connection.jid, to: _converse.connection.jid,
@ -47,8 +47,8 @@
async (done, _converse) => { async (done, _converse) => {
await test_utils.createContacts(_converse, 'current'); await test_utils.createContacts(_converse, 'current');
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy'); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
const view = _converse.api.chatviews.get('lounge@localhost'); const view = _converse.api.chatviews.get('lounge@montague.lit');
if (!view.el.querySelectorAll('.chat-area').length) { if (!view.el.querySelectorAll('.chat-area').length) {
view.renderChatArea(); view.renderChatArea();
} }
@ -64,12 +64,12 @@
spyOn(_converse, 'showMessageNotification').and.callThrough(); spyOn(_converse, 'showMessageNotification').and.callThrough();
spyOn(_converse, 'areDesktopNotificationsEnabled').and.returnValue(true); spyOn(_converse, 'areDesktopNotificationsEnabled').and.returnValue(true);
const message = 'dummy: This message will show a desktop notification'; const message = 'romeo: This message will show a desktop notification';
const nick = mock.chatroom_names[0], const nick = mock.chatroom_names[0],
msg = $msg({ msg = $msg({
from: 'lounge@localhost/'+nick, from: 'lounge@montague.lit/'+nick,
id: (new Date()).getTime(), id: (new Date()).getTime(),
to: 'dummy@localhost', to: 'romeo@montague.lit',
type: 'groupchat' type: 'groupchat'
}).c('body').t(message).tree(); }).c('body').t(message).tree();
@ -94,7 +94,7 @@
const stanza = $msg({ const stanza = $msg({
'type': 'headline', 'type': 'headline',
'from': 'notify.example.com', 'from': 'notify.example.com',
'to': 'dummy@localhost', 'to': 'romeo@montague.lit',
'xml:lang': 'en' 'xml:lang': 'en'
}) })
.c('subject').t('SIEVE').up() .c('subject').t('SIEVE').up()
@ -120,7 +120,7 @@
const stanza = $msg({ const stanza = $msg({
'type': 'headline', 'type': 'headline',
'from': 'someone@notify.example.com', 'from': 'someone@notify.example.com',
'to': 'dummy@localhost', 'to': 'romeo@montague.lit',
'xml:lang': 'en' 'xml:lang': 'en'
}) })
.c('subject').t('SIEVE').up() .c('subject').t('SIEVE').up()
@ -143,7 +143,7 @@
test_utils.createContacts(_converse, 'current'); test_utils.createContacts(_converse, 'current');
spyOn(_converse, 'areDesktopNotificationsEnabled').and.returnValue(true); spyOn(_converse, 'areDesktopNotificationsEnabled').and.returnValue(true);
spyOn(_converse, 'showChatStateNotification'); spyOn(_converse, 'showChatStateNotification');
const jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'busy'); // This will emit 'contactStatusChanged' _converse.roster.get(jid).presence.set('show', 'busy'); // This will emit 'contactStatusChanged'
expect(_converse.areDesktopNotificationsEnabled).toHaveBeenCalled(); expect(_converse.areDesktopNotificationsEnabled).toHaveBeenCalled();
expect(_converse.showChatStateNotification).toHaveBeenCalled(); expect(_converse.showChatStateNotification).toHaveBeenCalled();
@ -173,18 +173,18 @@
async (done, _converse) => { async (done, _converse) => {
test_utils.createContacts(_converse, 'current'); test_utils.createContacts(_converse, 'current');
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy'); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
_converse.play_sounds = true; _converse.play_sounds = true;
spyOn(_converse, 'playSoundNotification'); spyOn(_converse, 'playSoundNotification');
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
if (!view.el.querySelectorAll('.chat-area').length) { if (!view.el.querySelectorAll('.chat-area').length) {
view.renderChatArea(); view.renderChatArea();
} }
let text = 'This message will play a sound because it mentions dummy'; let text = 'This message will play a sound because it mentions romeo';
let message = $msg({ let message = $msg({
from: 'lounge@localhost/otheruser', from: 'lounge@montague.lit/otheruser',
id: '1', id: '1',
to: 'dummy@localhost', to: 'romeo@montague.lit',
type: 'groupchat' type: 'groupchat'
}).c('body').t(text); }).c('body').t(text);
await view.model.onMessage(message.nodeTree); await view.model.onMessage(message.nodeTree);
@ -193,20 +193,20 @@
text = "This message won't play a sound"; text = "This message won't play a sound";
message = $msg({ message = $msg({
from: 'lounge@localhost/otheruser', from: 'lounge@montague.lit/otheruser',
id: '2', id: '2',
to: 'dummy@localhost', to: 'romeo@montague.lit',
type: 'groupchat' type: 'groupchat'
}).c('body').t(text); }).c('body').t(text);
await view.model.onMessage(message.nodeTree); await view.model.onMessage(message.nodeTree);
expect(_converse.playSoundNotification, 1); expect(_converse.playSoundNotification, 1);
_converse.play_sounds = false; _converse.play_sounds = false;
text = "This message won't play a sound because it is sent by dummy"; text = "This message won't play a sound because it is sent by romeo";
message = $msg({ message = $msg({
from: 'lounge@localhost/dummy', from: 'lounge@montague.lit/romeo',
id: '3', id: '3',
to: 'dummy@localhost', to: 'romeo@montague.lit',
type: 'groupchat' type: 'groupchat'
}).c('body').t(text); }).c('body').t(text);
await view.model.onMessage(message.nodeTree); await view.model.onMessage(message.nodeTree);

View File

@ -83,7 +83,7 @@
const message = 'This message will be encrypted' const message = 'This message will be encrypted'
test_utils.createContacts(_converse, 'current', 1); test_utils.createContacts(_converse, 'current', 1);
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const view = await test_utils.openChatBoxFor(_converse, contact_jid); const view = await test_utils.openChatBoxFor(_converse, contact_jid);
const payload = await view.model.encryptMessage(message); const payload = await view.model.encryptMessage(message);
const result = await view.model.decryptMessage(payload); const result = await view.model.decryptMessage(payload);
@ -100,7 +100,7 @@
let sent_stanza; let sent_stanza;
test_utils.createContacts(_converse, 'current', 1); test_utils.createContacts(_converse, 'current', 1);
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => initializedOMEMO(_converse)); await test_utils.waitUntil(() => initializedOMEMO(_converse));
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid)); let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid));
@ -171,8 +171,8 @@
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
await test_utils.waitUntil(() => sent_stanza); await test_utils.waitUntil(() => sent_stanza);
expect(sent_stanza.toLocaleString()).toBe( expect(sent_stanza.toLocaleString()).toBe(
`<message from="dummy@localhost/resource" id="${sent_stanza.nodeTree.getAttribute("id")}" `+ `<message from="romeo@montague.lit/orchard" id="${sent_stanza.nodeTree.getAttribute("id")}" `+
`to="max.frankfurter@localhost" `+ `to="mercutio@montague.lit" `+
`type="chat" xmlns="jabber:client">`+ `type="chat" xmlns="jabber:client">`+
`<body>This is an OMEMO encrypted message which your client doesnt seem to support. Find more information on https://conversations.im/omemo</body>`+ `<body>This is an OMEMO encrypted message which your client doesnt seem to support. Find more information on https://conversations.im/omemo</body>`+
`<request xmlns="urn:xmpp:receipts"/>`+ `<request xmlns="urn:xmpp:receipts"/>`+
@ -250,8 +250,8 @@
'muc_unmoderated', 'muc_unmoderated',
'muc_nonanonymous' 'muc_nonanonymous'
]; ];
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy', features); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo', features);
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
await test_utils.waitUntil(() => initializedOMEMO(_converse)); await test_utils.waitUntil(() => initializedOMEMO(_converse));
const toolbar = view.el.querySelector('.chat-toolbar'); const toolbar = view.el.querySelector('.chat-toolbar');
@ -260,15 +260,15 @@
expect(view.model.get('omemo_active')).toBe(true); expect(view.model.get('omemo_active')).toBe(true);
// newguy enters the room // newguy enters the room
const contact_jid = 'newguy@localhost'; const contact_jid = 'newguy@montague.lit';
let stanza = $pres({ let stanza = $pres({
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'from': 'lounge@localhost/newguy' 'from': 'lounge@montague.lit/newguy'
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
'affiliation': 'none', 'affiliation': 'none',
'jid': 'newguy@localhost/_converse.js-290929789', 'jid': 'newguy@montague.lit/_converse.js-290929789',
'role': 'participant' 'role': 'participant'
}).tree(); }).tree();
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
@ -276,7 +276,7 @@
// Wait for Converse to fetch newguy's device list // Wait for Converse to fetch newguy's device list
let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid)); let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="${contact_jid}" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="${contact_jid}" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<items node="eu.siacs.conversations.axolotl.devicelist"/>`+ `<items node="eu.siacs.conversations.axolotl.devicelist"/>`+
`</pubsub>`+ `</pubsub>`+
@ -361,9 +361,9 @@
const sent_stanza = _converse.connection.send.calls.all()[0].args[0]; const sent_stanza = _converse.connection.send.calls.all()[0].args[0];
expect(Strophe.serialize(sent_stanza)).toBe( expect(Strophe.serialize(sent_stanza)).toBe(
`<message from="dummy@localhost/resource" `+ `<message from="romeo@montague.lit/orchard" `+
`id="${sent_stanza.nodeTree.getAttribute("id")}" `+ `id="${sent_stanza.nodeTree.getAttribute("id")}" `+
`to="lounge@localhost" `+ `to="lounge@montague.lit" `+
`type="groupchat" `+ `type="groupchat" `+
`xmlns="jabber:client">`+ `xmlns="jabber:client">`+
`<body>This is an OMEMO encrypted message which your client doesnt seem to support. Find more information on https://conversations.im/omemo</body>`+ `<body>This is an OMEMO encrypted message which your client doesnt seem to support. Find more information on https://conversations.im/omemo</body>`+
@ -391,7 +391,7 @@
let sent_stanza; let sent_stanza;
test_utils.createContacts(_converse, 'current', 1); test_utils.createContacts(_converse, 'current', 1);
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => initializedOMEMO(_converse)); await test_utils.waitUntil(() => initializedOMEMO(_converse));
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid)); let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid));
@ -416,17 +416,17 @@
// Test reception of an encrypted carbon message // Test reception of an encrypted carbon message
const obj = await view.model.encryptMessage('This is an encrypted carbon message from another device of mine') const obj = await view.model.encryptMessage('This is an encrypted carbon message from another device of mine')
const carbon = u.toStanza(` const carbon = u.toStanza(`
<message xmlns="jabber:client" to="dummy@localhost/resource" from="dummy@localhost" type="chat"> <message xmlns="jabber:client" to="romeo@montague.lit/orchard" from="romeo@montague.lit" type="chat">
<sent xmlns="urn:xmpp:carbons:2"> <sent xmlns="urn:xmpp:carbons:2">
<forwarded xmlns="urn:xmpp:forward:0"> <forwarded xmlns="urn:xmpp:forward:0">
<message xmlns="jabber:client" <message xmlns="jabber:client"
from="dummy@localhost/gajim.HE02SW1L" from="romeo@montague.lit/gajim.HE02SW1L"
xml:lang="en" xml:lang="en"
to="${contact_jid}/gajim.0LATM5V2" to="${contact_jid}/gajim.0LATM5V2"
type="chat" id="87141781-61d6-4eb3-9a31-429935a61b76"> type="chat" id="87141781-61d6-4eb3-9a31-429935a61b76">
<archived xmlns="urn:xmpp:mam:tmp" by="dummy@localhost" id="1554033877043470"/> <archived xmlns="urn:xmpp:mam:tmp" by="romeo@montague.lit" id="1554033877043470"/>
<stanza-id xmlns="urn:xmpp:sid:0" by="dummy@localhost" id="1554033877043470"/> <stanza-id xmlns="urn:xmpp:sid:0" by="romeo@montague.lit" id="1554033877043470"/>
<request xmlns="urn:xmpp:receipts"/> <request xmlns="urn:xmpp:receipts"/>
<active xmlns="http://jabber.org/protocol/chatstates"/> <active xmlns="http://jabber.org/protocol/chatstates"/>
<origin-id xmlns="urn:xmpp:sid:0" id="87141781-61d6-4eb3-9a31-429935a61b76"/> <origin-id xmlns="urn:xmpp:sid:0" id="87141781-61d6-4eb3-9a31-429935a61b76"/>
@ -465,7 +465,7 @@
}); });
iq_stanza = await test_utils.waitUntil(() => bundleFetched(_converse, _converse.bare_jid, '988349631')); iq_stanza = await test_utils.waitUntil(() => bundleFetched(_converse, _converse.bare_jid, '988349631'));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="${_converse.bare_jid}" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="${_converse.bare_jid}" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<items node="eu.siacs.conversations.axolotl.bundles:988349631"/>`+ `<items node="eu.siacs.conversations.axolotl.bundles:988349631"/>`+
`</pubsub>`+ `</pubsub>`+
@ -490,19 +490,19 @@
'muc_unmoderated', 'muc_unmoderated',
'muc_nonanonymous' 'muc_nonanonymous'
]; ];
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy', features); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo', features);
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
await test_utils.waitUntil(() => initializedOMEMO(_converse)); await test_utils.waitUntil(() => initializedOMEMO(_converse));
const contact_jid = 'newguy@localhost'; const contact_jid = 'newguy@montague.lit';
let stanza = $pres({ let stanza = $pres({
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'from': 'lounge@localhost/newguy' 'from': 'lounge@montague.lit/newguy'
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
'affiliation': 'none', 'affiliation': 'none',
'jid': 'newguy@localhost/_converse.js-290929789', 'jid': 'newguy@montague.lit/_converse.js-290929789',
'role': 'participant' 'role': 'participant'
}).tree(); }).tree();
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
@ -522,7 +522,7 @@
}); });
let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid)); let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="${contact_jid}" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="${contact_jid}" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<items node="eu.siacs.conversations.axolotl.devicelist"/>`+ `<items node="eu.siacs.conversations.axolotl.devicelist"/>`+
`</pubsub>`+ `</pubsub>`+
@ -594,7 +594,7 @@
const header = document.querySelector('.alert-danger .modal-title'); const header = document.querySelector('.alert-danger .modal-title');
expect(header.textContent).toBe("Error"); expect(header.textContent).toBe("Error");
expect(u.ancestor(header, '.modal-content').querySelector('.modal-body p').textContent.trim()) expect(u.ancestor(header, '.modal-content').querySelector('.modal-body p').textContent.trim())
.toBe("Sorry, we're unable to send an encrypted message because newguy@localhost requires you "+ .toBe("Sorry, we're unable to send an encrypted message because newguy@montague.lit requires you "+
"to be subscribed to their presence in order to see their OMEMO information"); "to be subscribed to their presence in order to see their OMEMO information");
expect(view.model.get('omemo_supported')).toBe(false); expect(view.model.get('omemo_supported')).toBe(false);
@ -611,7 +611,7 @@
let view, sent_stanza; let view, sent_stanza;
test_utils.createContacts(_converse, 'current', 1); test_utils.createContacts(_converse, 'current', 1);
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.waitUntil(() => initializedOMEMO(_converse)); await test_utils.waitUntil(() => initializedOMEMO(_converse));
const obj = await _converse.ChatBox.prototype.encryptMessage('This is an encrypted message from the contact'); const obj = await _converse.ChatBox.prototype.encryptMessage('This is an encrypted message from the contact');
@ -666,7 +666,7 @@
iq_stanza = await test_utils.waitUntil(() => bundleHasBeenPublished(_converse)); iq_stanza = await test_utils.waitUntil(() => bundleHasBeenPublished(_converse));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" type="set" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" type="set" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<publish node="eu.siacs.conversations.axolotl.bundles:123456789">`+ `<publish node="eu.siacs.conversations.axolotl.bundles:123456789">`+
`<item>`+ `<item>`+
@ -715,12 +715,12 @@
); );
test_utils.createContacts(_converse, 'current', 1); test_utils.createContacts(_converse, 'current', 1);
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
// Wait until own devices are fetched // Wait until own devices are fetched
let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, _converse.bare_jid)); let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, _converse.bare_jid));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="dummy@localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="romeo@montague.lit" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<items node="eu.siacs.conversations.axolotl.devicelist"/>`+ `<items node="eu.siacs.conversations.axolotl.devicelist"/>`+
`</pubsub>`+ `</pubsub>`+
@ -841,7 +841,7 @@
// Check that our own device is added again, but that removed // Check that our own device is added again, but that removed
// devices are not added. // devices are not added.
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute(`id`)}" type="set" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute(`id`)}" type="set" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<publish node="eu.siacs.conversations.axolotl.devicelist">`+ `<publish node="eu.siacs.conversations.axolotl.devicelist">`+
`<item>`+ `<item>`+
@ -889,10 +889,10 @@
); );
test_utils.createContacts(_converse, 'current'); test_utils.createContacts(_converse, 'current');
const contact_jid = mock.cur_names[3].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[3].replace(/ /g,'.').toLowerCase() + '@montague.lit';
let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, _converse.bare_jid)); let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, _converse.bare_jid));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="dummy@localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="romeo@montague.lit" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<items node="eu.siacs.conversations.axolotl.devicelist"/>`+ `<items node="eu.siacs.conversations.axolotl.devicelist"/>`+
`</pubsub>`+ `</pubsub>`+
@ -1042,7 +1042,7 @@
test_utils.createContacts(_converse, 'current', 1); test_utils.createContacts(_converse, 'current', 1);
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, _converse.bare_jid)); let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, _converse.bare_jid));
let stanza = $iq({ let stanza = $iq({
'from': contact_jid, 'from': contact_jid,
@ -1067,7 +1067,7 @@
iq_stanza = await test_utils.waitUntil(() => bundleHasBeenPublished(_converse)); iq_stanza = await test_utils.waitUntil(() => bundleHasBeenPublished(_converse));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" type="set" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" type="set" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<publish node="eu.siacs.conversations.axolotl.bundles:123456789">`+ `<publish node="eu.siacs.conversations.axolotl.bundles:123456789">`+
`<item>`+ `<item>`+
@ -1119,11 +1119,11 @@
test_utils.createContacts(_converse, 'current', 1); test_utils.createContacts(_converse, 'current', 1);
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, _converse.bare_jid)); let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, _converse.bare_jid));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="dummy@localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="romeo@montague.lit" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<items node="eu.siacs.conversations.axolotl.devicelist"/>`+ `<items node="eu.siacs.conversations.axolotl.devicelist"/>`+
`</pubsub>`+ `</pubsub>`+
@ -1149,7 +1149,7 @@
// Check that own device was published // Check that own device was published
iq_stanza = await test_utils.waitUntil(() => ownDeviceHasBeenPublished(_converse)); iq_stanza = await test_utils.waitUntil(() => ownDeviceHasBeenPublished(_converse));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute(`id`)}" type="set" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute(`id`)}" type="set" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<publish node="eu.siacs.conversations.axolotl.devicelist">`+ `<publish node="eu.siacs.conversations.axolotl.devicelist">`+
`<item>`+ `<item>`+
@ -1200,7 +1200,7 @@
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid)); iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="${contact_jid}" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="${contact_jid}" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<items node="eu.siacs.conversations.axolotl.devicelist"/>`+ `<items node="eu.siacs.conversations.axolotl.devicelist"/>`+
`</pubsub>`+ `</pubsub>`+
@ -1293,8 +1293,8 @@
'muc_unmoderated', 'muc_unmoderated',
'muc_nonanonymous' 'muc_nonanonymous'
]; ];
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy', features); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo', features);
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
await test_utils.waitUntil(() => initializedOMEMO(_converse)); await test_utils.waitUntil(() => initializedOMEMO(_converse));
const toolbar = view.el.querySelector('.chat-toolbar'); const toolbar = view.el.querySelector('.chat-toolbar');
@ -1314,22 +1314,22 @@
expect(u.hasClass('disabled', toggle)).toBe(false); expect(u.hasClass('disabled', toggle)).toBe(false);
expect(view.model.get('omemo_supported')).toBe(true); expect(view.model.get('omemo_supported')).toBe(true);
let contact_jid = 'newguy@localhost'; let contact_jid = 'newguy@montague.lit';
let stanza = $pres({ let stanza = $pres({
to: 'dummy@localhost/resource', to: 'romeo@montague.lit/orchard',
from: 'lounge@localhost/newguy' from: 'lounge@montague.lit/newguy'
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
'affiliation': 'none', 'affiliation': 'none',
'jid': 'newguy@localhost/_converse.js-290929789', 'jid': 'newguy@montague.lit/_converse.js-290929789',
'role': 'participant' 'role': 'participant'
}).tree(); }).tree();
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid)); let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="${contact_jid}" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="${contact_jid}" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<items node="eu.siacs.conversations.axolotl.devicelist"/>`+ `<items node="eu.siacs.conversations.axolotl.devicelist"/>`+
`</pubsub>`+ `</pubsub>`+
@ -1401,10 +1401,10 @@
// Someone enters the room who doesn't have OMEMO support, while we // Someone enters the room who doesn't have OMEMO support, while we
// have OMEMO activated... // have OMEMO activated...
contact_jid = 'oldguy@localhost'; contact_jid = 'oldguy@montague.lit';
stanza = $pres({ stanza = $pres({
to: 'dummy@localhost/resource', to: 'romeo@montague.lit/orchard',
from: 'lounge@localhost/oldguy' from: 'lounge@montague.lit/oldguy'
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
@ -1415,7 +1415,7 @@
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid)); iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="${contact_jid}" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="${contact_jid}" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<items node="eu.siacs.conversations.axolotl.devicelist"/>`+ `<items node="eu.siacs.conversations.axolotl.devicelist"/>`+
`</pubsub>`+ `</pubsub>`+
@ -1466,7 +1466,7 @@
test_utils.createContacts(_converse, 'current', 1); test_utils.createContacts(_converse, 'current', 1);
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid) await test_utils.openChatBoxFor(_converse, contact_jid)
// We simply emit, to avoid doing all the setup work // We simply emit, to avoid doing all the setup work
_converse.api.trigger('OMEMOInitialized'); _converse.api.trigger('OMEMOInitialized');
@ -1478,7 +1478,7 @@
await test_utils.waitUntil(() => u.isVisible(modal.el), 1000); await test_utils.waitUntil(() => u.isVisible(modal.el), 1000);
let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid)); let iq_stanza = await test_utils.waitUntil(() => deviceListFetched(_converse, contact_jid));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="max.frankfurter@localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="mercutio@montague.lit" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub"><items node="eu.siacs.conversations.axolotl.devicelist"/></pubsub>`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub"><items node="eu.siacs.conversations.axolotl.devicelist"/></pubsub>`+
`</iq>`); `</iq>`);
let stanza = $iq({ let stanza = $iq({
@ -1495,7 +1495,7 @@
await test_utils.waitUntil(() => u.isVisible(modal.el), 1000); await test_utils.waitUntil(() => u.isVisible(modal.el), 1000);
iq_stanza = await test_utils.waitUntil(() => bundleFetched(_converse, contact_jid, '555')); iq_stanza = await test_utils.waitUntil(() => bundleFetched(_converse, contact_jid, '555'));
expect(Strophe.serialize(iq_stanza)).toBe( expect(Strophe.serialize(iq_stanza)).toBe(
`<iq from="dummy@localhost" id="${iq_stanza.getAttribute("id")}" to="max.frankfurter@localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${iq_stanza.getAttribute("id")}" to="mercutio@montague.lit" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub">`+ `<pubsub xmlns="http://jabber.org/protocol/pubsub">`+
`<items node="eu.siacs.conversations.axolotl.bundles:555"/>`+ `<items node="eu.siacs.conversations.axolotl.bundles:555"/>`+
`</pubsub>`+ `</pubsub>`+

View File

@ -44,7 +44,7 @@
}); });
_converse.ping(); _converse.ping();
expect(sent_stanza.toLocaleString()).toBe( expect(sent_stanza.toLocaleString()).toBe(
`<iq id="${IQ_id}" to="localhost" type="get" xmlns="jabber:client">`+ `<iq id="${IQ_id}" to="montague.lit" type="get" xmlns="jabber:client">`+
`<ping xmlns="urn:xmpp:ping"/>`+ `<ping xmlns="urn:xmpp:ping"/>`+
`</iq>`); `</iq>`);
done(); done();

View File

@ -120,11 +120,11 @@
test_utils.openControlBox(); test_utils.openControlBox();
test_utils.createContacts(_converse, 'current'); // Create some contacts so that we can test positioning test_utils.createContacts(_converse, 'current'); // Create some contacts so that we can test positioning
const contact_jid = mock.cur_names[8].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[8].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const contact = _converse.roster.get(contact_jid); const contact = _converse.roster.get(contact_jid);
let stanza = u.toStanza(` let stanza = u.toStanza(`
<presence xmlns="jabber:client" <presence xmlns="jabber:client"
to="dummy@localhost/converse.js-21770972" to="romeo@montague.lit/converse.js-21770972"
from="${contact_jid}/priority-1-resource"> from="${contact_jid}/priority-1-resource">
<priority>1</priority> <priority>1</priority>
<c xmlns="http://jabber.org/protocol/caps" hash="sha-1" ext="voice-v1 camera-v1 video-v1" <c xmlns="http://jabber.org/protocol/caps" hash="sha-1" ext="voice-v1 camera-v1 video-v1"
@ -142,7 +142,7 @@
stanza = u.toStanza( stanza = u.toStanza(
'<presence xmlns="jabber:client"'+ '<presence xmlns="jabber:client"'+
' to="dummy@localhost/converse.js-21770972"'+ ' to="romeo@montague.lit/converse.js-21770972"'+
' from="'+contact_jid+'/priority-0-resource">'+ ' from="'+contact_jid+'/priority-0-resource">'+
' <status/>'+ ' <status/>'+
' <priority>0</priority>'+ ' <priority>0</priority>'+
@ -162,7 +162,7 @@
stanza = u.toStanza( stanza = u.toStanza(
'<presence xmlns="jabber:client"'+ '<presence xmlns="jabber:client"'+
' to="dummy@localhost/converse.js-21770972"'+ ' to="romeo@montague.lit/converse.js-21770972"'+
' from="'+contact_jid+'/priority-2-resource">'+ ' from="'+contact_jid+'/priority-2-resource">'+
' <priority>2</priority>'+ ' <priority>2</priority>'+
' <show>dnd</show>'+ ' <show>dnd</show>'+
@ -179,7 +179,7 @@
stanza = u.toStanza( stanza = u.toStanza(
'<presence xmlns="jabber:client"'+ '<presence xmlns="jabber:client"'+
' to="dummy@localhost/converse.js-21770972"'+ ' to="romeo@montague.lit/converse.js-21770972"'+
' from="'+contact_jid+'/priority-3-resource">'+ ' from="'+contact_jid+'/priority-3-resource">'+
' <priority>3</priority>'+ ' <priority>3</priority>'+
' <show>away</show>'+ ' <show>away</show>'+
@ -198,7 +198,7 @@
stanza = u.toStanza( stanza = u.toStanza(
'<presence xmlns="jabber:client"'+ '<presence xmlns="jabber:client"'+
' to="dummy@localhost/converse.js-21770972"'+ ' to="romeo@montague.lit/converse.js-21770972"'+
' from="'+contact_jid+'/older-priority-1-resource">'+ ' from="'+contact_jid+'/older-priority-1-resource">'+
' <priority>1</priority>'+ ' <priority>1</priority>'+
' <show>dnd</show>'+ ' <show>dnd</show>'+
@ -220,7 +220,7 @@
stanza = u.toStanza( stanza = u.toStanza(
'<presence xmlns="jabber:client"'+ '<presence xmlns="jabber:client"'+
' to="dummy@localhost/converse.js-21770972"'+ ' to="romeo@montague.lit/converse.js-21770972"'+
' type="unavailable"'+ ' type="unavailable"'+
' from="'+contact_jid+'/priority-3-resource">'+ ' from="'+contact_jid+'/priority-3-resource">'+
'</presence>'); '</presence>');
@ -238,7 +238,7 @@
stanza = u.toStanza( stanza = u.toStanza(
'<presence xmlns="jabber:client"'+ '<presence xmlns="jabber:client"'+
' to="dummy@localhost/converse.js-21770972"'+ ' to="romeo@montague.lit/converse.js-21770972"'+
' type="unavailable"'+ ' type="unavailable"'+
' from="'+contact_jid+'/priority-2-resource">'+ ' from="'+contact_jid+'/priority-2-resource">'+
'</presence>'); '</presence>');
@ -254,7 +254,7 @@
stanza = u.toStanza( stanza = u.toStanza(
'<presence xmlns="jabber:client"'+ '<presence xmlns="jabber:client"'+
' to="dummy@localhost/converse.js-21770972"'+ ' to="romeo@montague.lit/converse.js-21770972"'+
' type="unavailable"'+ ' type="unavailable"'+
' from="'+contact_jid+'/priority-1-resource">'+ ' from="'+contact_jid+'/priority-1-resource">'+
'</presence>'); '</presence>');
@ -268,7 +268,7 @@
stanza = u.toStanza( stanza = u.toStanza(
'<presence xmlns="jabber:client"'+ '<presence xmlns="jabber:client"'+
' to="dummy@localhost/converse.js-21770972"'+ ' to="romeo@montague.lit/converse.js-21770972"'+
' type="unavailable"'+ ' type="unavailable"'+
' from="'+contact_jid+'/older-priority-1-resource">'+ ' from="'+contact_jid+'/older-priority-1-resource">'+
'</presence>'); '</presence>');
@ -280,7 +280,7 @@
stanza = u.toStanza( stanza = u.toStanza(
'<presence xmlns="jabber:client"'+ '<presence xmlns="jabber:client"'+
' to="dummy@localhost/converse.js-21770972"'+ ' to="romeo@montague.lit/converse.js-21770972"'+
' type="unavailable"'+ ' type="unavailable"'+
' from="'+contact_jid+'/priority-0-resource">'+ ' from="'+contact_jid+'/priority-0-resource">'+
'</presence>'); '</presence>');

View File

@ -55,7 +55,7 @@
async function (done, _converse) { async function (done, _converse) {
var contact, sent_stanza, IQ_id, stanza, modal; var contact, sent_stanza, IQ_id, stanza, modal;
await test_utils.waitUntilDiscoConfirmed(_converse, 'localhost', [], ['vcard-temp']); await test_utils.waitUntilDiscoConfirmed(_converse, 'montague.lit', [], ['vcard-temp']);
await test_utils.waitUntil(() => _converse.xmppstatus.vcard.get('fullname'), 300); await test_utils.waitUntil(() => _converse.xmppstatus.vcard.get('fullname'), 300);
/* The process by which a user subscribes to a contact, including /* The process by which a user subscribes to a contact, including
* the interaction between roster items and subscription states. * the interaction between roster items and subscription states.
@ -177,7 +177,7 @@
expect(contact.subscribe).toHaveBeenCalled(); expect(contact.subscribe).toHaveBeenCalled();
expect(sent_stanza.toLocaleString()).toBe( // Strophe adds the xmlns attr (although not in spec) expect(sent_stanza.toLocaleString()).toBe( // Strophe adds the xmlns attr (although not in spec)
`<presence to="contact@example.org" type="subscribe" xmlns="jabber:client">`+ `<presence to="contact@example.org" type="subscribe" xmlns="jabber:client">`+
`<nick xmlns="http://jabber.org/protocol/nick">Max Mustermann</nick>`+ `<nick xmlns="http://jabber.org/protocol/nick">Romeo Montague</nick>`+
`</presence>` `</presence>`
); );
/* As a result, the user's server MUST initiate a second roster /* As a result, the user's server MUST initiate a second roster
@ -274,7 +274,7 @@
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
// Check that the IQ set was acknowledged. // Check that the IQ set was acknowledged.
expect(Strophe.serialize(sent_stanza)).toBe( // Strophe adds the xmlns attr (although not in spec) expect(Strophe.serialize(sent_stanza)).toBe( // Strophe adds the xmlns attr (although not in spec)
`<iq from="dummy@localhost/resource" id="${IQ_id}" type="result" xmlns="jabber:client"/>` `<iq from="romeo@montague.lit/orchard" id="${IQ_id}" type="result" xmlns="jabber:client"/>`
); );
expect(_converse.roster.updateContact).toHaveBeenCalled(); expect(_converse.roster.updateContact).toHaveBeenCalled();
@ -458,7 +458,7 @@
{ roster_groups: false }, { roster_groups: false },
async function (done, _converse) { async function (done, _converse) {
var sent_IQ, IQ_id, jid = 'annegreet.gomez@localhost'; var sent_IQ, IQ_id, jid = 'abram@montague.lit';
test_utils.openControlBox(_converse); test_utils.openControlBox(_converse);
test_utils.createContacts(_converse, 'current'); test_utils.createContacts(_converse, 'current');
spyOn(window, 'confirm').and.returnValue(true); spyOn(window, 'confirm').and.returnValue(true);
@ -499,7 +499,7 @@
expect(sent_IQ.toLocaleString()).toBe( expect(sent_IQ.toLocaleString()).toBe(
`<iq id="${IQ_id}" type="set" xmlns="jabber:client">`+ `<iq id="${IQ_id}" type="set" xmlns="jabber:client">`+
`<query xmlns="jabber:iq:roster">`+ `<query xmlns="jabber:iq:roster">`+
`<item jid="annegreet.gomez@localhost" subscription="remove"/>`+ `<item jid="abram@montague.lit" subscription="remove"/>`+
`</query>`+ `</query>`+
`</iq>`); `</iq>`);

View File

@ -78,12 +78,12 @@
`<enable jid="push-5@client.example" node="yxs32uqsflafdk3iuqo" xmlns="urn:xmpp:push:0"/>`+ `<enable jid="push-5@client.example" node="yxs32uqsflafdk3iuqo" xmlns="urn:xmpp:push:0"/>`+
`</iq>` `</iq>`
); );
const result = u.toStanza(`<iq type="result" id="${iq.getAttribute('id')}" to="dummy@localhost" />`); const result = u.toStanza(`<iq type="result" id="${iq.getAttribute('id')}" to="romeo@montague.lit" />`);
_converse.connection._dataRecv(test_utils.createRequest(result)); _converse.connection._dataRecv(test_utils.createRequest(result));
await test_utils.waitUntil(() => _converse.session.get('push_enabled')); await test_utils.waitUntil(() => _converse.session.get('push_enabled'));
expect(_converse.session.get('push_enabled').length).toBe(1); expect(_converse.session.get('push_enabled').length).toBe(1);
expect(_.includes(_converse.session.get('push_enabled'), 'dummy@localhost')).toBe(true); expect(_.includes(_converse.session.get('push_enabled'), 'romeo@montague.lit')).toBe(true);
test_utils.openAndEnterChatRoom(_converse, 'coven', 'chat.shakespeare.lit', 'oldhag'); test_utils.openAndEnterChatRoom(_converse, 'coven', 'chat.shakespeare.lit', 'oldhag');
await test_utils.waitUntilDiscoConfirmed( await test_utils.waitUntilDiscoConfirmed(

View File

@ -36,7 +36,7 @@
).pop()); ).pop());
}).then(stanza => { }).then(stanza => {
expect(Strophe.serialize(stanza)) expect(Strophe.serialize(stanza))
.toBe(`<iq from="dummy@localhost/resource" id="${stanza.getAttribute('id')}" to="coven@chat.shakespeare.lit" `+ .toBe(`<iq from="romeo@montague.lit/orchard" id="${stanza.getAttribute('id')}" to="coven@chat.shakespeare.lit" `+
`type="get" xmlns="jabber:client">`+ `type="get" xmlns="jabber:client">`+
`<query xmlns="jabber:iq:register"/></iq>`); `<query xmlns="jabber:iq:register"/></iq>`);
view = _converse.chatboxviews.get(room_jid); view = _converse.chatboxviews.get(room_jid);
@ -59,7 +59,7 @@
).pop()); ).pop());
}).then(stanza => { }).then(stanza => {
expect(Strophe.serialize(stanza)).toBe( expect(Strophe.serialize(stanza)).toBe(
`<iq from="dummy@localhost/resource" id="${stanza.getAttribute('id')}" to="coven@chat.shakespeare.lit" type="set" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${stanza.getAttribute('id')}" to="coven@chat.shakespeare.lit" type="set" xmlns="jabber:client">`+
`<query xmlns="jabber:iq:register">`+ `<query xmlns="jabber:iq:register">`+
`<x type="submit" xmlns="jabber:x:data">`+ `<x type="submit" xmlns="jabber:x:data">`+
`<field var="FORM_TYPE"><value>http://jabber.org/protocol/muc#register</value></field>`+ `<field var="FORM_TYPE"><value>http://jabber.org/protocol/muc#register</value></field>`+
@ -94,7 +94,7 @@
const features_stanza = $iq({ const features_stanza = $iq({
'from': room_jid, 'from': room_jid,
'id': stanza.getAttribute('id'), 'id': stanza.getAttribute('id'),
'to': 'dummy@localhost/desktop', 'to': 'romeo@montague.lit/desktop',
'type': 'result' 'type': 'result'
}).c('query', { 'xmlns': 'http://jabber.org/protocol/disco#info'}) }).c('query', { 'xmlns': 'http://jabber.org/protocol/disco#info'})
.c('identity', { .c('identity', {
@ -129,7 +129,7 @@
).pop()); ).pop());
}).then(stanza => { }).then(stanza => {
expect(Strophe.serialize(stanza)) expect(Strophe.serialize(stanza))
.toBe(`<iq from="dummy@localhost/resource" id="${stanza.getAttribute('id')}" to="coven@chat.shakespeare.lit" `+ .toBe(`<iq from="romeo@montague.lit/orchard" id="${stanza.getAttribute('id')}" to="coven@chat.shakespeare.lit" `+
`type="get" xmlns="jabber:client">`+ `type="get" xmlns="jabber:client">`+
`<query xmlns="jabber:iq:register"/></iq>`); `<query xmlns="jabber:iq:register"/></iq>`);
view = _converse.chatboxviews.get(room_jid); view = _converse.chatboxviews.get(room_jid);
@ -152,7 +152,7 @@
).pop()); ).pop());
}).then(stanza => { }).then(stanza => {
expect(Strophe.serialize(stanza)).toBe( expect(Strophe.serialize(stanza)).toBe(
`<iq from="dummy@localhost/resource" id="${stanza.getAttribute('id')}" to="coven@chat.shakespeare.lit" type="set" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${stanza.getAttribute('id')}" to="coven@chat.shakespeare.lit" type="set" xmlns="jabber:client">`+
`<query xmlns="jabber:iq:register">`+ `<query xmlns="jabber:iq:register">`+
`<x type="submit" xmlns="jabber:x:data">`+ `<x type="submit" xmlns="jabber:x:data">`+
`<field var="FORM_TYPE"><value>http://jabber.org/protocol/muc#register</value></field>`+ `<field var="FORM_TYPE"><value>http://jabber.org/protocol/muc#register</value></field>`+

View File

@ -23,7 +23,7 @@
let room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room"); let room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
expect(room_els.length).toBe(1); expect(room_els.length).toBe(1);
expect(room_els[0].innerText).toBe('room@conference.shakespeare.lit'); expect(room_els[0].innerText).toBe('room@conference.shakespeare.lit');
await test_utils.openChatRoom(_converse, 'lounge', 'localhost', 'dummy'); await test_utils.openChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room"); room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
expect(room_els.length).toBe(2); expect(room_els.length).toBe(2);
@ -31,11 +31,11 @@
view.close(); view.close();
room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room"); room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
expect(room_els.length).toBe(1); expect(room_els.length).toBe(1);
expect(room_els[0].innerText).toBe('lounge@localhost'); expect(room_els[0].innerText).toBe('lounge@montague.lit');
list = controlbox.el.querySelector('div.rooms-list-container'); list = controlbox.el.querySelector('div.rooms-list-container');
test_utils.waitUntil(() => _.includes(list.classList, 'hidden')); test_utils.waitUntil(() => _.includes(list.classList, 'hidden'));
view = _converse.chatboxviews.get('lounge@localhost'); view = _converse.chatboxviews.get('lounge@montague.lit');
view.close(); view.close();
room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room"); room_els = _converse.rooms_list_view.el.querySelectorAll(".open-room");
expect(room_els.length).toBe(0); expect(room_els.length).toBe(0);
@ -51,18 +51,18 @@
{'connection': ['send']}, ['rosterGroupsFetched', 'chatBoxesFetched'], {'view_mode': 'fullscreen'}, {'connection': ['send']}, ['rosterGroupsFetched', 'chatBoxesFetched'], {'view_mode': 'fullscreen'},
async function (done, _converse) { async function (done, _converse) {
await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy'); await test_utils.openAndEnterChatRoom(_converse, 'lounge', 'montague.lit', 'romeo');
const view = _converse.chatboxviews.get('lounge@localhost'); const view = _converse.chatboxviews.get('lounge@montague.lit');
const contact_jid = 'newguy@localhost'; const contact_jid = 'newguy@montague.lit';
let stanza = $pres({ let stanza = $pres({
to: 'dummy@localhost/resource', to: 'romeo@montague.lit/orchard',
from: 'lounge@localhost/newguy' from: 'lounge@montague.lit/newguy'
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
'affiliation': 'none', 'affiliation': 'none',
'jid': 'newguy@localhost/_converse.js-290929789', 'jid': 'newguy@montague.lit/_converse.js-290929789',
'role': 'participant' 'role': 'participant'
}).tree(); }).tree();
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
@ -82,7 +82,7 @@
).pop() ).pop()
); );
expect(Strophe.serialize(call.args[0])).toBe( expect(Strophe.serialize(call.args[0])).toBe(
`<iq from="dummy@localhost/resource" id="${call.args[0].getAttribute('id')}" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${call.args[0].getAttribute('id')}" type="get" xmlns="jabber:client">`+
'<pubsub xmlns="http://jabber.org/protocol/pubsub">'+ '<pubsub xmlns="http://jabber.org/protocol/pubsub">'+
'<items node="storage:bookmarks"/>'+ '<items node="storage:bookmarks"/>'+
'</pubsub>'+ '</pubsub>'+
@ -95,7 +95,7 @@
.c('storage', {'xmlns': 'storage:bookmarks'}) .c('storage', {'xmlns': 'storage:bookmarks'})
.c('conference', { .c('conference', {
'name': 'Bookmarked Lounge', 'name': 'Bookmarked Lounge',
'jid': 'lounge@localhost' 'jid': 'lounge@montague.lit'
}); });
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
@ -161,7 +161,7 @@
const features_stanza = $iq({ const features_stanza = $iq({
'from': 'coven@chat.shakespeare.lit', 'from': 'coven@chat.shakespeare.lit',
'id': IQ_id, 'id': IQ_id,
'to': 'dummy@localhost/desktop', 'to': 'romeo@montague.lit/desktop',
'type': 'result' 'type': 'result'
}) })
.c('query', { 'xmlns': 'http://jabber.org/protocol/disco#info'}) .c('query', { 'xmlns': 'http://jabber.org/protocol/disco#info'})
@ -222,13 +222,13 @@
'Not moderated - Participants entering this groupchat can write right away' 'Not moderated - Participants entering this groupchat can write right away'
); );
presence = $pres({ presence = $pres({
to: 'dummy@localhost/_converse.js-29092160', to: 'romeo@montague.lit/_converse.js-29092160',
from: 'coven@chat.shakespeare.lit/newguy' from: 'coven@chat.shakespeare.lit/newguy'
}) })
.c('x', {xmlns: Strophe.NS.MUC_USER}) .c('x', {xmlns: Strophe.NS.MUC_USER})
.c('item', { .c('item', {
'affiliation': 'none', 'affiliation': 'none',
'jid': 'newguy@localhost/_converse.js-290929789', 'jid': 'newguy@montague.lit/_converse.js-290929789',
'role': 'participant' 'role': 'participant'
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
@ -282,13 +282,13 @@
await test_utils.openAndEnterChatRoom(_converse, 'kitchen', 'conference.shakespeare.lit', 'romeo'); await test_utils.openAndEnterChatRoom(_converse, 'kitchen', 'conference.shakespeare.lit', 'romeo');
const view = _converse.chatboxviews.get(room_jid); const view = _converse.chatboxviews.get(room_jid);
view.model.set({'minimized': true}); view.model.set({'minimized': true});
const contact_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@montague.lit';
const nick = mock.chatroom_names[0]; const nick = mock.chatroom_names[0];
await view.model.onMessage( await view.model.onMessage(
$msg({ $msg({
from: room_jid+'/'+nick, from: room_jid+'/'+nick,
id: (new Date()).getTime(), id: (new Date()).getTime(),
to: 'dummy@localhost', to: 'romeo@montague.lit',
type: 'groupchat' type: 'groupchat'
}).c('body').t('foo').tree()); }).c('body').t('foo').tree());
@ -301,7 +301,7 @@
$msg({ $msg({
from: room_jid+'/'+nick, from: room_jid+'/'+nick,
id: (new Date()).getTime(), id: (new Date()).getTime(),
to: 'dummy@localhost', to: 'romeo@montague.lit',
type: 'groupchat' type: 'groupchat'
}).c('body').t('romeo: Your attention is required').tree() }).c('body').t('romeo: Your attention is required').tree()
); );
@ -313,7 +313,7 @@
$msg({ $msg({
from: room_jid+'/'+nick, from: room_jid+'/'+nick,
id: (new Date()).getTime(), id: (new Date()).getTime(),
to: 'dummy@localhost', to: 'romeo@montague.lit',
type: 'groupchat' type: 'groupchat'
}).c('body').t('romeo: and another thing...').tree() }).c('body').t('romeo: and another thing...').tree()
); );

View File

@ -150,32 +150,30 @@
const contacts = await test_utils.waitUntil(() => (sizzle('li', roster).filter(u.isVisible).length === 15), 600); const contacts = await test_utils.waitUntil(() => (sizzle('li', roster).filter(u.isVisible).length === 15), 600);
expect(sizzle('ul.roster-group-contacts', roster).filter(u.isVisible).length).toBe(5); expect(sizzle('ul.roster-group-contacts', roster).filter(u.isVisible).length).toBe(5);
filter.value = "candice"; filter.value = "juliet";
u.triggerEvent(filter, "keydown", "KeyboardEvent"); u.triggerEvent(filter, "keydown", "KeyboardEvent");
await test_utils.waitUntil(() => (sizzle('li', roster).filter(u.isVisible).length === 1), 600); await test_utils.waitUntil(() => (sizzle('li', roster).filter(u.isVisible).length === 1), 600);
// Only one roster contact is now visible // Only one roster contact is now visible
let visible_contacts = sizzle('li', roster).filter(u.isVisible); let visible_contacts = sizzle('li', roster).filter(u.isVisible);
expect(visible_contacts.length).toBe(1); expect(visible_contacts.length).toBe(1);
expect(visible_contacts.pop().textContent.trim()).toBe('Candice van der Knijff'); expect(visible_contacts.pop().textContent.trim()).toBe('Juliet Capulet');
// Only one foster group is still visible // Only one foster group is still visible
expect(sizzle('.roster-group', roster).filter(u.isVisible).length).toBe(1); expect(sizzle('.roster-group', roster).filter(u.isVisible).length).toBe(1);
const visible_group = sizzle('.roster-group', roster).filter(u.isVisible).pop(); const visible_group = sizzle('.roster-group', roster).filter(u.isVisible).pop();
expect(visible_group.querySelector('a.group-toggle').textContent.trim()).toBe('colleagues'); expect(visible_group.querySelector('a.group-toggle').textContent.trim()).toBe('colleagues');
filter = _converse.rosterview.el.querySelector('.roster-filter'); filter = _converse.rosterview.el.querySelector('.roster-filter');
filter.value = "an"; filter.value = "j";
u.triggerEvent(filter, "keydown", "KeyboardEvent"); u.triggerEvent(filter, "keydown", "KeyboardEvent");
await test_utils.waitUntil(() => (sizzle('li', roster).filter(u.isVisible).length === 5), 600); await test_utils.waitUntil(() => (sizzle('li', roster).filter(u.isVisible).length === 2), 700);
visible_contacts = sizzle('li', roster).filter(u.isVisible); visible_contacts = sizzle('li', roster).filter(u.isVisible);
expect(visible_contacts.length).toBe(5); expect(visible_contacts.length).toBe(2);
let visible_groups = sizzle('.roster-group', roster).filter(u.isVisible).map(el => el.querySelector('a.group-toggle')); let visible_groups = sizzle('.roster-group', roster).filter(u.isVisible).map(el => el.querySelector('a.group-toggle'));
expect(visible_groups.length).toBe(4); expect(visible_groups.length).toBe(2);
expect(visible_groups[0].textContent.trim()).toBe('colleagues'); expect(visible_groups[0].textContent.trim()).toBe('colleagues');
expect(visible_groups[1].textContent.trim()).toBe('Family'); expect(visible_groups[1].textContent.trim()).toBe('Ungrouped');
expect(visible_groups[2].textContent.trim()).toBe('friends & acquaintences');
expect(visible_groups[3].textContent.trim()).toBe('ænemies');
filter = _converse.rosterview.el.querySelector('.roster-filter'); filter = _converse.rosterview.el.querySelector('.roster-filter');
filter.value = "xxx"; filter.value = "xxx";
@ -205,35 +203,33 @@
_converse.rosterview.filter_view.delegateEvents(); _converse.rosterview.filter_view.delegateEvents();
await test_utils.waitUntil(() => (sizzle('li', roster).filter(u.isVisible).length === 15), 600); await test_utils.waitUntil(() => (sizzle('li', roster).filter(u.isVisible).length === 15), 600);
filter.value = "an"; filter.value = "la";
u.triggerEvent(filter, "keydown", "KeyboardEvent"); u.triggerEvent(filter, "keydown", "KeyboardEvent");
await test_utils.waitUntil(() => (sizzle('li', roster).filter(u.isVisible).length === 5), 600); await test_utils.waitUntil(() => (sizzle('li', roster).filter(u.isVisible).length === 3), 600);
// Five roster contact is now visible // Five roster contact is now visible
const visible_contacts = sizzle('li', roster).filter(u.isVisible); const visible_contacts = sizzle('li', roster).filter(u.isVisible);
expect(visible_contacts.length).toBe(5); expect(visible_contacts.length).toBe(3);
let visible_groups = sizzle('.roster-group', roster).filter(u.isVisible).map(el => el.querySelector('a.group-toggle')); let visible_groups = sizzle('.roster-group', roster).filter(u.isVisible).map(el => el.querySelector('a.group-toggle'));
expect(visible_groups.length).toBe(4); expect(visible_groups.length).toBe(3);
expect(visible_groups[0].textContent.trim()).toBe('colleagues'); expect(visible_groups[0].textContent.trim()).toBe('colleagues');
expect(visible_groups[1].textContent.trim()).toBe('Family'); expect(visible_groups[1].textContent.trim()).toBe('Family');
expect(visible_groups[2].textContent.trim()).toBe('friends & acquaintences'); expect(visible_groups[2].textContent.trim()).toBe('friends & acquaintences');
expect(visible_groups[3].textContent.trim()).toBe('ænemies');
_converse.roster.create({ _converse.roster.create({
jid: 'latecomer@localhost', jid: 'valentine@montague.lit',
subscription: 'both', subscription: 'both',
ask: null, ask: null,
groups: ['newgroup'], groups: ['newgroup'],
fullname: 'Marty McLatecomer' fullname: 'Valentine'
}); });
await test_utils.waitUntil(() => sizzle('.roster-group[data-group="newgroup"] li', roster).length, 300); await test_utils.waitUntil(() => sizzle('.roster-group[data-group="newgroup"] li', roster).length, 300);
visible_groups = sizzle('.roster-group', roster).filter(u.isVisible).map(el => el.querySelector('a.group-toggle')); visible_groups = sizzle('.roster-group', roster).filter(u.isVisible).map(el => el.querySelector('a.group-toggle'));
// The "newgroup" group doesn't appear // The "newgroup" group doesn't appear
expect(visible_groups.length).toBe(4); expect(visible_groups.length).toBe(3);
expect(visible_groups[0].textContent.trim()).toBe('colleagues'); expect(visible_groups[0].textContent.trim()).toBe('colleagues');
expect(visible_groups[1].textContent.trim()).toBe('Family'); expect(visible_groups[1].textContent.trim()).toBe('Family');
expect(visible_groups[2].textContent.trim()).toBe('friends & acquaintences'); expect(visible_groups[2].textContent.trim()).toBe('friends & acquaintences');
expect(visible_groups[3].textContent.trim()).toBe('ænemies');
expect(roster.querySelectorAll('.roster-group').length).toBe(6); expect(roster.querySelectorAll('.roster-group').length).toBe(6);
done(); done();
})); }));
@ -310,9 +306,9 @@
async function (done, _converse) { async function (done, _converse) {
test_utils.createGroupedContacts(_converse); test_utils.createGroupedContacts(_converse);
let jid = mock.cur_names[3].replace(/ /g,'.').toLowerCase() + '@localhost'; let jid = mock.cur_names[3].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'online'); _converse.roster.get(jid).presence.set('show', 'online');
jid = mock.cur_names[4].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[4].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'dnd'); _converse.roster.get(jid).presence.set('show', 'dnd');
test_utils.openControlBox(); test_utils.openControlBox();
const button = _converse.rosterview.el.querySelector('span[data-type="state"]'); const button = _converse.rosterview.el.querySelector('span[data-type="state"]');
@ -325,13 +321,13 @@
u.triggerEvent(filter, 'change'); u.triggerEvent(filter, 'change');
await test_utils.waitUntil(() => sizzle('li', roster).filter(u.isVisible).length === 1, 900); await test_utils.waitUntil(() => sizzle('li', roster).filter(u.isVisible).length === 1, 900);
expect(sizzle('li', roster).filter(u.isVisible).pop().textContent.trim()).toBe('Rinse Sommer'); expect(sizzle('li', roster).filter(u.isVisible).pop().textContent.trim()).toBe('Lord Montague');
await test_utils.waitUntil(() => sizzle('ul.roster-group-contacts', roster).filter(u.isVisible).length === 1, 900); await test_utils.waitUntil(() => sizzle('ul.roster-group-contacts', roster).filter(u.isVisible).length === 1, 900);
const ul = sizzle('ul.roster-group-contacts', roster).filter(u.isVisible).pop(); const ul = sizzle('ul.roster-group-contacts', roster).filter(u.isVisible).pop();
expect(ul.parentElement.firstElementChild.textContent.trim()).toBe('friends & acquaintences'); expect(ul.parentElement.firstElementChild.textContent.trim()).toBe('friends & acquaintences');
filter.value = "dnd"; filter.value = "dnd";
u.triggerEvent(filter, 'change'); u.triggerEvent(filter, 'change');
await test_utils.waitUntil(() => sizzle('li', roster).filter(u.isVisible).pop().textContent.trim() === 'Annegreet Gomez', 900); await test_utils.waitUntil(() => sizzle('li', roster).filter(u.isVisible).pop().textContent.trim() === 'Friar Laurence', 900);
expect(sizzle('ul.roster-group-contacts', roster).filter(u.isVisible).length).toBe(1); expect(sizzle('ul.roster-group-contacts', roster).filter(u.isVisible).length).toBe(1);
done(); done();
})); }));
@ -389,7 +385,7 @@
test_utils.openControlBox(); test_utils.openControlBox();
_converse.roster.create({ _converse.roster.create({
jid: 'groupchanger@localhost', jid: 'groupchanger@montague.lit',
subscription: 'both', subscription: 'both',
ask: null, ask: null,
groups: ['firstgroup'], groups: ['firstgroup'],
@ -408,7 +404,7 @@
}, 1000); }, 1000);
expect(group_titles).toEqual(['firstgroup']); expect(group_titles).toEqual(['firstgroup']);
const contact = _converse.roster.get('groupchanger@localhost'); const contact = _converse.roster.get('groupchanger@montague.lit');
contact.set({'groups': ['secondgroup']}); contact.set({'groups': ['secondgroup']});
group_titles = await test_utils.waitUntil(() => { group_titles = await test_utils.waitUntil(() => {
const toggles = sizzle('.roster-group[data-group="secondgroup"] a.group-toggle', _converse.rosterview.el); const toggles = sizzle('.roster-group[data-group="secondgroup"] a.group-toggle', _converse.rosterview.el);
@ -433,7 +429,7 @@
_converse.rosterview.render(); _converse.rosterview.render();
for (var i=0; i<mock.cur_names.length; i++) { for (var i=0; i<mock.cur_names.length; i++) {
_converse.roster.create({ _converse.roster.create({
jid: mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost', jid: mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'both', subscription: 'both',
ask: null, ask: null,
groups: groups, groups: groups,
@ -469,7 +465,7 @@
j = i; j = i;
for (i=j; i<j+groups[name]; i++) { for (i=j; i<j+groups[name]; i++) {
_converse.roster.create({ _converse.roster.create({
jid: mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost', jid: mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'both', subscription: 'both',
ask: null, ask: null,
groups: name === 'ungrouped'? [] : [name], groups: name === 'ungrouped'? [] : [name],
@ -518,7 +514,7 @@
spyOn(_converse.rosterview, 'update').and.callThrough(); spyOn(_converse.rosterview, 'update').and.callThrough();
test_utils.openControlBox(); test_utils.openControlBox();
_converse.roster.create({ _converse.roster.create({
jid: mock.pend_names[0].replace(/ /g,'.').toLowerCase() + '@localhost', jid: mock.pend_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'none', subscription: 'none',
ask: 'subscribe', ask: 'subscribe',
fullname: mock.pend_names[0] fullname: mock.pend_names[0]
@ -566,7 +562,7 @@
_addContacts(_converse); _addContacts(_converse);
const name = mock.pend_names[0]; const name = mock.pend_names[0];
const jid = name.replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = name.replace(/ /g,'.').toLowerCase() + '@montague.lit';
const contact = _converse.roster.get(jid); const contact = _converse.roster.get(jid);
var sent_IQ; var sent_IQ;
spyOn(window, 'confirm').and.returnValue(true); spyOn(window, 'confirm').and.returnValue(true);
@ -585,7 +581,7 @@
expect(sent_IQ.toLocaleString()).toBe( expect(sent_IQ.toLocaleString()).toBe(
`<iq type="set" xmlns="jabber:client">`+ `<iq type="set" xmlns="jabber:client">`+
`<query xmlns="jabber:iq:roster">`+ `<query xmlns="jabber:iq:roster">`+
`<item jid="suleyman.van.beusichem@localhost" subscription="remove"/>`+ `<item jid="lord.capulet@montague.lit" subscription="remove"/>`+
`</query>`+ `</query>`+
`</iq>`); `</iq>`);
done(); done();
@ -599,7 +595,7 @@
test_utils.openControlBox(); test_utils.openControlBox();
const name = mock.pend_names[0]; const name = mock.pend_names[0];
_converse.roster.create({ _converse.roster.create({
jid: name.replace(/ /g,'.').toLowerCase() + '@localhost', jid: name.replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'none', subscription: 'none',
ask: 'subscribe', ask: 'subscribe',
fullname: name fullname: name
@ -619,11 +615,11 @@
expect(Strophe.serialize(iq)).toBe( expect(Strophe.serialize(iq)).toBe(
`<iq id="${iq.getAttribute('id')}" type="set" xmlns="jabber:client">`+ `<iq id="${iq.getAttribute('id')}" type="set" xmlns="jabber:client">`+
`<query xmlns="jabber:iq:roster">`+ `<query xmlns="jabber:iq:roster">`+
`<item jid="suleyman.van.beusichem@localhost" subscription="remove"/>`+ `<item jid="lord.capulet@montague.lit" subscription="remove"/>`+
`</query>`+ `</query>`+
`</iq>`); `</iq>`);
const stanza = u.toStanza(`<iq id="${iq.getAttribute('id')}" to="dummy@localhost/resource" type="result"/>`); const stanza = u.toStanza(`<iq id="${iq.getAttribute('id')}" to="romeo@montague.lit/orchard" type="result"/>`);
_converse.connection._dataRecv(test_utils.createRequest(stanza)); _converse.connection._dataRecv(test_utils.createRequest(stanza));
await test_utils.waitUntil(() => !u.isVisible(_converse.rosterview.get('Pending contacts').el)); await test_utils.waitUntil(() => !u.isVisible(_converse.rosterview.get('Pending contacts').el));
done(); done();
@ -655,7 +651,7 @@
spyOn(_converse.rosterview, 'update').and.callThrough(); spyOn(_converse.rosterview, 'update').and.callThrough();
for (i=0; i<mock.pend_names.length; i++) { for (i=0; i<mock.pend_names.length; i++) {
_converse.roster.create({ _converse.roster.create({
jid: mock.pend_names[i].replace(/ /g,'.').toLowerCase() + '@localhost', jid: mock.pend_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'none', subscription: 'none',
ask: 'subscribe', ask: 'subscribe',
fullname: mock.pend_names[i] fullname: mock.pend_names[i]
@ -697,8 +693,8 @@
_addContacts(_converse); _addContacts(_converse);
await test_utils.waitUntil(() => sizzle('li', _converse.rosterview.el).filter(u.isVisible).length, 500); await test_utils.waitUntil(() => sizzle('li', _converse.rosterview.el).filter(u.isVisible).length, 500);
_converse.rosterview.el.querySelector('.roster-group a.group-toggle').click(); _converse.rosterview.el.querySelector('.roster-group a.group-toggle').click();
const name = "Max Mustermann"; const name = "Romeo Montague";
const jid = name.replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = name.replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.create({ _converse.roster.create({
ask: null, ask: null,
fullname: name, fullname: name,
@ -721,7 +717,7 @@
spyOn(_converse.rosterview, 'update').and.callThrough(); spyOn(_converse.rosterview, 'update').and.callThrough();
for (i=0; i<mock.cur_names.length; i++) { for (i=0; i<mock.cur_names.length; i++) {
_converse.roster.create({ _converse.roster.create({
jid: mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost', jid: mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'both', subscription: 'both',
ask: null, ask: null,
fullname: mock.cur_names[i] fullname: mock.cur_names[i]
@ -746,7 +742,7 @@
_addContacts(_converse); _addContacts(_converse);
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('li').length); await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('li').length);
const name = mock.cur_names[0]; const name = mock.cur_names[0];
const jid = name.replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = name.replace(/ /g,'.').toLowerCase() + '@montague.lit';
const contact = _converse.roster.get(jid); const contact = _converse.roster.get(jid);
spyOn(window, 'confirm').and.returnValue(true); spyOn(window, 'confirm').and.returnValue(true);
spyOn(contact, 'removeFromRoster').and.callThrough(); spyOn(contact, 'removeFromRoster').and.callThrough();
@ -761,7 +757,7 @@
expect(window.confirm).toHaveBeenCalled(); expect(window.confirm).toHaveBeenCalled();
expect(sent_IQ.toLocaleString()).toBe( expect(sent_IQ.toLocaleString()).toBe(
`<iq type="set" xmlns="jabber:client">`+ `<iq type="set" xmlns="jabber:client">`+
`<query xmlns="jabber:iq:roster"><item jid="max.frankfurter@localhost" subscription="remove"/></query>`+ `<query xmlns="jabber:iq:roster"><item jid="mercutio@montague.lit" subscription="remove"/></query>`+
`</iq>`); `</iq>`);
expect(contact.removeFromRoster).toHaveBeenCalled(); expect(contact.removeFromRoster).toHaveBeenCalled();
await test_utils.waitUntil(() => sizzle(".open-chat:contains('"+name+"')", _converse.rosterview.el).length === 0); await test_utils.waitUntil(() => sizzle(".open-chat:contains('"+name+"')", _converse.rosterview.el).length === 0);
@ -777,7 +773,7 @@
var name = mock.cur_names[0]; var name = mock.cur_names[0];
var contact; var contact;
contact = _converse.roster.create({ contact = _converse.roster.create({
jid: name.replace(/ /g,'.').toLowerCase() + '@localhost', jid: name.replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'both', subscription: 'both',
ask: null, ask: null,
fullname: name fullname: name
@ -808,7 +804,7 @@
spyOn(_converse.rosterview, 'update').and.callThrough(); spyOn(_converse.rosterview, 'update').and.callThrough();
const roster = _converse.rosterview.el; const roster = _converse.rosterview.el;
for (let i=0; i<mock.cur_names.length; i++) { for (let i=0; i<mock.cur_names.length; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'online'); _converse.roster.get(jid).presence.set('show', 'online');
expect(_converse.rosterview.update).toHaveBeenCalled(); expect(_converse.rosterview.update).toHaveBeenCalled();
// Check that they are sorted alphabetically // Check that they are sorted alphabetically
@ -830,7 +826,7 @@
spyOn(_converse.rosterview, 'update').and.callThrough(); spyOn(_converse.rosterview, 'update').and.callThrough();
const roster = _converse.rosterview.el; const roster = _converse.rosterview.el;
for (let i=0; i<mock.cur_names.length; i++) { for (let i=0; i<mock.cur_names.length; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'dnd'); _converse.roster.get(jid).presence.set('show', 'dnd');
expect(_converse.rosterview.update).toHaveBeenCalled(); expect(_converse.rosterview.update).toHaveBeenCalled();
// Check that they are sorted alphabetically // Check that they are sorted alphabetically
@ -852,7 +848,7 @@
spyOn(_converse.rosterview, 'update').and.callThrough(); spyOn(_converse.rosterview, 'update').and.callThrough();
const roster = _converse.rosterview.el; const roster = _converse.rosterview.el;
for (let i=0; i<mock.cur_names.length; i++) { for (let i=0; i<mock.cur_names.length; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'away'); _converse.roster.get(jid).presence.set('show', 'away');
expect(_converse.rosterview.update).toHaveBeenCalled(); expect(_converse.rosterview.update).toHaveBeenCalled();
// Check that they are sorted alphabetically // Check that they are sorted alphabetically
@ -874,7 +870,7 @@
spyOn(_converse.rosterview, 'update').and.callThrough(); spyOn(_converse.rosterview, 'update').and.callThrough();
const roster = _converse.rosterview.el; const roster = _converse.rosterview.el;
for (var i=0; i<mock.cur_names.length; i++) { for (var i=0; i<mock.cur_names.length; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'xa'); _converse.roster.get(jid).presence.set('show', 'xa');
expect(_converse.rosterview.update).toHaveBeenCalled(); expect(_converse.rosterview.update).toHaveBeenCalled();
// Check that they are sorted alphabetically // Check that they are sorted alphabetically
@ -898,7 +894,7 @@
spyOn(_converse.rosterview, 'update').and.callThrough(); spyOn(_converse.rosterview, 'update').and.callThrough();
var roster = _converse.rosterview.el; var roster = _converse.rosterview.el;
for (var i=0; i<mock.cur_names.length; i++) { for (var i=0; i<mock.cur_names.length; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'unavailable'); _converse.roster.get(jid).presence.set('show', 'unavailable');
expect(_converse.rosterview.update).toHaveBeenCalled(); expect(_converse.rosterview.update).toHaveBeenCalled();
// Check that they are sorted alphabetically // Check that they are sorted alphabetically
@ -920,27 +916,27 @@
await test_utils.waitUntil(() => sizzle('.roster-group li', _converse.rosterview.el).length, 700); await test_utils.waitUntil(() => sizzle('.roster-group li', _converse.rosterview.el).length, 700);
let i, jid; let i, jid;
for (i=0; i<3; i++) { for (i=0; i<3; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'online'); _converse.roster.get(jid).presence.set('show', 'online');
} }
for (i=3; i<6; i++) { for (i=3; i<6; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'dnd'); _converse.roster.get(jid).presence.set('show', 'dnd');
} }
for (i=6; i<9; i++) { for (i=6; i<9; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'away'); _converse.roster.get(jid).presence.set('show', 'away');
} }
for (i=9; i<12; i++) { for (i=9; i<12; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'xa'); _converse.roster.get(jid).presence.set('show', 'xa');
} }
for (i=12; i<15; i++) { for (i=12; i<15; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
_converse.roster.get(jid).presence.set('show', 'unavailable'); _converse.roster.get(jid).presence.set('show', 'unavailable');
} }
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('li.online').length) await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('li.online').length)
await test_utils.waitUntil(() => _converse.rosterview.el.querySelector('li:first-child').textContent.trim() === 'Candice van der Knijff', 900); await test_utils.waitUntil(() => _converse.rosterview.el.querySelector('li:first-child').textContent.trim() === 'Juliet Capulet', 900);
const contacts = _converse.rosterview.el.querySelectorAll('.current-xmpp-contact'); const contacts = _converse.rosterview.el.querySelectorAll('.current-xmpp-contact');
for (i=0; i<3; i++) { for (i=0; i<3; i++) {
expect(u.hasClass('online', contacts[i])).toBe(true); expect(u.hasClass('online', contacts[i])).toBe(true);
@ -1007,6 +1003,7 @@
null, ['rosterGroupsFetched'], {}, null, ['rosterGroupsFetched'], {},
async function (done, _converse) { async function (done, _converse) {
test_utils.openControlBox();
let names = []; let names = [];
const addName = function (item) { const addName = function (item) {
if (!u.hasClass('request-actions', item)) { if (!u.hasClass('request-actions', item)) {
@ -1014,14 +1011,13 @@
} }
}; };
spyOn(_converse.rosterview, 'update').and.callThrough(); spyOn(_converse.rosterview, 'update').and.callThrough();
spyOn(_converse.controlboxtoggle, 'showControlBox').and.callThrough();
for (let i=0; i<mock.req_names.length; i++) { for (let i=0; i<mock.req_names.length; i++) {
_converse.roster.create({ _converse.roster.create({
jid: mock.req_names[i].replace(/ /g,'.').toLowerCase() + '@localhost', jid: mock.req_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'none', subscription: 'none',
ask: null, ask: null,
requesting: true, requesting: true,
fullname: mock.req_names[i] nickname: mock.req_names[i]
}); });
} }
await test_utils.waitUntil(() => _converse.rosterview.get('Contact requests').el.querySelectorAll('li').length, 700); await test_utils.waitUntil(() => _converse.rosterview.get('Contact requests').el.querySelectorAll('li').length, 700);
@ -1043,11 +1039,11 @@
const name = mock.req_names[0]; const name = mock.req_names[0];
spyOn(window, 'confirm').and.returnValue(true); spyOn(window, 'confirm').and.returnValue(true);
_converse.roster.create({ _converse.roster.create({
jid: name.replace(/ /g,'.').toLowerCase() + '@localhost', 'jid': name.replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'none', 'subscription': 'none',
ask: null, 'ask': null,
requesting: true, 'requesting': true,
fullname: name 'nickname': name
}); });
await test_utils.waitUntil(() => sizzle('.roster-group', _converse.rosterview.el).filter(u.isVisible).length, 900); await test_utils.waitUntil(() => sizzle('.roster-group', _converse.rosterview.el).filter(u.isVisible).length, 900);
expect(u.isVisible(_converse.rosterview.get('Contact requests').el)).toEqual(true); expect(u.isVisible(_converse.rosterview.get('Contact requests').el)).toEqual(true);
@ -1080,7 +1076,7 @@
test_utils.openControlBox(); test_utils.openControlBox();
test_utils.createContacts(_converse, 'requesting').openControlBox(); test_utils.createContacts(_converse, 'requesting').openControlBox();
const name = mock.req_names.sort()[0]; const name = mock.req_names.sort()[0];
const jid = name.replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = name.replace(/ /g,'.').toLowerCase() + '@montague.lit';
const contact = _converse.roster.get(jid); const contact = _converse.roster.get(jid);
spyOn(contact, 'authorize').and.callFake(() => contact); spyOn(contact, 'authorize').and.callFake(() => contact);
await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group li').length) await test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group li').length)
@ -1088,7 +1084,7 @@
// actually not accepted/authorized because of // actually not accepted/authorized because of
// mock_connection. // mock_connection.
spyOn(_converse.roster, 'sendContactAddIQ').and.callFake(() => Promise.resolve()); spyOn(_converse.roster, 'sendContactAddIQ').and.callFake(() => Promise.resolve());
const req_contact = sizzle(".req-contact-name:contains('"+name+"')", _converse.rosterview.el).pop(); const req_contact = sizzle(`.req-contact-name:contains("${contact.getDisplayName()}")`, _converse.rosterview.el).pop();
req_contact.parentElement.parentElement.querySelector('.accept-xmpp-request').click(); req_contact.parentElement.parentElement.querySelector('.accept-xmpp-request').click();
expect(_converse.roster.sendContactAddIQ).toHaveBeenCalled(); expect(_converse.roster.sendContactAddIQ).toHaveBeenCalled();
await test_utils.waitUntil(() => contact.authorize.calls.count()); await test_utils.waitUntil(() => contact.authorize.calls.count());
@ -1105,7 +1101,7 @@
await test_utils.waitUntil(() => sizzle('.roster-group li', _converse.rosterview.el).length, 700); await test_utils.waitUntil(() => sizzle('.roster-group li', _converse.rosterview.el).length, 700);
_converse.rosterview.update(); // XXX: Hack to make sure $roster element is attaced. _converse.rosterview.update(); // XXX: Hack to make sure $roster element is attaced.
const name = mock.req_names.sort()[1]; const name = mock.req_names.sort()[1];
const jid = name.replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = name.replace(/ /g,'.').toLowerCase() + '@montague.lit';
const contact = _converse.roster.get(jid); const contact = _converse.roster.get(jid);
spyOn(window, 'confirm').and.returnValue(true); spyOn(window, 'confirm').and.returnValue(true);
spyOn(contact, 'unauthorize').and.callFake(function () { return contact; }); spyOn(contact, 'unauthorize').and.callFake(function () { return contact; });
@ -1199,7 +1195,7 @@
await test_utils.waitUntil(() => sizzle('.roster-group li', _converse.rosterview.el).length, 700); await test_utils.waitUntil(() => sizzle('.roster-group li', _converse.rosterview.el).length, 700);
for (let i=0; i<mock.cur_names.length; i++) { for (let i=0; i<mock.cur_names.length; i++) {
const name = mock.cur_names[i]; const name = mock.cur_names[i];
const jid = name.replace(/ /g,'.').toLowerCase() + '@localhost'; const jid = name.replace(/ /g,'.').toLowerCase() + '@montague.lit';
const child = sizzle("li:contains('"+name+"')", _converse.rosterview.el).pop().firstElementChild; const child = sizzle("li:contains('"+name+"')", _converse.rosterview.el).pop().firstElementChild;
expect(child.textContent.trim()).toBe(name); expect(child.textContent.trim()).toBe(name);
expect(child.getAttribute('title')).toContain(name); expect(child.getAttribute('title')).toContain(name);

View File

@ -22,7 +22,7 @@
const view = _converse.chatboxviews.get('controlbox'); const view = _converse.chatboxviews.get('controlbox');
spyOn(view, 'renderControlBoxPane').and.callThrough(); spyOn(view, 'renderControlBoxPane').and.callThrough();
_converse.api.user.login('dummy@localhost', 'secret'); _converse.api.user.login('romeo@montague.lit', 'secret');
const sent_stanzas = _converse.connection.sent_stanzas; const sent_stanzas = _converse.connection.sent_stanzas;
let stanza = await test_utils.waitUntil(() => let stanza = await test_utils.waitUntil(() =>
sent_stanzas.filter(s => (s.tagName === 'enable')).pop()); sent_stanzas.filter(s => (s.tagName === 'enable')).pop());
@ -41,7 +41,7 @@
let iq = IQ_stanzas.pop(); let iq = IQ_stanzas.pop();
expect(Strophe.serialize(iq)).toBe( expect(Strophe.serialize(iq)).toBe(
`<iq from="dummy@localhost/resource" id="${iq.getAttribute('id')}" to="dummy@localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${iq.getAttribute('id')}" to="romeo@montague.lit" type="get" xmlns="jabber:client">`+
`<query xmlns="http://jabber.org/protocol/disco#info"/></iq>`); `<query xmlns="http://jabber.org/protocol/disco#info"/></iq>`);
iq = IQ_stanzas.pop(); iq = IQ_stanzas.pop();
@ -50,12 +50,12 @@
iq = IQ_stanzas.pop(); iq = IQ_stanzas.pop();
expect(Strophe.serialize(iq)).toBe( expect(Strophe.serialize(iq)).toBe(
`<iq from="dummy@localhost/resource" id="${iq.getAttribute('id')}" to="localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${iq.getAttribute('id')}" to="montague.lit" type="get" xmlns="jabber:client">`+
`<query xmlns="http://jabber.org/protocol/disco#info"/></iq>`); `<query xmlns="http://jabber.org/protocol/disco#info"/></iq>`);
const disco_iq = IQ_stanzas.pop(); const disco_iq = IQ_stanzas.pop();
expect(Strophe.serialize(disco_iq)).toBe( expect(Strophe.serialize(disco_iq)).toBe(
`<iq from="dummy@localhost" id="${disco_iq.getAttribute('id')}" to="dummy@localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit" id="${disco_iq.getAttribute('id')}" to="romeo@montague.lit" type="get" xmlns="jabber:client">`+
`<pubsub xmlns="http://jabber.org/protocol/pubsub"><items node="eu.siacs.conversations.axolotl.devicelist"/></pubsub></iq>`); `<pubsub xmlns="http://jabber.org/protocol/pubsub"><items node="eu.siacs.conversations.axolotl.devicelist"/></pubsub></iq>`);
expect(sent_stanzas.filter(s => (s.nodeName === 'r')).length).toBe(2); expect(sent_stanzas.filter(s => (s.nodeName === 'r')).length).toBe(2);
@ -74,8 +74,8 @@
const disco_result = $iq({ const disco_result = $iq({
'type': 'result', 'type': 'result',
'from': 'localhost', 'from': 'montague.lit',
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'id': disco_iq.getAttribute('id'), 'id': disco_iq.getAttribute('id'),
}).c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'}) }).c('query', {'xmlns': 'http://jabber.org/protocol/disco#info'})
.c('identity', { .c('identity', {
@ -115,7 +115,7 @@
// Test that unacked stanzas get resent out // Test that unacked stanzas get resent out
iq = IQ_stanzas.pop(); iq = IQ_stanzas.pop();
expect(Strophe.serialize(iq)).toBe( expect(Strophe.serialize(iq)).toBe(
`<iq from="dummy@localhost/resource" id="${iq.getAttribute('id')}" to="dummy@localhost" type="get" xmlns="jabber:client">`+ `<iq from="romeo@montague.lit/orchard" id="${iq.getAttribute('id')}" to="romeo@montague.lit" type="get" xmlns="jabber:client">`+
`<query xmlns="http://jabber.org/protocol/disco#info"/></iq>`); `<query xmlns="http://jabber.org/protocol/disco#info"/></iq>`);
iq = IQ_stanzas.pop(); iq = IQ_stanzas.pop();

View File

@ -15,7 +15,7 @@
async (done, _converse) => { async (done, _converse) => {
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
/* <message to='romeo@montague.net/orchard' from='juliet@capulet.net/balcony' id='spoiler2'> /* <message to='romeo@montague.net/orchard' from='juliet@capulet.net/balcony' id='spoiler2'>
* <body>And at the end of the story, both of them die! It is so tragic!</body> * <body>And at the end of the story, both of them die! It is so tragic!</body>
@ -38,8 +38,8 @@
await test_utils.waitUntil(() => _converse.api.chats.get().length === 2); await test_utils.waitUntil(() => _converse.api.chats.get().length === 2);
const view = _converse.chatboxviews.get(sender_jid); const view = _converse.chatboxviews.get(sender_jid);
await test_utils.waitUntil(() => view.model.vcard.get('fullname') === 'Max Frankfurter') await test_utils.waitUntil(() => view.model.vcard.get('fullname') === 'Mercutio')
expect(view.el.querySelector('.chat-msg__author').textContent.trim()).toBe('Max Frankfurter'); expect(view.el.querySelector('.chat-msg__author').textContent.trim()).toBe('Mercutio');
const message_content = view.el.querySelector('.chat-msg__text'); const message_content = view.el.querySelector('.chat-msg__text');
expect(message_content.textContent).toBe(spoiler); expect(message_content.textContent).toBe(spoiler);
const spoiler_hint_el = view.el.querySelector('.spoiler-hint'); const spoiler_hint_el = view.el.querySelector('.spoiler-hint');
@ -53,7 +53,7 @@
async (done, _converse) => { async (done, _converse) => {
await test_utils.waitForRoster(_converse, 'current'); await test_utils.waitForRoster(_converse, 'current');
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
/* <message to='romeo@montague.net/orchard' from='juliet@capulet.net/balcony' id='spoiler2'> /* <message to='romeo@montague.net/orchard' from='juliet@capulet.net/balcony' id='spoiler2'>
* <body>And at the end of the story, both of them die! It is so tragic!</body> * <body>And at the end of the story, both of them die! It is so tragic!</body>
* <spoiler xmlns='urn:xmpp:spoiler:0'>Love story end</spoiler> * <spoiler xmlns='urn:xmpp:spoiler:0'>Love story end</spoiler>
@ -72,8 +72,8 @@
await _converse.chatboxes.onMessage(msg); await _converse.chatboxes.onMessage(msg);
await test_utils.waitUntil(() => _converse.api.chats.get().length === 2); await test_utils.waitUntil(() => _converse.api.chats.get().length === 2);
const view = _converse.chatboxviews.get(sender_jid); const view = _converse.chatboxviews.get(sender_jid);
await test_utils.waitUntil(() => view.model.vcard.get('fullname') === 'Max Frankfurter') await test_utils.waitUntil(() => view.model.vcard.get('fullname') === 'Mercutio')
expect(_.includes(view.el.querySelector('.chat-msg__author').textContent, 'Max Frankfurter')).toBeTruthy(); expect(_.includes(view.el.querySelector('.chat-msg__author').textContent, 'Mercutio')).toBeTruthy();
const message_content = view.el.querySelector('.chat-msg__text'); const message_content = view.el.querySelector('.chat-msg__text');
expect(message_content.textContent).toBe(spoiler); expect(message_content.textContent).toBe(spoiler);
const spoiler_hint_el = view.el.querySelector('.spoiler-hint'); const spoiler_hint_el = view.el.querySelector('.spoiler-hint');
@ -88,7 +88,7 @@
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
// XXX: We need to send a presence from the contact, so that we // XXX: We need to send a presence from the contact, so that we
// have a resource, that resource is then queried to see // have a resource, that resource is then queried to see
@ -96,7 +96,7 @@
// the spoiler button will appear. // the spoiler button will appear.
const presence = $pres({ const presence = $pres({
'from': contact_jid+'/phone', 'from': contact_jid+'/phone',
'to': 'dummy@localhost' 'to': 'romeo@montague.lit'
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
@ -119,8 +119,8 @@
/* Test the XML stanza /* Test the XML stanza
* *
* <message from="dummy@localhost/resource" * <message from="romeo@montague.lit/orchard"
* to="max.frankfurter@localhost" * to="max.frankfurter@montague.lit"
* type="chat" * type="chat"
* id="4547c38b-d98b-45a5-8f44-b4004dbc335e" * id="4547c38b-d98b-45a5-8f44-b4004dbc335e"
* xmlns="jabber:client"> * xmlns="jabber:client">
@ -138,7 +138,7 @@
expect(body_el.textContent).toBe('This is the spoiler'); expect(body_el.textContent).toBe('This is the spoiler');
/* Test the HTML spoiler message */ /* Test the HTML spoiler message */
expect(view.el.querySelector('.chat-msg__author').textContent.trim()).toBe('Max Mustermann'); expect(view.el.querySelector('.chat-msg__author').textContent.trim()).toBe('Romeo Montague');
const spoiler_msg_el = view.el.querySelector('.chat-msg__text.spoiler'); const spoiler_msg_el = view.el.querySelector('.chat-msg__text.spoiler');
expect(spoiler_msg_el.textContent).toBe('This is the spoiler'); expect(spoiler_msg_el.textContent).toBe('This is the spoiler');
@ -161,7 +161,7 @@
await test_utils.waitForRoster(_converse, 'current', 1); await test_utils.waitForRoster(_converse, 'current', 1);
test_utils.openControlBox(); test_utils.openControlBox();
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
// XXX: We need to send a presence from the contact, so that we // XXX: We need to send a presence from the contact, so that we
// have a resource, that resource is then queried to see // have a resource, that resource is then queried to see
@ -169,7 +169,7 @@
// the spoiler button will appear. // the spoiler button will appear.
const presence = $pres({ const presence = $pres({
'from': contact_jid+'/phone', 'from': contact_jid+'/phone',
'to': 'dummy@localhost' 'to': 'romeo@montague.lit'
}); });
_converse.connection._dataRecv(test_utils.createRequest(presence)); _converse.connection._dataRecv(test_utils.createRequest(presence));
await test_utils.openChatBoxFor(_converse, contact_jid); await test_utils.openChatBoxFor(_converse, contact_jid);
@ -196,8 +196,8 @@
/* Test the XML stanza /* Test the XML stanza
* *
* <message from="dummy@localhost/resource" * <message from="romeo@montague.lit/orchard"
* to="max.frankfurter@localhost" * to="max.frankfurter@montague.lit"
* type="chat" * type="chat"
* id="4547c38b-d98b-45a5-8f44-b4004dbc335e" * id="4547c38b-d98b-45a5-8f44-b4004dbc335e"
* xmlns="jabber:client"> * xmlns="jabber:client">
@ -216,7 +216,7 @@
expect(body_el.textContent).toBe('This is the spoiler'); expect(body_el.textContent).toBe('This is the spoiler');
/* Test the HTML spoiler message */ /* Test the HTML spoiler message */
expect(view.el.querySelector('.chat-msg__author').textContent.trim()).toBe('Max Mustermann'); expect(view.el.querySelector('.chat-msg__author').textContent.trim()).toBe('Romeo Montague');
const spoiler_msg_el = view.el.querySelector('.chat-msg__text.spoiler'); const spoiler_msg_el = view.el.querySelector('.chat-msg__text.spoiler');
expect(spoiler_msg_el.textContent).toBe('This is the spoiler'); expect(spoiler_msg_el.textContent).toBe('This is the spoiler');

View File

@ -55,7 +55,7 @@
_converse.allow_non_roster_messaging = true; _converse.allow_non_roster_messaging = true;
test_utils.openAndEnterChatRoom(_converse, 'discuss', 'conference.conversejs.org', 'dummy').then(function () { test_utils.openAndEnterChatRoom(_converse, 'discuss', 'conference.conversejs.org', 'romeo').then(function () {
spyOn(_converse, 'areDesktopNotificationsEnabled').and.returnValue(true); spyOn(_converse, 'areDesktopNotificationsEnabled').and.returnValue(true);
_.each(transcripts, function (transcript) { _.each(transcripts, function (transcript) {
var text = transcript(); var text = transcript();

View File

@ -22,7 +22,7 @@
test_utils.createContacts(_converse, 'current'); test_utils.createContacts(_converse, 'current');
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
test_utils.openChatBoxFor(_converse, contact_jid); test_utils.openChatBoxFor(_converse, contact_jid);
await test_utils.waitUntil(() => _converse.chatboxes.length > 1); await test_utils.waitUntil(() => _converse.chatboxes.length > 1);
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);
@ -55,7 +55,7 @@
test_utils.createContacts(_converse, 'current'); test_utils.createContacts(_converse, 'current');
_converse.api.trigger('rosterContactsFetched'); _converse.api.trigger('rosterContactsFetched');
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost'; const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@montague.lit';
await test_utils.openChatBoxFor(_converse, contact_jid) await test_utils.openChatBoxFor(_converse, contact_jid)
const view = _converse.chatboxviews.get(contact_jid); const view = _converse.chatboxviews.get(contact_jid);
let show_modal_button = view.el.querySelector('.show-user-details-modal'); let show_modal_button = view.el.querySelector('.show-user-details-modal');
@ -75,7 +75,7 @@
const header = document.querySelector('.alert-danger .modal-title'); const header = document.querySelector('.alert-danger .modal-title');
expect(header.textContent).toBe("Error"); expect(header.textContent).toBe("Error");
expect(u.ancestor(header, '.modal-content').querySelector('.modal-body p').textContent.trim()) expect(u.ancestor(header, '.modal-content').querySelector('.modal-body p').textContent.trim())
.toBe("Sorry, there was an error while trying to remove Max Frankfurter as a contact."); .toBe("Sorry, there was an error while trying to remove Mercutio as a contact.");
document.querySelector('.alert-danger button.close').click(); document.querySelector('.alert-danger button.close').click();
show_modal_button = view.el.querySelector('.show-user-details-modal'); show_modal_button = view.el.querySelector('.show-user-details-modal');
show_modal_button.click(); show_modal_button.click();

View File

@ -1524,7 +1524,7 @@ _converse.api = {
* @example * @example
* converse.plugins.add('myplugin', { * converse.plugins.add('myplugin', {
* initialize: function () { * initialize: function () {
* this._converse.api.user.login('dummy@example.com', 'secret'); * this._converse.api.user.login('romeo@montague.lit', 'secret');
* } * }
* }); * });
*/ */

View File

@ -71,15 +71,15 @@
// Names from http://www.fakenamegenerator.com/ // Names from http://www.fakenamegenerator.com/
mock.req_names = [ mock.req_names = [
'Louw Spekman', 'Mohamad Stet', 'Dominik Beyer' 'Escalus, Prince of Verona', 'The Nurse', 'Paris'
]; ];
mock.pend_names = [ mock.pend_names = [
'Suleyman van Beusichem', 'Nanja van Yperen', 'Nicole Diederich' 'Lord Capulet', 'Lady Capulet', 'Servant'
]; ];
mock.cur_names = [ mock.cur_names = [
'Max Frankfurter', 'Candice van der Knijff', 'Irini Vlastuin', 'Rinse Sommer', 'Annegreet Gomez', 'Mercutio', 'Juliet Capulet', 'Lady Montague', 'Lord Montague', 'Friar Laurence',
'Robin Schook', 'Marcel Eberhardt', 'Simone Brauer', 'Asmaa Haakman', 'Felix Amsel', 'Tybalt', 'Lady Capulet', 'Benviolo', 'Balthasar',
'Lena Grunewald', 'Laura Grunewald', 'Mandy Seiler', 'Sven Bosch', 'Nuriye Cuypers' 'Peter', 'Abram', 'Sampson', 'Gregory', 'Potpan', 'Friar John'
]; ];
mock.num_contacts = mock.req_names.length + mock.pend_names.length + mock.cur_names.length; mock.num_contacts = mock.req_names.length + mock.pend_names.length + mock.cur_names.length;
@ -154,7 +154,7 @@
c._proto._connect = function () { c._proto._connect = function () {
c.connected = true; c.connected = true;
c.mock = true; c.mock = true;
c.jid = 'dummy@localhost/resource'; c.jid = 'romeo@montague.lit/orchard';
c._changeConnectStatus(Strophe.Status.BINDREQUIRED); c._changeConnectStatus(Strophe.Status.BINDREQUIRED);
}; };
@ -190,7 +190,7 @@
'i18n': 'en', 'i18n': 'en',
'auto_subscribe': false, 'auto_subscribe': false,
'play_sounds': false, 'play_sounds': false,
'bosh_service_url': 'localhost', 'bosh_service_url': 'montague.lit/http-bind',
'connection': connection, 'connection': connection,
'animate': false, 'animate': false,
'use_emojione': false, 'use_emojione': false,
@ -214,9 +214,9 @@
jid = model.get('jid') || model.get('muc_jid'); jid = model.get('jid') || model.get('muc_jid');
} }
let fullname; let fullname;
if (!jid || jid == 'dummy@localhost') { if (!jid || jid == 'romeo@montague.lit') {
jid = 'dummy@localhost'; jid = 'romeo@montague.lit';
fullname = 'Max Mustermann' ; fullname = 'Romeo Montague' ;
} else { } else {
const name = jid.split('@')[0].replace(/\./g, ' ').split(' '); const name = jid.split('@')[0].replace(/\./g, ' ').split(' ');
const last = name.length-1; const last = name.length-1;
@ -238,7 +238,7 @@
}).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL)); }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL));
}; };
if (_.get(settings, 'auto_login') !== false) { if (_.get(settings, 'auto_login') !== false) {
_converse.api.user.login('dummy@localhost', 'secret'); _converse.api.user.login('romeo@montague.lit', 'secret');
await _converse.api.waitUntil('afterResourceBinding'); await _converse.api.waitUntil('afterResourceBinding');
} }
window.converse_disable_effects = true; window.converse_disable_effects = true;

View File

@ -34,11 +34,11 @@ var specs = [
"jasmine", "jasmine",
//"spec/transcripts", //"spec/transcripts",
"spec/spoilers", "spec/spoilers",
"spec/roomslist",
"spec/profiling", "spec/profiling",
"spec/utils", "spec/utils",
"spec/converse", "spec/converse",
"spec/bookmarks", "spec/bookmarks",
"spec/roomslist",
"spec/headline", "spec/headline",
"spec/disco", "spec/disco",
"spec/protocol", "spec/protocol",

View File

@ -25,7 +25,7 @@
const stanza = $iq({ const stanza = $iq({
'type': 'result', 'type': 'result',
'from': entity_jid, 'from': entity_jid,
'to': 'dummy@localhost/resource', 'to': 'romeo@montague.lit/orchard',
'id': iq.getAttribute('id'), 'id': iq.getAttribute('id'),
}).c('query', {'xmlns': 'http://jabber.org/protocol/disco#'+type}); }).c('query', {'xmlns': 'http://jabber.org/protocol/disco#'+type});
@ -86,7 +86,7 @@
utils.openChatBoxes = function (converse, amount) { utils.openChatBoxes = function (converse, amount) {
var i = 0, jid, views = []; var i = 0, jid, views = [];
for (i; i<amount; i++) { for (i; i<amount; i++) {
jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
views[i] = converse.roster.get(jid).trigger("open"); views[i] = converse.roster.get(jid).trigger("open");
} }
return views; return views;
@ -130,7 +130,7 @@
const features_stanza = $iq({ const features_stanza = $iq({
'from': room_jid, 'from': room_jid,
'id': stanza.getAttribute('id'), 'id': stanza.getAttribute('id'),
'to': 'dummy@localhost/desktop', 'to': 'romeo@montague.lit/desktop',
'type': 'result' 'type': 'result'
}).c('query', { 'xmlns': 'http://jabber.org/protocol/disco#info'}) }).c('query', { 'xmlns': 'http://jabber.org/protocol/disco#info'})
.c('identity', { .c('identity', {
@ -254,11 +254,11 @@
length = names.length; length = names.length;
} }
for (var i=0; i<length; i++) { for (var i=0; i<length; i++) {
jid = names[i].replace(/ /g,'.').toLowerCase() + '@localhost'; jid = names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit';
if (!converse.roster.get(jid)) { if (!converse.roster.get(jid)) {
converse.roster.create({ converse.roster.create({
'ask': ask, 'ask': ask,
'fullname': names[i], 'name': names[i],
'jid': jid, 'jid': jid,
'requesting': requesting, 'requesting': requesting,
'subscription': subscription 'subscription': subscription
@ -285,7 +285,7 @@
if (type === 'pending' || type === 'all') { if (type === 'pending' || type === 'all') {
mock.pend_names.slice(0, length).map(name => mock.pend_names.slice(0, length).map(name =>
result.c('item', { result.c('item', {
jid: name.replace(/ /g,'.').toLowerCase() + '@localhost', jid: name.replace(/ /g,'.').toLowerCase() + '@montague.lit',
name: include_nick ? name : undefined, name: include_nick ? name : undefined,
subscription: 'to' subscription: 'to'
}).up() }).up()
@ -293,7 +293,7 @@
} else if (type === 'current' || type === 'all') { } else if (type === 'current' || type === 'all') {
mock.cur_names.slice(0, length).map(name => mock.cur_names.slice(0, length).map(name =>
result.c('item', { result.c('item', {
jid: name.replace(/ /g,'.').toLowerCase() + '@localhost', jid: name.replace(/ /g,'.').toLowerCase() + '@montague.lit',
name: include_nick ? name : undefined, name: include_nick ? name : undefined,
subscription: 'both' subscription: 'both'
}).up() }).up()
@ -311,11 +311,11 @@
j = i; j = i;
for (i=j; i<j+mock.groups[name]; i++) { for (i=j; i<j+mock.groups[name]; i++) {
converse.roster.create({ converse.roster.create({
jid: mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@localhost', 'jid': mock.cur_names[i].replace(/ /g,'.').toLowerCase() + '@montague.lit',
subscription: 'both', 'subscription': 'both',
ask: null, 'ask': null,
groups: name === 'ungrouped'? [] : [name], 'groups': name === 'ungrouped'? [] : [name],
fullname: mock.cur_names[i] 'name': mock.cur_names[i]
}); });
} }
}); });