Extend the "close chat" test with a normal chatbox usecase

This commit is contained in:
JC Brand 2014-03-04 13:22:49 +02:00
parent c030494ef0
commit ac0042fdf9
3 changed files with 24 additions and 10 deletions

View File

@ -2537,7 +2537,7 @@
openChat: function (ev) {
ev.preventDefault();
converse.chatboxesview.showChatBox({
return converse.chatboxesview.showChatBox({
'id': this.model.get('jid'),
'jid': this.model.get('jid'),
'fullname': this.model.get('fullname'),

View File

@ -77,21 +77,34 @@
}.bind(converse));
}, converse));
it("can be closed again by clicking a DOM element with class 'close-chatbox-button'", $.proxy(function () {
it("can be closed by clicking a DOM element with class 'close-chatbox-button'", $.proxy(function () {
var chatbox = utils.openChatBoxes(1)[0],
controlview = this.chatboxesview.views.controlbox, // The controlbox is currently open
chatview = this.chatboxesview.views[chatbox.get('jid')];
spyOn(chatview, 'closeChat').andCallThrough();
spyOn(controlview, 'closeChat').andCallThrough();
spyOn(converse, 'emit');
var view = this.chatboxesview.views.controlbox; // The controlbox is currently open
spyOn(view, 'closeChat').andCallThrough();
view.delegateEvents(); // We need to rebind all events otherwise our spy won't be called
// We need to rebind all events otherwise our spy won't be called
controlview.delegateEvents();
chatview.delegateEvents();
runs(function () {
view.$el.find('.close-chatbox-button').click();
controlview.$el.find('.close-chatbox-button').click();
});
waits(250);
runs(function () {
expect(view.closeChat).toHaveBeenCalled();
expect(controlview.closeChat).toHaveBeenCalled();
expect(converse.emit).toHaveBeenCalledWith('onChatBoxClosed', jasmine.any(Object));
expect(converse.emit.callCount, 1);
chatview.$el.find('.close-chatbox-button').click();
});
waits(250);
runs(function () {
expect(chatview.closeChat).toHaveBeenCalled();
expect(converse.emit).toHaveBeenCalledWith('onChatBoxClosed', jasmine.any(Object));
expect(converse.emit.callCount, 2);
});
// TODO: Open a normal chatbox and close it again...
}, converse));
it("will be removed from localStorage when closed", $.proxy(function () {

View File

@ -78,11 +78,12 @@
};
utils.openChatBoxes = function (amount) {
var i = 0, jid;
var i = 0, jid, views = [];
for (i; i<amount; i++) {
jid = mock.cur_names[i].replace(' ','.').toLowerCase() + '@localhost';
converse.rosterview.rosteritemviews[jid].openChat(mock.event);
views[i] = converse.rosterview.rosteritemviews[jid].openChat(mock.event);
}
return views;
};
utils.openChatBoxFor = function (jid) {