mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-05-04 00:09:58 +00:00
Move html to markdown formatting tests to their own class
This commit is contained in:
parent
ac7b2dd1bf
commit
d3b39fbe50
2 changed files with 53 additions and 36 deletions
tests/Entity
|
@ -362,42 +362,6 @@ class ExportTest extends TestCase
|
||||||
$resp->assertSee("# Dogcat\n\nSome **bold** text");
|
$resp->assertSee("# Dogcat\n\nSome **bold** text");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_page_markdown_export_does_not_convert_callouts()
|
|
||||||
{
|
|
||||||
$page = Page::query()->first()->forceFill([
|
|
||||||
'markdown' => '',
|
|
||||||
'html' => '<h1>Dogcat</h1><p class="callout info">Some callout text</p><p>Another line</p>',
|
|
||||||
]);
|
|
||||||
$page->save();
|
|
||||||
|
|
||||||
$resp = $this->asEditor()->get($page->getUrl('/export/markdown'));
|
|
||||||
$resp->assertSee("# Dogcat\n\n<p class=\"callout info\">Some callout text</p>\n\nAnother line", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_page_markdown_export_handles_bookstacks_wysiwyg_codeblock_format()
|
|
||||||
{
|
|
||||||
$page = Page::query()->first()->forceFill([
|
|
||||||
'markdown' => '',
|
|
||||||
'html' => '<h1>Dogcat</h1>' . "\r\n" . '<pre id="bkmrk-var-a-%3D-%27cat%27%3B"><code class="language-JavaScript">var a = \'cat\';</code></pre><p>Another line</p>',
|
|
||||||
]);
|
|
||||||
$page->save();
|
|
||||||
|
|
||||||
$resp = $this->asEditor()->get($page->getUrl('/export/markdown'));
|
|
||||||
$resp->assertSee("# Dogcat\n\n```JavaScript\nvar a = 'cat';\n```\n\nAnother line", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_page_markdown_export_handles_tasklist_checkboxes()
|
|
||||||
{
|
|
||||||
$page = Page::query()->first()->forceFill([
|
|
||||||
'markdown' => '',
|
|
||||||
'html' => '<ul><li><input type="checkbox" checked="checked">Item A</li><li><input type="checkbox">Item B</li></ul>',
|
|
||||||
]);
|
|
||||||
$page->save();
|
|
||||||
|
|
||||||
$resp = $this->asEditor()->get($page->getUrl('/export/markdown'));
|
|
||||||
$resp->assertSee("- [x] Item A\n- [ ] Item B", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_chapter_markdown_export()
|
public function test_chapter_markdown_export()
|
||||||
{
|
{
|
||||||
$chapter = Chapter::query()->first();
|
$chapter = Chapter::query()->first();
|
||||||
|
|
53
tests/Entity/MarkdownToHtmlTest.php
Normal file
53
tests/Entity/MarkdownToHtmlTest.php
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\Entity;
|
||||||
|
|
||||||
|
use BookStack\Entities\Tools\Markdown\HtmlToMarkdown;
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
class MarkdownToHtmlTest extends TestCase
|
||||||
|
{
|
||||||
|
public function test_basic_formatting_conversion()
|
||||||
|
{
|
||||||
|
$this->assertConversion(
|
||||||
|
'<h1>Dogcat</h1><p>Some <strong>bold</strong> text</p>',
|
||||||
|
"# Dogcat\n\nSome **bold** text"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_callouts_remain_html()
|
||||||
|
{
|
||||||
|
$this->assertConversion(
|
||||||
|
'<h1>Dogcat</h1><p class="callout info">Some callout text</p><p>Another line</p>',
|
||||||
|
"# Dogcat\n\n<p class=\"callout info\">Some callout text</p>\n\nAnother line"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_wysiwyg_code_format_handled_cleanly()
|
||||||
|
{
|
||||||
|
$this->assertConversion(
|
||||||
|
'<h1>Dogcat</h1>' . "\r\n" . '<pre id="bkmrk-var-a-%3D-%27cat%27%3B"><code class="language-JavaScript">var a = \'cat\';</code></pre><p>Another line</p>',
|
||||||
|
"# Dogcat\n\n```JavaScript\nvar a = 'cat';\n```\n\nAnother line"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_tasklist_checkboxes_are_handled()
|
||||||
|
{
|
||||||
|
$this->assertConversion(
|
||||||
|
'<ul><li><input type="checkbox" checked="checked">Item A</li><li><input type="checkbox">Item B</li></ul>',
|
||||||
|
"- [x] Item A\n- [ ] Item B"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function assertConversion(string $html, string $expectedMarkdown, bool $partialMdMatch = false)
|
||||||
|
{
|
||||||
|
$markdown = (new HtmlToMarkdown($html))->convert();
|
||||||
|
|
||||||
|
if ($partialMdMatch) {
|
||||||
|
static::assertStringContainsString($expectedMarkdown, $markdown);
|
||||||
|
} else {
|
||||||
|
static::assertEquals($expectedMarkdown, $markdown);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue