bookmarks: Fix remaining broken tests.

This commit is contained in:
JC Brand 2017-05-09 09:45:12 +02:00
parent 07dbf14a7d
commit d50992b130
2 changed files with 59 additions and 12 deletions

View File

@ -309,11 +309,14 @@
if (!(stanza instanceof Element) || stanza.nodeName !== 'iq') { if (!(stanza instanceof Element) || stanza.nodeName !== 'iq') {
return; return;
} }
if (stanza.outerHTML === // XXX: Wrapping in a div is a workaround for PhantomJS
var div = document.createElement('div');
div.appendChild(stanza);
if (div.innerHTML ===
'<iq from="dummy@localhost/resource" type="get" '+ '<iq from="dummy@localhost/resource" type="get" '+
'xmlns="jabber:client" id="'+stanza.getAttribute('id')+'">'+ 'xmlns="jabber:client" id="'+stanza.getAttribute('id')+'">'+
'<pubsub xmlns="http://jabber.org/protocol/pubsub">'+ '<pubsub xmlns="http://jabber.org/protocol/pubsub">'+
'<items node="storage:bookmarks"/>'+ '<items node="storage:bookmarks"></items>'+
'</pubsub>'+ '</pubsub>'+
'</iq>') { '</iq>') {
IQ_id = stanza.getAttribute('id'); IQ_id = stanza.getAttribute('id');
@ -366,14 +369,29 @@
describe("The rooms panel", function () { describe("The rooms panel", function () {
it("shows a list of bookmarks", mock.initConverse(function (_converse) { it("shows a list of bookmarks", mock.initConverseWithConnectionSpies(['send'], function (_converse) {
var IQ_id; var IQ_id;
var sendIQ = _converse.connection.sendIQ; expect(_.filter(_converse.connection.send.calls.all(), function (call) {
spyOn(_converse.connection, 'sendIQ').and.callFake(function (iq, callback, errback) { var stanza = call.args[0]
IQ_id = sendIQ.bind(this)(iq, callback, errback); if (!(stanza instanceof Element) || stanza.nodeName !== 'iq') {
}); return;
}
// XXX: Wrapping in a div is a workaround for PhantomJS
var div = document.createElement('div');
div.appendChild(stanza);
if (div.innerHTML ===
'<iq from="dummy@localhost/resource" type="get" '+
'xmlns="jabber:client" id="'+stanza.getAttribute('id')+'">'+
'<pubsub xmlns="http://jabber.org/protocol/pubsub">'+
'<items node="storage:bookmarks"></items>'+
'</pubsub>'+
'</iq>') {
IQ_id = stanza.getAttribute('id');
return true;
}
}).length).toBe(1);
_converse.chatboxviews.get('controlbox').$('#chatrooms dl.bookmarks').html(''); _converse.chatboxviews.get('controlbox').$('#chatrooms dl.bookmarks').html('');
_converse.emit('chatBoxesFetched');
var stanza = $iq({'to': _converse.connection.jid, 'type':'result', 'id':IQ_id}) var stanza = $iq({'to': _converse.connection.jid, 'type':'result', 'id':IQ_id})
.c('pubsub', {'xmlns': Strophe.NS.PUBSUB}) .c('pubsub', {'xmlns': Strophe.NS.PUBSUB})
.c('items', {'node': 'storage:bookmarks'}) .c('items', {'node': 'storage:bookmarks'})
@ -398,14 +416,42 @@
expect($('#chatrooms dl.bookmarks dd').length).toBe(3); expect($('#chatrooms dl.bookmarks dd').length).toBe(3);
})); }));
it("remembers the toggle state of the bookmarks list", mock.initConverse(function (_converse) { it("remembers the toggle state of the bookmarks list",
mock.initConverseWithConnectionSpies(['send'], function (_converse) {
var IQ_id;
expect(_.filter(_converse.connection.send.calls.all(), function (call) {
var stanza = call.args[0]
if (!(stanza instanceof Element) || stanza.nodeName !== 'iq') {
return;
}
// XXX: Wrapping in a div is a workaround for PhantomJS
var div = document.createElement('div');
div.appendChild(stanza);
if (div.innerHTML ===
'<iq from="dummy@localhost/resource" type="get" '+
'xmlns="jabber:client" id="'+stanza.getAttribute('id')+'">'+
'<pubsub xmlns="http://jabber.org/protocol/pubsub">'+
'<items node="storage:bookmarks"></items>'+
'</pubsub>'+
'</iq>') {
IQ_id = stanza.getAttribute('id');
return true;
}
}).length).toBe(1);
_converse.chatboxviews.get('controlbox').$('#chatrooms dl.bookmarks').html('');
var stanza = $iq({'to': _converse.connection.jid, 'type':'result', 'id':IQ_id})
.c('pubsub', {'xmlns': Strophe.NS.PUBSUB})
.c('items', {'node': 'storage:bookmarks'})
.c('item', {'id': 'current'})
.c('storage', {'xmlns': 'storage:bookmarks'});
_converse.connection._dataRecv(test_utils.createRequest(stanza));
_converse.bookmarks.create({ _converse.bookmarks.create({
'jid': 'theplay@conference.shakespeare.lit', 'jid': 'theplay@conference.shakespeare.lit',
'autojoin': false, 'autojoin': false,
'name': 'The Play', 'name': 'The Play',
'nick': '' 'nick': ''
}); });
_converse.emit('chatBoxesFetched');
test_utils.openControlBox().openRoomsPanel(_converse); test_utils.openControlBox().openRoomsPanel(_converse);
expect($('#chatrooms dl.bookmarks dd:visible').length).toBe(1); expect($('#chatrooms dl.bookmarks dd:visible').length).toBe(1);
expect(_converse.bookmarksview.list_model.get('toggle-state')).toBe(_converse.OPENED); expect(_converse.bookmarksview.list_model.get('toggle-state')).toBe(_converse.OPENED);

View File

@ -38,8 +38,9 @@
* config of requirejs-tpl in main.js). This one is for normal inline templates. * config of requirejs-tpl in main.js). This one is for normal inline templates.
*/ */
_.templateSettings = { _.templateSettings = {
evaluate : /\{\[([\s\S]+?)\]\}/g, 'escape': /\{\{\{([\s\S]+?)\}\}\}/g,
interpolate : /\{\{([\s\S]+?)\}\}/g 'evaluate': /\{\[([\s\S]+?)\]\}/g,
'interpolate': /\{\{([\s\S]+?)\}\}/g
}; };
var _converse = {}; var _converse = {};