utils.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. (function (root, factory) {
  2. define(["converse-api"], factory);
  3. } (this, function (converse_api) {
  4. var utils = converse_api.env.utils,
  5. _ = converse_api.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. visible_toolbar_buttons: {
  14. 'emoticons': true,
  15. 'call': false,
  16. 'clear': true,
  17. 'toggle_occupants': true
  18. }
  19. };
  20. _.extend(context, settings);
  21. var user_settings = {
  22. something_else: 'xxx',
  23. show_toolbar: false,
  24. chatview_avatar_width: 32,
  25. chatview_avatar_height: 48,
  26. visible_toolbar_buttons: {
  27. 'emoticons': false,
  28. 'call': false,
  29. 'toggle_occupants':false,
  30. 'invalid': false
  31. }
  32. };
  33. utils.applyUserSettings(context, settings, user_settings);
  34. expect(context.something_else).toBeUndefined();
  35. expect(context.show_toolbar).toBeFalsy();
  36. expect(context.chatview_avatar_width).toBe(32);
  37. expect(context.chatview_avatar_height).toBe(48);
  38. expect(Object.keys(context.visible_toolbar_buttons)).toEqual(Object.keys(settings.visible_toolbar_buttons));
  39. expect(context.visible_toolbar_buttons.emoticons).toBeFalsy();
  40. expect(context.visible_toolbar_buttons.call).toBeFalsy();
  41. expect(context.visible_toolbar_buttons.toggle_occupants).toBeFalsy();
  42. expect(context.visible_toolbar_buttons.invalid).toBeFalsy();
  43. });
  44. });
  45. }));