ping.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. (function (root, factory) {
  2. define(["mock", "converse-core", "test-utils", "converse-ping"], factory);
  3. } (this, function (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", mock.initConverse(function (_converse) {
  8. spyOn(_converse, 'registerPingHandler').and.callThrough();
  9. spyOn(_converse, 'registerPongHandler').and.callThrough();
  10. _converse.emit('connected');
  11. expect(_converse.registerPingHandler).toHaveBeenCalled();
  12. expect(_converse.registerPongHandler).toHaveBeenCalled();
  13. }));
  14. it("are registered when _converse.js reconnected", mock.initConverse(function (_converse) {
  15. spyOn(_converse, 'registerPingHandler').and.callThrough();
  16. spyOn(_converse, 'registerPongHandler').and.callThrough();
  17. _converse.emit('reconnected');
  18. expect(_converse.registerPingHandler).toHaveBeenCalled();
  19. expect(_converse.registerPongHandler).toHaveBeenCalled();
  20. }));
  21. });
  22. describe("An IQ stanza", function () {
  23. it("is sent out when _converse.js pings a server", mock.initConverse(function (_converse) {
  24. var sent_stanza, IQ_id;
  25. var sendIQ = _converse.connection.sendIQ;
  26. spyOn(_converse.connection, 'sendIQ').and.callFake(function (iq, callback, errback) {
  27. sent_stanza = iq;
  28. IQ_id = sendIQ.bind(this)(iq, callback, errback);
  29. });
  30. _converse.ping();
  31. expect(sent_stanza.toLocaleString()).toBe(
  32. "<iq type='get' to='localhost' id='"+IQ_id+"' xmlns='jabber:client'>"+
  33. "<ping xmlns='urn:xmpp:ping'/>"+
  34. "</iq>");
  35. }));
  36. });
  37. });
  38. }));