diff --git a/resources/assets/sass/_forms.scss b/resources/assets/sass/_forms.scss
index 4da0c39ad..4a505c5f8 100644
--- a/resources/assets/sass/_forms.scss
+++ b/resources/assets/sass/_forms.scss
@@ -57,6 +57,9 @@
padding: 0 $-m 0;
margin-left: -1px;
overflow-y: scroll;
+ .page-content {
+ margin: 0 auto;
+ }
}
}
.editor-toolbar {
diff --git a/resources/views/pages/form.blade.php b/resources/views/pages/form.blade.php
index fe3d28cbc..7ce9dbfe5 100644
--- a/resources/views/pages/form.blade.php
+++ b/resources/views/pages/form.blade.php
@@ -68,7 +68,9 @@
-
+
diff --git a/tests/Entity/MarkdownTest.php b/tests/Entity/MarkdownTest.php
new file mode 100644
index 000000000..eaf4d62c3
--- /dev/null
+++ b/tests/Entity/MarkdownTest.php
@@ -0,0 +1,51 @@
+page = \BookStack\Page::first();
+ }
+
+ protected function setMarkdownEditor()
+ {
+ $this->setSettings(['app-editor' => 'markdown']);
+ }
+
+ public function test_default_editor_is_wysiwyg()
+ {
+ $this->assertEquals(setting('app-editor'), 'wysiwyg');
+ $this->asAdmin()->visit($this->page->getUrl() . '/edit')
+ ->pageHasElement('#html-editor');
+ }
+
+ public function test_markdown_setting_shows_markdown_editor()
+ {
+ $this->setMarkdownEditor();
+ $this->asAdmin()->visit($this->page->getUrl() . '/edit')
+ ->pageNotHasElement('#html-editor')
+ ->pageHasElement('#markdown-editor');
+ }
+
+ public function test_markdown_content_given_to_editor()
+ {
+ $this->setMarkdownEditor();
+ $mdContent = '# hello. This is a test';
+ $this->page->markdown = $mdContent;
+ $this->page->save();
+ $this->asAdmin()->visit($this->page->getUrl() . '/edit')
+ ->seeInField('markdown', $mdContent);
+ }
+
+ public function test_html_content_given_to_editor_if_no_markdown()
+ {
+ $this->setMarkdownEditor();
+ $this->asAdmin()->visit($this->page->getUrl() . '/edit')
+ ->seeInField('markdown', $this->page->html);
+ }
+
+}
\ No newline at end of file
diff --git a/tests/TestCase.php b/tests/TestCase.php
index 567dc93ec..f46d73e04 100644
--- a/tests/TestCase.php
+++ b/tests/TestCase.php
@@ -170,4 +170,28 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
$this->visit($link->link()->getUri());
return $this;
}
+
+ /**
+ * Check if the page contains the given element.
+ * @param string $selector
+ * @return bool
+ */
+ protected function pageHasElement($selector)
+ {
+ $elements = $this->crawler->filter($selector);
+ $this->assertTrue(count($elements) > 0, "The page does not contain an element matching " . $selector);
+ return $this;
+ }
+
+ /**
+ * Check if the page contains the given element.
+ * @param string $selector
+ * @return bool
+ */
+ protected function pageNotHasElement($selector)
+ {
+ $elements = $this->crawler->filter($selector);
+ $this->assertFalse(count($elements) > 0, "The page contains " . count($elements) . " elements matching " . $selector);
+ return $this;
+ }
}