converse.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. (function (root, factory) {
  2. define([
  3. "jquery",
  4. "mock",
  5. "test_utils"
  6. ], function ($, mock, test_utils) {
  7. return factory($, mock, test_utils);
  8. }
  9. );
  10. } (this, function ($, mock, test_utils) {
  11. return describe("Converse", $.proxy(function(mock, test_utils) {
  12. describe("The \"tokens\" API", $.proxy(function () {
  13. beforeEach($.proxy(function () {
  14. test_utils.closeAllChatBoxes();
  15. test_utils.clearBrowserStorage();
  16. converse.rosterview.model.reset();
  17. test_utils.createContacts('current');
  18. }, converse));
  19. it("has a method for retrieving the next RID", $.proxy(function () {
  20. var old_connection = converse.connection;
  21. converse.connection._proto.rid = '1234';
  22. converse.expose_rid_and_sid = false;
  23. expect(converse_api.tokens.get('rid')).toBe(null);
  24. converse.expose_rid_and_sid = true;
  25. expect(converse_api.tokens.get('rid')).toBe('1234');
  26. converse.connection = undefined;
  27. expect(converse_api.tokens.get('rid')).toBe(null);
  28. // Restore the connection
  29. converse.connection = old_connection;
  30. }, converse));
  31. it("has a method for retrieving the SID", $.proxy(function () {
  32. var old_connection = converse.connection;
  33. converse.connection._proto.sid = '1234';
  34. converse.expose_rid_and_sid = false;
  35. expect(converse_api.tokens.get('sid')).toBe(null);
  36. converse.expose_rid_and_sid = true;
  37. expect(converse_api.tokens.get('sid')).toBe('1234');
  38. converse.connection = undefined;
  39. expect(converse_api.tokens.get('sid')).toBe(null);
  40. // Restore the connection
  41. converse.connection = old_connection;
  42. }, converse));
  43. }, converse));
  44. describe("The \"contacts\" API", $.proxy(function () {
  45. beforeEach($.proxy(function () {
  46. test_utils.closeAllChatBoxes();
  47. test_utils.clearBrowserStorage();
  48. converse.rosterview.model.reset();
  49. test_utils.createContacts('current');
  50. }, converse));
  51. it("has a method 'get' which returns a wrapped contact", $.proxy(function () {
  52. // TODO: test multiple JIDs passed in
  53. var jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
  54. expect(converse_api.contacts.get('non-existing@jabber.org')).toBeFalsy();
  55. var attrs = converse_api.contacts.get(jid);
  56. expect(typeof attrs).toBe('object');
  57. expect(attrs.fullname).toBe(mock.cur_names[0]);
  58. expect(attrs.jid).toBe(jid);
  59. }, converse));
  60. }, converse));
  61. describe("The \"chats\" API", $.proxy(function() {
  62. beforeEach($.proxy(function () {
  63. test_utils.closeAllChatBoxes();
  64. test_utils.clearBrowserStorage();
  65. converse.rosterview.model.reset();
  66. test_utils.createContacts('current');
  67. }, converse));
  68. it("has a method 'get' which returns a wrapped chat box object", $.proxy(function () {
  69. // TODO: test multiple JIDs passed in
  70. // FIXME: when a non-existing chat box is "get(ted)", it's
  71. // opened, which we don't want...
  72. expect(converse_api.chats.get('non-existing@jabber.org')).toBeFalsy(); // test on user that doesn't exist.
  73. var jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
  74. var box = converse_api.chats.get(jid);
  75. expect(box instanceof Object).toBeTruthy();
  76. expect(box.get('box_id')).toBe(b64_sha1(jid));
  77. var chatboxview = this.chatboxviews.get(jid);
  78. expect(chatboxview.$el.is(':visible')).toBeTruthy();
  79. }, converse));
  80. }, converse));
  81. describe("The \"settings\" API", $.proxy(function() {
  82. beforeEach($.proxy(function () {
  83. test_utils.closeAllChatBoxes();
  84. test_utils.clearBrowserStorage();
  85. converse.rosterview.model.reset();
  86. test_utils.createContacts('current');
  87. }, converse));
  88. it("has methods 'get' and 'set' to set configuration settings", $.proxy(function () {
  89. expect(Object.keys(converse_api.settings)).toEqual(["get", "set"]);
  90. expect(converse_api.settings.get("play_sounds")).toBe(false);
  91. converse_api.settings.set("play_sounds", true);
  92. expect(converse_api.settings.get("play_sounds")).toBe(true);
  93. converse_api.settings.set({"play_sounds": false});
  94. expect(converse_api.settings.get("play_sounds")).toBe(false);
  95. // Only whitelisted settings allowed.
  96. expect(typeof converse_api.settings.get("non_existing")).toBe("undefined");
  97. converse_api.settings.set("non_existing", true);
  98. expect(typeof converse_api.settings.get("non_existing")).toBe("undefined");
  99. }, converse));
  100. }, converse));
  101. describe("The DEPRECATED API", $.proxy(function() {
  102. beforeEach($.proxy(function () {
  103. test_utils.closeAllChatBoxes();
  104. test_utils.clearBrowserStorage();
  105. converse.rosterview.model.reset();
  106. test_utils.createContacts('current');
  107. }, converse));
  108. it("has a method for retrieving the next RID", $.proxy(function () {
  109. var old_connection = converse.connection;
  110. converse.connection._proto.rid = '1234';
  111. converse.expose_rid_and_sid = false;
  112. expect(converse_api.getRID()).toBe(null);
  113. converse.expose_rid_and_sid = true;
  114. expect(converse_api.getRID()).toBe('1234');
  115. converse.connection = undefined;
  116. expect(converse_api.getRID()).toBe(null);
  117. // Restore the connection
  118. converse.connection = old_connection;
  119. }, converse));
  120. it("has a method for retrieving the SID", $.proxy(function () {
  121. var old_connection = converse.connection;
  122. converse.connection._proto.sid = '1234';
  123. converse.expose_rid_and_sid = false;
  124. expect(converse_api.getSID()).toBe(null);
  125. converse.expose_rid_and_sid = true;
  126. expect(converse_api.getSID()).toBe('1234');
  127. converse.connection = undefined;
  128. expect(converse_api.getSID()).toBe(null);
  129. // Restore the connection
  130. converse.connection = old_connection;
  131. }, converse));
  132. it("has a method for retrieving a buddy's attributes", $.proxy(function () {
  133. var jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
  134. expect(converse_api.getBuddy('non-existing@jabber.org')).toBeFalsy();
  135. var attrs = converse_api.getBuddy(jid);
  136. expect(typeof attrs).toBe('object');
  137. expect(attrs.fullname).toBe(mock.cur_names[0]);
  138. expect(attrs.jid).toBe(jid);
  139. }, converse));
  140. }, converse));
  141. }, converse, mock, test_utils));
  142. }));