Added basic system tests for markdown editor, Added extra test helpers
Added test helpers for checking if an element exists / does not exist on a page. Also fixed markdown editor bugs found while creating tests.
This commit is contained in:
parent
e1994ef2cf
commit
dc2978824e
4 changed files with 81 additions and 1 deletions
|
@ -57,6 +57,9 @@
|
|||
padding: 0 $-m 0;
|
||||
margin-left: -1px;
|
||||
overflow-y: scroll;
|
||||
.page-content {
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
.editor-toolbar {
|
||||
|
|
|
@ -68,7 +68,9 @@
|
|||
<div class="editor-toolbar">
|
||||
<div class="">Preview</div>
|
||||
</div>
|
||||
<div class="markdown-display page-content" ng-bind-html="displayContent"></div>
|
||||
<div class="markdown-display">
|
||||
<div class="page-content" ng-bind-html="displayContent"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
51
tests/Entity/MarkdownTest.php
Normal file
51
tests/Entity/MarkdownTest.php
Normal file
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
|
||||
class MarkdownTest extends TestCase
|
||||
{
|
||||
protected $page;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->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);
|
||||
}
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue