2
0

utils.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. (function (root, factory) {
  2. define(["jasmine"], factory);
  3. } (this, function (jasmine) {
  4. var utils = converse.env.utils,
  5. _ = converse.env._;
  6. return describe("Converse.js Utilities", function() {
  7. it("applyUserSettings: recursively applies user settings", function () {
  8. var context = {};
  9. var settings = {
  10. show_toolbar: true,
  11. chatview_avatar_width: 32,
  12. chatview_avatar_height: 32,
  13. auto_join_rooms: [],
  14. visible_toolbar_buttons: {
  15. 'emojis': true,
  16. 'call': false,
  17. 'clear': true,
  18. 'toggle_occupants': true
  19. }
  20. };
  21. _.extend(context, settings);
  22. var user_settings = {
  23. something_else: 'xxx',
  24. show_toolbar: false,
  25. chatview_avatar_width: 32,
  26. chatview_avatar_height: 48,
  27. auto_join_rooms: [
  28. 'anonymous@conference.nomnom.im',
  29. ],
  30. visible_toolbar_buttons: {
  31. 'emojis': false,
  32. 'call': false,
  33. 'toggle_occupants':false,
  34. 'invalid': false
  35. }
  36. };
  37. utils.applyUserSettings(context, settings, user_settings);
  38. expect(context.something_else).toBeUndefined();
  39. expect(context.show_toolbar).toBeFalsy();
  40. expect(context.chatview_avatar_width).toBe(32);
  41. expect(context.chatview_avatar_height).toBe(48);
  42. expect(_.keys(context.visible_toolbar_buttons)).toEqual(_.keys(settings.visible_toolbar_buttons));
  43. expect(context.visible_toolbar_buttons.emojis).toBeFalsy();
  44. expect(context.visible_toolbar_buttons.call).toBeFalsy();
  45. expect(context.visible_toolbar_buttons.toggle_occupants).toBeFalsy();
  46. expect(context.visible_toolbar_buttons.invalid).toBeFalsy();
  47. expect(context.auto_join_rooms.length).toBe(1);
  48. expect(context.auto_join_rooms[0]).toBe('anonymous@conference.nomnom.im');
  49. user_settings = {
  50. visible_toolbar_buttons: {
  51. 'toggle_occupants': true
  52. }
  53. };
  54. utils.applyUserSettings(context, settings, user_settings);
  55. expect(_.keys(context.visible_toolbar_buttons)).toEqual(_.keys(settings.visible_toolbar_buttons));
  56. expect(context.visible_toolbar_buttons.toggle_occupants).toBeTruthy();
  57. });
  58. });
  59. }));