Editor.js 3.2 KB

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