diff --git a/js/test.js b/js/test.js
index 2939df04..9bf9cb2e 100644
--- a/js/test.js
+++ b/js/test.js
@@ -1303,3 +1303,74 @@ describe('Prompt', function () {
});
});
+describe('Editor', function () {
+ describe('show, hide, getText, setText & isPreview', function () {
+ this.timeout(30000);
+ before(function () {
+ cleanup();
+ });
+
+ jsc.property(
+ 'returns text fed into the textarea, handles editor tabs',
+ 'string',
+ function (text) {
+ var clean = jsdom(),
+ results = [];
+ $('body').html(
+ '
+++ no paste text +++
' +
+ ''
+ );
+ $.PrivateBin.Editor.init();
+ results.push(
+ $('#editorTabs').hasClass('hidden') &&
+ $('#message').hasClass('hidden')
+ );
+ $.PrivateBin.Editor.show();
+ results.push(
+ !$('#editorTabs').hasClass('hidden') &&
+ !$('#message').hasClass('hidden')
+ );
+ $.PrivateBin.Editor.hide();
+ results.push(
+ $('#editorTabs').hasClass('hidden') &&
+ $('#message').hasClass('hidden')
+ );
+ $.PrivateBin.Editor.show();
+ $.PrivateBin.Editor.focusInput();
+ results.push(
+ $.PrivateBin.Editor.getText().length == 0
+ );
+ $.PrivateBin.Editor.setText(text);
+ results.push(
+ $.PrivateBin.Editor.getText() == $('#message').val()
+ );
+ $.PrivateBin.Editor.setText();
+ results.push(
+ !$.PrivateBin.Editor.isPreview() &&
+ !$('#message').hasClass('hidden')
+ );
+ $('#messagepreview').click();
+ results.push(
+ $.PrivateBin.Editor.isPreview() &&
+ $('#message').hasClass('hidden')
+ );
+ $('#messageedit').click();
+ results.push(
+ !$.PrivateBin.Editor.isPreview() &&
+ !$('#message').hasClass('hidden')
+ );
+ clean();
+ return results.every(element => element);
+ }
+ );
+ });
+});
+