Editor.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. 'use strict';
  2. var common = require('../common');
  3. describe('Editor', function () {
  4. describe('show, hide, getText, setText & isPreview', function () {
  5. this.timeout(30000);
  6. before(function () {
  7. cleanup();
  8. });
  9. jsc.property(
  10. 'returns text fed into the textarea, handles editor tabs',
  11. 'string',
  12. function (text) {
  13. var clean = jsdom(),
  14. results = [];
  15. $('body').html(
  16. '<ul id="editorTabs" class="nav nav-tabs hidden"><li ' +
  17. 'role="presentation" class="active"><a id="messageedit" ' +
  18. 'href="#">Editor</a></li><li role="presentation"><a ' +
  19. 'id="messagepreview" href="#">Preview</a></li></ul><div ' +
  20. 'id="placeholder" class="hidden">+++ no paste text +++</div>' +
  21. '<div id="prettymessage" class="hidden"><pre id="prettyprint" ' +
  22. 'class="prettyprint linenums:1"></pre></div><div ' +
  23. 'id="plaintext" class="hidden"></div><p><textarea ' +
  24. 'id="message" name="message" cols="80" rows="25" ' +
  25. 'class="form-control hidden"></textarea></p>'
  26. );
  27. $.PrivateBin.Editor.init();
  28. results.push(
  29. $('#editorTabs').hasClass('hidden') &&
  30. $('#message').hasClass('hidden')
  31. );
  32. $.PrivateBin.Editor.show();
  33. results.push(
  34. !$('#editorTabs').hasClass('hidden') &&
  35. !$('#message').hasClass('hidden')
  36. );
  37. $.PrivateBin.Editor.hide();
  38. results.push(
  39. $('#editorTabs').hasClass('hidden') &&
  40. $('#message').hasClass('hidden')
  41. );
  42. $.PrivateBin.Editor.show();
  43. $.PrivateBin.Editor.focusInput();
  44. results.push(
  45. $.PrivateBin.Editor.getText().length === 0
  46. );
  47. $.PrivateBin.Editor.setText(text);
  48. results.push(
  49. $.PrivateBin.Editor.getText() === $('#message').val()
  50. );
  51. $.PrivateBin.Editor.setText();
  52. results.push(
  53. !$.PrivateBin.Editor.isPreview() &&
  54. !$('#message').hasClass('hidden')
  55. );
  56. $('#messagepreview').click();
  57. results.push(
  58. $.PrivateBin.Editor.isPreview() &&
  59. $('#message').hasClass('hidden')
  60. );
  61. $('#messageedit').click();
  62. results.push(
  63. !$.PrivateBin.Editor.isPreview() &&
  64. !$('#message').hasClass('hidden')
  65. );
  66. clean();
  67. return results.every(element => element);
  68. }
  69. );
  70. });
  71. });