xmpp.chapril.org-conversejs/spec/ping.js
2019-06-03 09:43:24 +02:00

55 lines
2.2 KiB
JavaScript

(function (root, factory) {
define(["jasmine", "mock", "test-utils"], factory);
} (this, function (jasmine, mock, test_utils) {
"use strict";
describe("XMPP Ping", function () {
describe("Ping and pong handlers", function () {
it("are registered when _converse.js is connected",
mock.initConverse(
null, ['rosterGroupsFetched'], {},
function (done, _converse) {
spyOn(_converse, 'registerPingHandler').and.callThrough();
spyOn(_converse, 'registerPongHandler').and.callThrough();
_converse.api.trigger('connected');
expect(_converse.registerPingHandler).toHaveBeenCalled();
expect(_converse.registerPongHandler).toHaveBeenCalled();
done();
}));
it("are registered when _converse.js reconnected",
mock.initConverse(
null, ['rosterGroupsFetched'], {},
function (done, _converse) {
spyOn(_converse, 'registerPingHandler').and.callThrough();
spyOn(_converse, 'registerPongHandler').and.callThrough();
_converse.api.trigger('reconnected');
expect(_converse.registerPingHandler).toHaveBeenCalled();
expect(_converse.registerPongHandler).toHaveBeenCalled();
done();
}));
});
describe("An IQ stanza", function () {
it("is sent out when _converse.js pings a server", mock.initConverse((done, _converse) => {
let sent_stanza, IQ_id;
const sendIQ = _converse.connection.sendIQ;
spyOn(_converse.connection, 'sendIQ').and.callFake(function (iq, callback, errback) {
sent_stanza = iq;
IQ_id = sendIQ.bind(this)(iq, callback, errback);
});
_converse.ping();
expect(sent_stanza.toLocaleString()).toBe(
`<iq id="${IQ_id}" to="montague.lit" type="get" xmlns="jabber:client">`+
`<ping xmlns="urn:xmpp:ping"/>`+
`</iq>`);
done();
}));
});
});
}));