|
@@ -1142,8 +1142,7 @@
|
|
|
expect(occupants.querySelectorAll('li').length).toBe(2+i);
|
|
|
model = view.occupantsview.model.where({'nick': name})[0];
|
|
|
var index = view.occupantsview.model.indexOf(model);
|
|
|
- expect(occupants.querySelectorAll('li')[index].textContent).toBe(mock.chatroom_names[i]);
|
|
|
- expect($(occupants.querySelectorAll('li')[index]).hasClass('moderator')).toBe(role === "moderator");
|
|
|
+ expect(occupants.querySelectorAll('li .occupant-nick')[index].textContent.trim()).toBe(mock.chatroom_names[i]);
|
|
|
}
|
|
|
|
|
|
// Test users leaving the room
|
|
@@ -1166,7 +1165,7 @@
|
|
|
expect(occupants.querySelectorAll('li').length).toBe(i+1);
|
|
|
}
|
|
|
done();
|
|
|
- });
|
|
|
+ }).catch(_.partial(console.error, _));
|
|
|
}));
|
|
|
|
|
|
it("escapes occupant nicknames when rendering them, to avoid JS-injection attacks",
|
|
@@ -1193,9 +1192,9 @@
|
|
|
|
|
|
_converse.connection._dataRecv(test_utils.createRequest(presence));
|
|
|
var view = _converse.chatboxviews.get('lounge@localhost');
|
|
|
- var occupants = view.el.querySelector('.occupant-list').querySelectorAll('li');
|
|
|
+ var occupants = view.el.querySelector('.occupant-list').querySelectorAll('li .occupant-nick');
|
|
|
expect(occupants.length).toBe(2);
|
|
|
- expect($(occupants).first().text()).toBe("<img src="x" onerror="alert(123)"/>");
|
|
|
+ expect($(occupants).first().text().trim()).toBe("<img src="x" onerror="alert(123)"/>");
|
|
|
done();
|
|
|
});
|
|
|
}));
|
|
@@ -1208,6 +1207,13 @@
|
|
|
test_utils.openAndEnterChatRoom(_converse, 'lounge', 'localhost', 'dummy').then(function () {
|
|
|
var view = _converse.chatboxviews.get('lounge@localhost');
|
|
|
var contact_jid = mock.cur_names[2].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
+
|
|
|
+ var occupants = view.el.querySelector('.occupant-list').querySelectorAll('li');
|
|
|
+ expect(occupants.length).toBe(1);
|
|
|
+ expect($(occupants).first().find('.occupant-nick').text().trim()).toBe("dummy");
|
|
|
+ expect($(occupants).first().find('.badge').length).toBe(1);
|
|
|
+ expect($(occupants).first().find('.badge').first().text()).toBe('Member');
|
|
|
+
|
|
|
var presence = $pres({
|
|
|
to:'dummy@localhost/pda',
|
|
|
from:'lounge@localhost/moderatorman'
|
|
@@ -1220,11 +1226,14 @@
|
|
|
.c('status').attrs({code:'110'}).nodeTree;
|
|
|
|
|
|
_converse.connection._dataRecv(test_utils.createRequest(presence));
|
|
|
- var occupants = view.el.querySelector('.occupant-list').querySelectorAll('li');
|
|
|
+ occupants = view.el.querySelector('.occupant-list').querySelectorAll('li');
|
|
|
expect(occupants.length).toBe(2);
|
|
|
- expect($(occupants).first().text()).toBe("moderatorman");
|
|
|
- expect($(occupants).last().text()).toBe("dummy");
|
|
|
- expect($(occupants).first().attr('class').indexOf('moderator')).not.toBe(-1);
|
|
|
+ expect($(occupants).first().find('.occupant-nick').text().trim()).toBe("moderatorman");
|
|
|
+ expect($(occupants).last().find('.occupant-nick').text().trim()).toBe("dummy");
|
|
|
+ expect($(occupants).first().find('.badge').length).toBe(2);
|
|
|
+ expect($(occupants).first().find('.badge').first().text()).toBe('Admin');
|
|
|
+ expect($(occupants).first().find('.badge').last().text()).toBe('Moderator');
|
|
|
+
|
|
|
expect($(occupants).first().attr('title')).toBe(
|
|
|
contact_jid + ' This user is a moderator. Click to mention moderatorman in your message.'
|
|
|
);
|
|
@@ -1242,13 +1251,14 @@
|
|
|
_converse.connection._dataRecv(test_utils.createRequest(presence));
|
|
|
|
|
|
occupants = view.el.querySelector('.occupant-list').querySelectorAll('li');
|
|
|
- expect($(occupants).last().text()).toBe("visitorwoman");
|
|
|
- expect($(occupants).last().attr('class').indexOf('visitor')).not.toBe(-1);
|
|
|
+ expect($(occupants).last().find('.occupant-nick').text().trim()).toBe("visitorwoman");
|
|
|
+ expect($(occupants).last().find('.badge').length).toBe(1);
|
|
|
+ expect($(occupants).last().find('.badge').last().text()).toBe('Visitor');
|
|
|
expect($(occupants).last().attr('title')).toBe(
|
|
|
contact_jid + ' This user can NOT send messages in this room. Click to mention visitorwoman in your message.'
|
|
|
);
|
|
|
done();
|
|
|
- });
|
|
|
+ }).catch(_.partial(console.error, _));
|
|
|
}));
|
|
|
|
|
|
it("will use the user's reserved nickname, if it exists",
|
|
@@ -1656,7 +1666,7 @@
|
|
|
|
|
|
var $occupants = $(view.el.querySelector('.occupant-list'));
|
|
|
expect($occupants.children().length).toBe(1);
|
|
|
- expect($occupants.children().first(0).text()).toBe("oldnick");
|
|
|
+ expect($occupants.children().first(0).find('.occupant-nick').text().trim()).toBe("oldnick");
|
|
|
|
|
|
expect($chat_content.find('div.chat-info').length).toBe(1);
|
|
|
expect($chat_content.find('div.chat-info:first').html()).toBe("oldnick has entered the room");
|