Prompt.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. 'use strict';
  2. require('../common');
  3. describe('Prompt', function () {
  4. describe('requestPassword & getPassword', function () {
  5. this.timeout(30000);
  6. jsc.property(
  7. 'returns the password fed into the dialog',
  8. 'string',
  9. function (password) {
  10. password = password.replace(/\r+|\n+/g, '');
  11. const clean = jsdom('', {url: 'ftp://example.com/?0000000000000000'});
  12. $('body').html(
  13. '<div id="passwordmodal" class="modal fade" role="dialog">' +
  14. '<div class="modal-dialog"><div class="modal-content">' +
  15. '<div class="modal-body"><form id="passwordform" role="form">' +
  16. '<div class="form-group"><input id="passworddecrypt" ' +
  17. 'type="password" class="form-control" placeholder="Enter ' +
  18. 'password"></div><button type="submit">Decrypt</button>' +
  19. '</form></div></div></div></div>'
  20. );
  21. $.PrivateBin.Model.reset();
  22. $.PrivateBin.Model.init();
  23. // eslint-disable-line global-require
  24. global.bootstrap = require('../bootstrap-5.3.7');
  25. // eslint-enable-line global-require
  26. $.PrivateBin.Prompt.init();
  27. $.PrivateBin.Prompt.requestPassword();
  28. $('#passworddecrypt').val(password);
  29. // TODO triggers error messages in current jsDOM version, find better solution
  30. //$('#passwordform').submit();
  31. //var result = $.PrivateBin.Prompt.getPassword();
  32. const result = $('#passworddecrypt').val();
  33. $.PrivateBin.Model.reset();
  34. // TODO triggers error messages in jsDOM since version 11
  35. //clean();
  36. return result === password;
  37. }
  38. );
  39. });
  40. });