mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-01 01:36:00 -04:00
Move html to markdown formatting tests to their own class
This commit is contained in:
parent
ac7b2dd1bf
commit
d3b39fbe50
@ -362,42 +362,6 @@ class ExportTest extends TestCase
|
||||
$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()
|
||||
{
|
||||
$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…
Reference in New Issue
Block a user