ping.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. (function (root, factory) {
  2. define(["jasmine", "mock", "converse-core", "test-utils", "converse-ping"], 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.initConverseWithPromises(
  9. null, ['rosterGroupsFetched'], {},
  10. function (done, _converse) {
  11. spyOn(_converse, 'registerPingHandler').and.callThrough();
  12. spyOn(_converse, 'registerPongHandler').and.callThrough();
  13. _converse.emit('connected');
  14. expect(_converse.registerPingHandler).toHaveBeenCalled();
  15. expect(_converse.registerPongHandler).toHaveBeenCalled();
  16. done();
  17. }));
  18. it("are registered when _converse.js reconnected",
  19. mock.initConverseWithPromises(
  20. null, ['rosterGroupsFetched'], {},
  21. function (done, _converse) {
  22. spyOn(_converse, 'registerPingHandler').and.callThrough();
  23. spyOn(_converse, 'registerPongHandler').and.callThrough();
  24. _converse.emit('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(function (_converse) {
  32. var sent_stanza, IQ_id;
  33. var 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 type='get' to='localhost' id='"+IQ_id+"' xmlns='jabber:client'>"+
  41. "<ping xmlns='urn:xmpp:ping'/>"+
  42. "</iq>");
  43. }));
  44. });
  45. });
  46. }));