|
@@ -27,10 +27,11 @@
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
test_utils.openControlBox();
|
|
test_utils.openControlBox();
|
|
|
|
|
|
|
|
+ let view;
|
|
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
const contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
- test_utils.openChatBoxFor(_converse, contact_jid);
|
|
|
|
- test_utils.waitUntil(() => _converse.chatboxes.length == 2).then(() => {
|
|
|
|
- var view = _converse.chatboxviews.get(contact_jid);
|
|
|
|
|
|
+ test_utils.openChatBoxFor(_converse, contact_jid)
|
|
|
|
+ .then(() => {
|
|
|
|
+ view = _converse.chatboxviews.get(contact_jid);
|
|
test_utils.sendMessage(view, '/help');
|
|
test_utils.sendMessage(view, '/help');
|
|
|
|
|
|
const info_messages = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info:not(.chat-date)'), 0);
|
|
const info_messages = Array.prototype.slice.call(view.el.querySelectorAll('.chat-info:not(.chat-date)'), 0);
|
|
@@ -39,13 +40,15 @@
|
|
expect(info_messages.pop().textContent).toBe('/me: Write in the third person');
|
|
expect(info_messages.pop().textContent).toBe('/me: Write in the third person');
|
|
expect(info_messages.pop().textContent).toBe('/clear: Remove messages');
|
|
expect(info_messages.pop().textContent).toBe('/clear: Remove messages');
|
|
|
|
|
|
- var msg = $msg({
|
|
|
|
|
|
+ const msg = $msg({
|
|
from: contact_jid,
|
|
from: contact_jid,
|
|
to: _converse.connection.jid,
|
|
to: _converse.connection.jid,
|
|
type: 'chat',
|
|
type: 'chat',
|
|
id: (new Date()).getTime()
|
|
id: (new Date()).getTime()
|
|
}).c('body').t('hello world').tree();
|
|
}).c('body').t('hello world').tree();
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
|
|
+ return test_utils.waitUntil(() => view.content.querySelectorAll('.chat-msg').length);
|
|
|
|
+ }).then(() => {
|
|
expect(view.content.lastElementChild.textContent.trim().indexOf('hello world')).not.toBe(-1);
|
|
expect(view.content.lastElementChild.textContent.trim().indexOf('hello world')).not.toBe(-1);
|
|
done();
|
|
done();
|
|
});
|
|
});
|
|
@@ -741,7 +744,7 @@
|
|
spyOn(_converse, 'log');
|
|
spyOn(_converse, 'log');
|
|
recipient_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
recipient_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
return test_utils.openChatBoxFor(_converse, recipient_jid);
|
|
return test_utils.openChatBoxFor(_converse, recipient_jid);
|
|
- }).then(() => {
|
|
|
|
|
|
+ }).then((view) => {
|
|
var msg = $msg({
|
|
var msg = $msg({
|
|
'from': _converse.bare_jid,
|
|
'from': _converse.bare_jid,
|
|
'id': (new Date()).getTime(),
|
|
'id': (new Date()).getTime(),
|
|
@@ -757,7 +760,8 @@
|
|
'type': 'chat'
|
|
'type': 'chat'
|
|
}).c('composing', {'xmlns': Strophe.NS.CHATSTATES}).tree();
|
|
}).c('composing', {'xmlns': Strophe.NS.CHATSTATES}).tree();
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
-
|
|
|
|
|
|
+ return test_utils.waitUntil(() => view.model.messages.length);
|
|
|
|
+ }).then(() => {
|
|
// Check that the chatbox and its view now exist
|
|
// Check that the chatbox and its view now exist
|
|
var chatbox = _converse.chatboxes.get(recipient_jid);
|
|
var chatbox = _converse.chatboxes.get(recipient_jid);
|
|
var chatboxview = _converse.chatboxviews.get(recipient_jid);
|
|
var chatboxview = _converse.chatboxviews.get(recipient_jid);
|
|
@@ -886,7 +890,7 @@
|
|
spyOn(_converse, 'log');
|
|
spyOn(_converse, 'log');
|
|
recipient_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
recipient_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
return test_utils.openChatBoxFor(_converse, recipient_jid);
|
|
return test_utils.openChatBoxFor(_converse, recipient_jid);
|
|
- }).then(() => {
|
|
|
|
|
|
+ }).then((view) => {
|
|
var msg = $msg({
|
|
var msg = $msg({
|
|
'from': _converse.bare_jid,
|
|
'from': _converse.bare_jid,
|
|
'id': (new Date()).getTime(),
|
|
'id': (new Date()).getTime(),
|
|
@@ -902,7 +906,8 @@
|
|
'type': 'chat'
|
|
'type': 'chat'
|
|
}).c('paused', {'xmlns': Strophe.NS.CHATSTATES}).tree();
|
|
}).c('paused', {'xmlns': Strophe.NS.CHATSTATES}).tree();
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
-
|
|
|
|
|
|
+ return test_utils.waitUntil(() => view.model.messages.length);
|
|
|
|
+ }).then(() => {
|
|
// Check that the chatbox and its view now exist
|
|
// Check that the chatbox and its view now exist
|
|
var chatbox = _converse.chatboxes.get(recipient_jid);
|
|
var chatbox = _converse.chatboxes.get(recipient_jid);
|
|
var chatboxview = _converse.chatboxviews.get(recipient_jid);
|
|
var chatboxview = _converse.chatboxviews.get(recipient_jid);
|
|
@@ -1041,17 +1046,18 @@
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
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() + '@localhost';
|
|
|
|
+ let view;
|
|
|
|
|
|
// See XEP-0085 http://xmpp.org/extensions/xep-0085.html#definitions
|
|
// See XEP-0085 http://xmpp.org/extensions/xep-0085.html#definitions
|
|
spyOn(_converse, 'emit');
|
|
spyOn(_converse, 'emit');
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
.then(() => {
|
|
.then(() => {
|
|
- var view = _converse.chatboxviews.get(sender_jid);
|
|
|
|
|
|
+ view = _converse.chatboxviews.get(sender_jid);
|
|
expect(view.el.querySelectorAll('.chat-event').length).toBe(0);
|
|
expect(view.el.querySelectorAll('.chat-event').length).toBe(0);
|
|
// Insert <composing> message, to also check that
|
|
// Insert <composing> message, to also check that
|
|
// text messages are inserted correctly with
|
|
// text messages are inserted correctly with
|
|
// temporary chat events in the chat contents.
|
|
// temporary chat events in the chat contents.
|
|
- var msg = $msg({
|
|
|
|
|
|
+ const msg = $msg({
|
|
'to': _converse.bare_jid,
|
|
'to': _converse.bare_jid,
|
|
'xmlns': 'jabber:client',
|
|
'xmlns': 'jabber:client',
|
|
'from': sender_jid,
|
|
'from': sender_jid,
|
|
@@ -1059,14 +1065,18 @@
|
|
.c('composing', {'xmlns': Strophe.NS.CHATSTATES}).up()
|
|
.c('composing', {'xmlns': Strophe.NS.CHATSTATES}).up()
|
|
.tree();
|
|
.tree();
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
|
|
+ return test_utils.waitUntil(() => view.model.messages.length);
|
|
|
|
+ }).then(() => {
|
|
expect(view.el.querySelectorAll('.chat-state-notification').length).toBe(1);
|
|
expect(view.el.querySelectorAll('.chat-state-notification').length).toBe(1);
|
|
- msg = $msg({
|
|
|
|
|
|
+ const msg = $msg({
|
|
from: sender_jid,
|
|
from: sender_jid,
|
|
to: _converse.connection.jid,
|
|
to: _converse.connection.jid,
|
|
type: 'chat',
|
|
type: 'chat',
|
|
id: (new Date()).getTime()
|
|
id: (new Date()).getTime()
|
|
}).c('body').c('inactive', {'xmlns': Strophe.NS.CHATSTATES}).tree();
|
|
}).c('body').c('inactive', {'xmlns': Strophe.NS.CHATSTATES}).tree();
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
|
|
+ return test_utils.waitUntil(() => (view.model.messages.length > 1));
|
|
|
|
+ }).then(() => {
|
|
expect(_converse.emit).toHaveBeenCalledWith('message', jasmine.any(Object));
|
|
expect(_converse.emit).toHaveBeenCalledWith('message', jasmine.any(Object));
|
|
expect($(view.el).find('.chat-state-notification').length).toBe(0);
|
|
expect($(view.el).find('.chat-state-notification').length).toBe(0);
|
|
done();
|
|
done();
|
|
@@ -1178,12 +1188,15 @@
|
|
.c('active', {'xmlns': Strophe.NS.CHATSTATES}).tree();
|
|
.c('active', {'xmlns': Strophe.NS.CHATSTATES}).tree();
|
|
_converse.windowState = 'hidden';
|
|
_converse.windowState = 'hidden';
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
- expect(_converse.incrementMsgCounter).toHaveBeenCalled();
|
|
|
|
- expect(_converse.clearMsgCounter).not.toHaveBeenCalled();
|
|
|
|
- expect(_converse.msg_counter).toBe(1);
|
|
|
|
- expect(_converse.emit).toHaveBeenCalledWith('message', jasmine.any(Object));
|
|
|
|
- _converse.windowSate = previous_state;
|
|
|
|
- done();
|
|
|
|
|
|
+ return test_utils.waitUntil(() => _converse.api.chats.get().length)
|
|
|
|
+ .then(() => {
|
|
|
|
+ expect(_converse.incrementMsgCounter).toHaveBeenCalled();
|
|
|
|
+ expect(_converse.clearMsgCounter).not.toHaveBeenCalled();
|
|
|
|
+ expect(_converse.msg_counter).toBe(1);
|
|
|
|
+ expect(_converse.emit).toHaveBeenCalledWith('message', jasmine.any(Object));
|
|
|
|
+ _converse.windowSate = previous_state;
|
|
|
|
+ done();
|
|
|
|
+ });
|
|
}));
|
|
}));
|
|
|
|
|
|
it("is cleared when the window is focused",
|
|
it("is cleared when the window is focused",
|
|
@@ -1237,7 +1250,8 @@
|
|
// initial state
|
|
// initial state
|
|
expect(_converse.msg_counter).toBe(0);
|
|
expect(_converse.msg_counter).toBe(0);
|
|
|
|
|
|
- var message = 'This message will always increment the message counter from zero',
|
|
|
|
|
|
+ let view;
|
|
|
|
+ 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() + '@localhost',
|
|
msgFactory = function () {
|
|
msgFactory = function () {
|
|
return $msg({
|
|
return $msg({
|
|
@@ -1254,24 +1268,29 @@
|
|
// leave converse-chat page
|
|
// leave converse-chat page
|
|
_converse.windowState = 'hidden';
|
|
_converse.windowState = 'hidden';
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
- expect(_converse.msg_counter).toBe(1);
|
|
|
|
|
|
+ return test_utils.waitUntil(() => _converse.api.chats.get().length)
|
|
|
|
+ .then(() => {
|
|
|
|
+ expect(_converse.msg_counter).toBe(1);
|
|
|
|
|
|
- // come back to converse-chat page
|
|
|
|
- _converse.saveWindowState(null, 'focus');
|
|
|
|
- var view = _converse.chatboxviews.get(sender_jid);
|
|
|
|
- expect(u.isVisible(view.el)).toBeTruthy();
|
|
|
|
- expect(_converse.msg_counter).toBe(0);
|
|
|
|
|
|
+ // come back to converse-chat page
|
|
|
|
+ _converse.saveWindowState(null, 'focus');
|
|
|
|
+ view = _converse.chatboxviews.get(sender_jid);
|
|
|
|
+ expect(u.isVisible(view.el)).toBeTruthy();
|
|
|
|
+ expect(_converse.msg_counter).toBe(0);
|
|
|
|
|
|
- // close chatbox and leave converse-chat page again
|
|
|
|
- view.close();
|
|
|
|
- _converse.windowState = 'hidden';
|
|
|
|
|
|
+ // close chatbox and leave converse-chat page again
|
|
|
|
+ view.close();
|
|
|
|
+ _converse.windowState = 'hidden';
|
|
|
|
|
|
- // check that msg_counter is incremented from zero again
|
|
|
|
- _converse.chatboxes.onMessage(msgFactory());
|
|
|
|
- view = _converse.chatboxviews.get(sender_jid);
|
|
|
|
- expect(u.isVisible(view.el)).toBeTruthy();
|
|
|
|
- expect(_converse.msg_counter).toBe(1);
|
|
|
|
- done();
|
|
|
|
|
|
+ // check that msg_counter is incremented from zero again
|
|
|
|
+ _converse.chatboxes.onMessage(msgFactory());
|
|
|
|
+ return test_utils.waitUntil(() => _converse.api.chats.get().length)
|
|
|
|
+ }).then(() => {
|
|
|
|
+ view = _converse.chatboxviews.get(sender_jid);
|
|
|
|
+ expect(u.isVisible(view.el)).toBeTruthy();
|
|
|
|
+ expect(_converse.msg_counter).toBe(1);
|
|
|
|
+ done();
|
|
|
|
+ });
|
|
}));
|
|
}));
|
|
});
|
|
});
|
|
|
|
|
|
@@ -1288,13 +1307,17 @@
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost',
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost',
|
|
msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
|
|
msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
|
|
|
|
|
|
|
|
+ let view;
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
- .then((view) => {
|
|
|
|
|
|
+ .then((v) => {
|
|
|
|
+ view = v;
|
|
view.model.save('scrolled', true);
|
|
view.model.save('scrolled', true);
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
|
|
+ return test_utils.waitUntil(() => view.model.messages.length);
|
|
|
|
+ }).then(() => {
|
|
expect(view.model.get('num_unread')).toBe(1);
|
|
expect(view.model.get('num_unread')).toBe(1);
|
|
done();
|
|
done();
|
|
- });
|
|
|
|
|
|
+ }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL))
|
|
}));
|
|
}));
|
|
|
|
|
|
it("is not incremented when the message is received and ChatBoxView is scrolled down",
|
|
it("is not incremented when the message is received and ChatBoxView is scrolled down",
|
|
@@ -1323,15 +1346,18 @@
|
|
test_utils.createContacts(_converse, 'current');
|
|
test_utils.createContacts(_converse, 'current');
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
|
|
|
|
- var sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
- var msgFactory = function () {
|
|
|
|
|
|
+ let chatbox;
|
|
|
|
+ const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
+ 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');
|
|
};
|
|
};
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
.then(() => {
|
|
.then(() => {
|
|
- var chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
|
|
+ chatbox = _converse.chatboxes.get(sender_jid);
|
|
_converse.windowState = 'hidden';
|
|
_converse.windowState = 'hidden';
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
expect(chatbox.get('num_unread')).toBe(1);
|
|
expect(chatbox.get('num_unread')).toBe(1);
|
|
done();
|
|
done();
|
|
});
|
|
});
|
|
@@ -1344,17 +1370,19 @@
|
|
|
|
|
|
test_utils.createContacts(_converse, 'current');
|
|
test_utils.createContacts(_converse, 'current');
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
-
|
|
|
|
- var sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
- var msgFactory = function () {
|
|
|
|
|
|
+ let chatbox;
|
|
|
|
+ const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
+ 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');
|
|
};
|
|
};
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
.then(() => {
|
|
.then(() => {
|
|
- var chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
|
|
+ chatbox = _converse.chatboxes.get(sender_jid);
|
|
chatbox.save('scrolled', true);
|
|
chatbox.save('scrolled', true);
|
|
_converse.windowState = 'hidden';
|
|
_converse.windowState = 'hidden';
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
expect(chatbox.get('num_unread')).toBe(1);
|
|
expect(chatbox.get('num_unread')).toBe(1);
|
|
done();
|
|
done();
|
|
});
|
|
});
|
|
@@ -1368,20 +1396,23 @@
|
|
test_utils.createContacts(_converse, 'current');
|
|
test_utils.createContacts(_converse, 'current');
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
|
|
|
|
|
|
+ let chatbox;
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
- var 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');
|
|
};
|
|
};
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
.then(() => {
|
|
.then(() => {
|
|
- const chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
|
|
+ chatbox = _converse.chatboxes.get(sender_jid);
|
|
_converse.windowState = 'hidden';
|
|
_converse.windowState = 'hidden';
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
expect(chatbox.get('num_unread')).toBe(1);
|
|
expect(chatbox.get('num_unread')).toBe(1);
|
|
_converse.saveWindowState(null, 'focus');
|
|
_converse.saveWindowState(null, 'focus');
|
|
expect(chatbox.get('num_unread')).toBe(0);
|
|
expect(chatbox.get('num_unread')).toBe(0);
|
|
done();
|
|
done();
|
|
- });
|
|
|
|
|
|
+ }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL))
|
|
}));
|
|
}));
|
|
|
|
|
|
it("is not cleared when ChatBoxView was scrolled up and the windows become focused",
|
|
it("is not cleared when ChatBoxView was scrolled up and the windows become focused",
|
|
@@ -1391,21 +1422,24 @@
|
|
|
|
|
|
test_utils.createContacts(_converse, 'current');
|
|
test_utils.createContacts(_converse, 'current');
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
- var sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
- var msgFactory = function () {
|
|
|
|
|
|
+ let chatbox;
|
|
|
|
+ const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
+ 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');
|
|
};
|
|
};
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
.then(() => {
|
|
.then(() => {
|
|
- var chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
|
|
+ chatbox = _converse.chatboxes.get(sender_jid);
|
|
chatbox.save('scrolled', true);
|
|
chatbox.save('scrolled', true);
|
|
_converse.windowState = 'hidden';
|
|
_converse.windowState = 'hidden';
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
expect(chatbox.get('num_unread')).toBe(1);
|
|
expect(chatbox.get('num_unread')).toBe(1);
|
|
_converse.saveWindowState(null, 'focus');
|
|
_converse.saveWindowState(null, 'focus');
|
|
expect(chatbox.get('num_unread')).toBe(1);
|
|
expect(chatbox.get('num_unread')).toBe(1);
|
|
done();
|
|
done();
|
|
- });
|
|
|
|
|
|
+ }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL))
|
|
}));
|
|
}));
|
|
});
|
|
});
|
|
|
|
|
|
@@ -1419,28 +1453,29 @@
|
|
test_utils.createContacts(_converse, 'current');
|
|
test_utils.createContacts(_converse, 'current');
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
|
|
|
|
|
|
+ let msg, chatbox, indicator_el, selector;
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500)
|
|
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500)
|
|
.then(() => test_utils.openChatBoxFor(_converse, sender_jid))
|
|
.then(() => test_utils.openChatBoxFor(_converse, sender_jid))
|
|
.then(() => {
|
|
.then(() => {
|
|
- var chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
|
|
+ chatbox = _converse.chatboxes.get(sender_jid);
|
|
chatbox.save('scrolled', true);
|
|
chatbox.save('scrolled', true);
|
|
-
|
|
|
|
- var msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
|
|
|
|
|
|
+ msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
-
|
|
|
|
- var selector = 'a.open-chat:contains("' + chatbox.get('fullname') + '") .msgs-indicator',
|
|
|
|
- indicator_el = sizzle(selector, _converse.rosterview.el).pop();
|
|
|
|
-
|
|
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
|
|
+ selector = 'a.open-chat:contains("' + chatbox.get('fullname') + '") .msgs-indicator';
|
|
|
|
+ indicator_el = sizzle(selector, _converse.rosterview.el).pop();
|
|
expect(indicator_el.textContent).toBe('1');
|
|
expect(indicator_el.textContent).toBe('1');
|
|
|
|
|
|
msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread too');
|
|
msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread too');
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
-
|
|
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
indicator_el = sizzle(selector, _converse.rosterview.el).pop();
|
|
indicator_el = sizzle(selector, _converse.rosterview.el).pop();
|
|
expect(indicator_el.textContent).toBe('2');
|
|
expect(indicator_el.textContent).toBe('2');
|
|
done();
|
|
done();
|
|
- });
|
|
|
|
|
|
+ }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL))
|
|
}));
|
|
}));
|
|
|
|
|
|
it("is updated when message is received and chatbox is minimized",
|
|
it("is updated when message is received and chatbox is minimized",
|
|
@@ -1452,28 +1487,30 @@
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
|
|
|
|
+ let chatbox, indicator_el, msg, selector;
|
|
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500)
|
|
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500)
|
|
.then(() => test_utils.openChatBoxFor(_converse, sender_jid))
|
|
.then(() => test_utils.openChatBoxFor(_converse, sender_jid))
|
|
.then(() => {
|
|
.then(() => {
|
|
- var chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
|
|
+ chatbox = _converse.chatboxes.get(sender_jid);
|
|
var chatboxview = _converse.chatboxviews.get(sender_jid);
|
|
var chatboxview = _converse.chatboxviews.get(sender_jid);
|
|
chatboxview.minimize();
|
|
chatboxview.minimize();
|
|
|
|
|
|
- var msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
|
|
|
|
|
|
+ msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread');
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
-
|
|
|
|
- var selector = 'a.open-chat:contains("' + chatbox.get('fullname') + '") .msgs-indicator',
|
|
|
|
- indicator_el = sizzle(selector, _converse.rosterview.el).pop();
|
|
|
|
-
|
|
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
|
|
+ selector = 'a.open-chat:contains("' + chatbox.get('fullname') + '") .msgs-indicator';
|
|
|
|
+ indicator_el = sizzle(selector, _converse.rosterview.el).pop();
|
|
expect(indicator_el.textContent).toBe('1');
|
|
expect(indicator_el.textContent).toBe('1');
|
|
|
|
|
|
msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread too');
|
|
msg = test_utils.createChatMessage(_converse, sender_jid, 'This message will be unread too');
|
|
_converse.chatboxes.onMessage(msg);
|
|
_converse.chatboxes.onMessage(msg);
|
|
-
|
|
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
indicator_el = sizzle(selector, _converse.rosterview.el).pop();
|
|
indicator_el = sizzle(selector, _converse.rosterview.el).pop();
|
|
expect(indicator_el.textContent).toBe('2');
|
|
expect(indicator_el.textContent).toBe('2');
|
|
done();
|
|
done();
|
|
- });
|
|
|
|
|
|
+ }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL))
|
|
}));
|
|
}));
|
|
|
|
|
|
it("is cleared when chatbox is maximzied after receiving messages in minimized mode",
|
|
it("is cleared when chatbox is maximzied after receiving messages in minimized mode",
|
|
@@ -1484,27 +1521,28 @@
|
|
test_utils.createContacts(_converse, 'current');
|
|
test_utils.createContacts(_converse, 'current');
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
-
|
|
|
|
|
|
+ let chatbox, view, select_msgs_indicator;
|
|
|
|
+ const msgFactory = function () {
|
|
|
|
+ return test_utils.createChatMessage(_converse, sender_jid, 'This message will be received as unread, but eventually will be read');
|
|
|
|
+ };
|
|
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500)
|
|
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500)
|
|
.then(() => test_utils.openChatBoxFor(_converse, sender_jid))
|
|
.then(() => test_utils.openChatBoxFor(_converse, sender_jid))
|
|
.then(() => {
|
|
.then(() => {
|
|
- var chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
- var chatboxview = _converse.chatboxviews.get(sender_jid);
|
|
|
|
|
|
+ chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
+ view = _converse.chatboxviews.get(sender_jid);
|
|
var msgsIndicatorSelector = 'a.open-chat:contains("' + chatbox.get('fullname') + '") .msgs-indicator';
|
|
var msgsIndicatorSelector = 'a.open-chat:contains("' + chatbox.get('fullname') + '") .msgs-indicator';
|
|
- var selectMsgsIndicator = () => $(_converse.rosterview.el).find(msgsIndicatorSelector);
|
|
|
|
- var msgFactory = function () {
|
|
|
|
- return test_utils.createChatMessage(_converse, sender_jid, 'This message will be received as unread, but eventually will be read');
|
|
|
|
- };
|
|
|
|
- chatboxview.minimize();
|
|
|
|
-
|
|
|
|
|
|
+ select_msgs_indicator = () => $(_converse.rosterview.el).find(msgsIndicatorSelector);
|
|
|
|
+ view.minimize();
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
- expect(selectMsgsIndicator().text()).toBe('1');
|
|
|
|
-
|
|
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
|
|
+ expect(select_msgs_indicator().text()).toBe('1');
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
- expect(selectMsgsIndicator().text()).toBe('2');
|
|
|
|
-
|
|
|
|
- chatboxview.maximize();
|
|
|
|
- expect(selectMsgsIndicator().length).toBe(0);
|
|
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
|
|
+ expect(select_msgs_indicator().text()).toBe('2');
|
|
|
|
+ view.maximize();
|
|
|
|
+ expect(select_msgs_indicator().length).toBe(0);
|
|
done();
|
|
done();
|
|
});
|
|
});
|
|
}));
|
|
}));
|
|
@@ -1518,27 +1556,27 @@
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
|
|
|
|
+ let view, chatbox, select_msgs_indicator;
|
|
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500)
|
|
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500)
|
|
.then(() => test_utils.openChatBoxFor(_converse, sender_jid))
|
|
.then(() => test_utils.openChatBoxFor(_converse, sender_jid))
|
|
.then(() => {
|
|
.then(() => {
|
|
- var chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
- var chatboxview = _converse.chatboxviews.get(sender_jid);
|
|
|
|
|
|
+ chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
+ view = _converse.chatboxviews.get(sender_jid);
|
|
var msgFactory = function () {
|
|
var 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');
|
|
};
|
|
};
|
|
- var msgsIndicatorSelector = 'a.open-chat:contains("' + chatbox.get('fullname') + '") .msgs-indicator',
|
|
|
|
- selectMsgsIndicator = () => $(_converse.rosterview.el).find(msgsIndicatorSelector);
|
|
|
|
-
|
|
|
|
|
|
+ var msgsIndicatorSelector = 'a.open-chat:contains("' + chatbox.get('fullname') + '") .msgs-indicator';
|
|
|
|
+ select_msgs_indicator = () => $(_converse.rosterview.el).find(msgsIndicatorSelector);
|
|
chatbox.save('scrolled', true);
|
|
chatbox.save('scrolled', true);
|
|
-
|
|
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
- expect(selectMsgsIndicator().text()).toBe('1');
|
|
|
|
-
|
|
|
|
- chatboxview.viewUnreadMessages();
|
|
|
|
|
|
+ return test_utils.waitUntil(() => view.model.messages.length);
|
|
|
|
+ }).then(() => {
|
|
|
|
+ expect(select_msgs_indicator().text()).toBe('1');
|
|
|
|
+ view.viewUnreadMessages();
|
|
_converse.rosterview.render();
|
|
_converse.rosterview.render();
|
|
- expect(selectMsgsIndicator().length).toBe(0);
|
|
|
|
|
|
+ expect(select_msgs_indicator().length).toBe(0);
|
|
done();
|
|
done();
|
|
- });
|
|
|
|
|
|
+ }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL))
|
|
}));
|
|
}));
|
|
|
|
|
|
it("is not cleared after user clicks on roster view when chatbox is already opened and scrolled up",
|
|
it("is not cleared after user clicks on roster view when chatbox is already opened and scrolled up",
|
|
@@ -1550,24 +1588,25 @@
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
|
|
|
|
+ let select_msgs_indicator, view;
|
|
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500)
|
|
test_utils.waitUntil(() => _converse.rosterview.el.querySelectorAll('.roster-group').length, 500)
|
|
.then(() => test_utils.openChatBoxFor(_converse, sender_jid))
|
|
.then(() => test_utils.openChatBoxFor(_converse, sender_jid))
|
|
.then(() => {
|
|
.then(() => {
|
|
- var chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
- var chatboxview = _converse.chatboxviews.get(sender_jid);
|
|
|
|
|
|
+ const chatbox = _converse.chatboxes.get(sender_jid);
|
|
|
|
+ view = _converse.chatboxviews.get(sender_jid);
|
|
var msgFactory = function () {
|
|
var 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');
|
|
};
|
|
};
|
|
- var msgsIndicatorSelector = 'a.open-chat:contains("' + chatbox.get('fullname') + '") .msgs-indicator',
|
|
|
|
- selectMsgsIndicator = () => $(_converse.rosterview.el).find(msgsIndicatorSelector);
|
|
|
|
-
|
|
|
|
|
|
+ var msgsIndicatorSelector = 'a.open-chat:contains("' + chatbox.get('fullname') + '") .msgs-indicator';
|
|
|
|
+ select_msgs_indicator = () => $(_converse.rosterview.el).find(msgsIndicatorSelector);
|
|
chatbox.save('scrolled', true);
|
|
chatbox.save('scrolled', true);
|
|
-
|
|
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
- expect(selectMsgsIndicator().text()).toBe('1');
|
|
|
|
-
|
|
|
|
- test_utils.openChatBoxFor(_converse, sender_jid);
|
|
|
|
- expect(selectMsgsIndicator().text()).toBe('1');
|
|
|
|
|
|
+ return test_utils.waitUntil(() => view.model.messages.length);
|
|
|
|
+ }).then(() => {
|
|
|
|
+ expect(select_msgs_indicator().text()).toBe('1');
|
|
|
|
+ return test_utils.openChatBoxFor(_converse, sender_jid);
|
|
|
|
+ }).then(() => {
|
|
|
|
+ expect(select_msgs_indicator().text()).toBe('1');
|
|
done();
|
|
done();
|
|
});
|
|
});
|
|
}));
|
|
}));
|
|
@@ -1584,20 +1623,21 @@
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
|
|
|
|
+ let selectUnreadMsgCount;
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
.then(() => {
|
|
.then(() => {
|
|
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');
|
|
};
|
|
};
|
|
- const selectUnreadMsgCount = function () {
|
|
|
|
|
|
+ selectUnreadMsgCount = function () {
|
|
const minimizedChatBoxView = _converse.minimized_chats.get(sender_jid);
|
|
const minimizedChatBoxView = _converse.minimized_chats.get(sender_jid);
|
|
return minimizedChatBoxView.el.querySelector('.message-count');
|
|
return minimizedChatBoxView.el.querySelector('.message-count');
|
|
};
|
|
};
|
|
-
|
|
|
|
const chatbox = _converse.chatboxes.get(sender_jid);
|
|
const chatbox = _converse.chatboxes.get(sender_jid);
|
|
chatbox.save('scrolled', true);
|
|
chatbox.save('scrolled', true);
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
-
|
|
|
|
|
|
+ return test_utils.waitUntil(() => chatbox.messages.length);
|
|
|
|
+ }).then(() => {
|
|
const chatboxview = _converse.chatboxviews.get(sender_jid);
|
|
const chatboxview = _converse.chatboxviews.get(sender_jid);
|
|
chatboxview.minimize();
|
|
chatboxview.minimize();
|
|
|
|
|
|
@@ -1605,7 +1645,7 @@
|
|
expect(u.isVisible(unread_count)).toBeTruthy();
|
|
expect(u.isVisible(unread_count)).toBeTruthy();
|
|
expect(unread_count.innerHTML).toBe('1');
|
|
expect(unread_count.innerHTML).toBe('1');
|
|
done();
|
|
done();
|
|
- });
|
|
|
|
|
|
+ }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL))
|
|
}));
|
|
}));
|
|
|
|
|
|
it("is incremented when message is received and windows is not focused",
|
|
it("is incremented when message is received and windows is not focused",
|
|
@@ -1617,27 +1657,27 @@
|
|
_converse.emit('rosterContactsFetched');
|
|
_converse.emit('rosterContactsFetched');
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
const sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
|
|
|
|
|
|
|
|
+ let selectUnreadMsgCount;
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
test_utils.openChatBoxFor(_converse, sender_jid)
|
|
.then(() => {
|
|
.then(() => {
|
|
const msgFactory = function () {
|
|
const msgFactory = function () {
|
|
return test_utils.createChatMessage(_converse, sender_jid,
|
|
return test_utils.createChatMessage(_converse, sender_jid,
|
|
'This message will be received as unread, but eventually will be read');
|
|
'This message will be received as unread, but eventually will be read');
|
|
};
|
|
};
|
|
- const selectUnreadMsgCount = function () {
|
|
|
|
|
|
+ selectUnreadMsgCount = function () {
|
|
const minimizedChatBoxView = _converse.minimized_chats.get(sender_jid);
|
|
const minimizedChatBoxView = _converse.minimized_chats.get(sender_jid);
|
|
return minimizedChatBoxView.el.querySelector('.message-count');
|
|
return minimizedChatBoxView.el.querySelector('.message-count');
|
|
};
|
|
};
|
|
-
|
|
|
|
- const chatboxview = _converse.chatboxviews.get(sender_jid);
|
|
|
|
- chatboxview.minimize();
|
|
|
|
-
|
|
|
|
|
|
+ const view = _converse.chatboxviews.get(sender_jid);
|
|
|
|
+ view.minimize();
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
_converse.chatboxes.onMessage(msgFactory());
|
|
-
|
|
|
|
|
|
+ return test_utils.waitUntil(() => view.model.messages.length);
|
|
|
|
+ }).then(() => {
|
|
const unread_count = selectUnreadMsgCount();
|
|
const unread_count = selectUnreadMsgCount();
|
|
expect(u.isVisible(unread_count)).toBeTruthy();
|
|
expect(u.isVisible(unread_count)).toBeTruthy();
|
|
expect(unread_count.innerHTML).toBe('1');
|
|
expect(unread_count.innerHTML).toBe('1');
|
|
done();
|
|
done();
|
|
- });
|
|
|
|
|
|
+ }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL))
|
|
}));
|
|
}));
|
|
|
|
|
|
it("will render Openstreetmap-URL from geo-URI",
|
|
it("will render Openstreetmap-URL from geo-URI",
|