login.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. (function (root, factory) {
  2. define(["jasmine", "mock", "test-utils"], factory);
  3. } (this, function (jasmine, mock, test_utils) {
  4. const u = converse.env.utils;
  5. describe("The Login Form", function () {
  6. it("contains a checkbox to indicate whether the computer is trusted or not",
  7. mock.initConverse(
  8. ['chatBoxesInitialized'],
  9. { auto_login: false,
  10. allow_registration: false },
  11. async function (done, _converse) {
  12. test_utils.openControlBox(_converse);
  13. const cbview = await u.waitUntil(() => _converse.chatboxviews.get('controlbox'));
  14. const checkboxes = cbview.el.querySelectorAll('input[type="checkbox"]');
  15. expect(checkboxes.length).toBe(1);
  16. const checkbox = checkboxes[0];
  17. const label = cbview.el.querySelector(`label[for="${checkbox.getAttribute('id')}"]`);
  18. expect(label.textContent).toBe('This is a trusted device');
  19. expect(checkbox.checked).toBe(true);
  20. cbview.el.querySelector('input[name="jid"]').value = 'romeo@montague.lit';
  21. cbview.el.querySelector('input[name="password"]').value = 'secret';
  22. spyOn(cbview.loginpanel, 'connect');
  23. cbview.delegateEvents();
  24. expect(_converse.config.get('storage')).toBe('persistent');
  25. cbview.el.querySelector('input[type="submit"]').click();
  26. expect(_converse.config.get('storage')).toBe('persistent');
  27. expect(cbview.loginpanel.connect).toHaveBeenCalled();
  28. checkbox.click();
  29. cbview.el.querySelector('input[type="submit"]').click();
  30. expect(_converse.config.get('storage')).toBe('session');
  31. done();
  32. }));
  33. it("checkbox can be set to false by default",
  34. mock.initConverse(
  35. ['chatBoxesInitialized'],
  36. { auto_login: false,
  37. trusted: false,
  38. allow_registration: false },
  39. function (done, _converse) {
  40. u.waitUntil(() => _converse.chatboxviews.get('controlbox'))
  41. .then(() => {
  42. var cbview = _converse.chatboxviews.get('controlbox');
  43. test_utils.openControlBox(_converse);
  44. const checkboxes = cbview.el.querySelectorAll('input[type="checkbox"]');
  45. expect(checkboxes.length).toBe(1);
  46. const checkbox = checkboxes[0];
  47. const label = cbview.el.querySelector(`label[for="${checkbox.getAttribute('id')}"]`);
  48. expect(label.textContent).toBe('This is a trusted device');
  49. expect(checkbox.checked).toBe(false);
  50. cbview.el.querySelector('input[name="jid"]').value = 'romeo@montague.lit';
  51. cbview.el.querySelector('input[name="password"]').value = 'secret';
  52. spyOn(cbview.loginpanel, 'connect');
  53. expect(_converse.config.get('storage')).toBe('session');
  54. cbview.el.querySelector('input[type="submit"]').click();
  55. expect(_converse.config.get('storage')).toBe('session');
  56. expect(cbview.loginpanel.connect).toHaveBeenCalled();
  57. checkbox.click();
  58. cbview.el.querySelector('input[type="submit"]').click();
  59. expect(_converse.config.get('storage')).toBe('persistent');
  60. done();
  61. });
  62. }));
  63. });
  64. }));