ping.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. (function (root, factory) {
  2. define(["jasmine", "mock", "test-utils"], factory);
  3. } (this, function (jasmine, mock, test_utils) {
  4. "use strict";
  5. describe("XMPP Ping", function () {
  6. describe("Ping and pong handlers", function () {
  7. it("are registered when _converse.js is connected",
  8. mock.initConverse(
  9. null, ['rosterGroupsFetched'], {},
  10. function (done, _converse) {
  11. spyOn(_converse, 'registerPingHandler').and.callThrough();
  12. spyOn(_converse, 'registerPongHandler').and.callThrough();
  13. _converse.api.trigger('connected');
  14. expect(_converse.registerPingHandler).toHaveBeenCalled();
  15. expect(_converse.registerPongHandler).toHaveBeenCalled();
  16. done();
  17. }));
  18. it("are registered when _converse.js reconnected",
  19. mock.initConverse(
  20. null, ['rosterGroupsFetched'], {},
  21. function (done, _converse) {
  22. spyOn(_converse, 'registerPingHandler').and.callThrough();
  23. spyOn(_converse, 'registerPongHandler').and.callThrough();
  24. _converse.api.trigger('reconnected');
  25. expect(_converse.registerPingHandler).toHaveBeenCalled();
  26. expect(_converse.registerPongHandler).toHaveBeenCalled();
  27. done();
  28. }));
  29. });
  30. describe("An IQ stanza", function () {
  31. it("is sent out when _converse.js pings a server", mock.initConverse((done, _converse) => {
  32. let sent_stanza, IQ_id;
  33. const sendIQ = _converse.connection.sendIQ;
  34. spyOn(_converse.connection, 'sendIQ').and.callFake(function (iq, callback, errback) {
  35. sent_stanza = iq;
  36. IQ_id = sendIQ.bind(this)(iq, callback, errback);
  37. });
  38. _converse.ping();
  39. expect(sent_stanza.toLocaleString()).toBe(
  40. `<iq id="${IQ_id}" to="montague.lit" type="get" xmlns="jabber:client">`+
  41. `<ping xmlns="urn:xmpp:ping"/>`+
  42. `</iq>`);
  43. done();
  44. }));
  45. });
  46. });
  47. }));