Editor.js 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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">' +
  14. '<li role="presentation" class="active">' +
  15. '<a id="messageedit" href="#">Editor</a>' +
  16. '</li>' +
  17. '<li role="presentation">' +
  18. '<a id="messagepreview" href="#">Preview</a>' +
  19. '</li>' +
  20. '</ul>' +
  21. '<div id="placeholder" class="hidden">+++ no document text +++</div>' +
  22. '<div id="prettymessage" class="hidden">' +
  23. '<pre id="prettyprint" class="prettyprint linenums:1"></pre>' +
  24. '</div>' +
  25. '<div id="plaintext" class="hidden"></div>' +
  26. '<p>' +
  27. '<textarea id="message" name="message" cols="80" rows="25" class="form-control hidden"></textarea>' +
  28. '</p>' +
  29. '<input id="messagetab" type="checkbox" checked="checked" />'
  30. );
  31. PrivateBin.Editor.init();
  32. results.push(
  33. document.getElementById('editorTabs').classList.contains('hidden') &&
  34. document.getElementById('message').classList.contains('hidden')
  35. );
  36. PrivateBin.Editor.show();
  37. results.push(
  38. !document.getElementById('editorTabs').classList.contains('hidden') &&
  39. !document.getElementById('message').classList.contains('hidden')
  40. );
  41. PrivateBin.Editor.hide();
  42. results.push(
  43. document.getElementById('editorTabs').classList.contains('hidden') &&
  44. document.getElementById('message').classList.contains('hidden')
  45. );
  46. PrivateBin.Editor.show();
  47. PrivateBin.Editor.focusInput();
  48. results.push(
  49. PrivateBin.Editor.getText().length === 0
  50. );
  51. PrivateBin.Editor.setText(text);
  52. results.push(
  53. PrivateBin.Editor.getText() === document.getElementById('message').value
  54. );
  55. PrivateBin.Editor.setText();
  56. results.push(
  57. !PrivateBin.Editor.isPreview() &&
  58. !document.getElementById('message').classList.contains('hidden')
  59. );
  60. document.getElementById('messagepreview').click();
  61. results.push(
  62. PrivateBin.Editor.isPreview() &&
  63. document.getElementById('message').classList.contains('hidden')
  64. );
  65. document.getElementById('messageedit').click();
  66. results.push(
  67. !PrivateBin.Editor.isPreview() &&
  68. !document.getElementById('message').classList.contains('hidden')
  69. );
  70. clean();
  71. return results.every(element => element);
  72. }
  73. );
  74. });
  75. });