X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/71c93c88787fe3522d1f0f49d445eb24e3a2789e..refs/pull/5676/head:/tests/Unit/PageIncludeParserTest.php diff --git a/tests/Unit/PageIncludeParserTest.php b/tests/Unit/PageIncludeParserTest.php index c4c127626..83fded436 100644 --- a/tests/Unit/PageIncludeParserTest.php +++ b/tests/Unit/PageIncludeParserTest.php @@ -2,7 +2,9 @@ namespace Tests\Unit; +use BookStack\Entities\Tools\PageIncludeContent; use BookStack\Entities\Tools\PageIncludeParser; +use BookStack\Entities\Tools\PageIncludeTag; use BookStack\Util\HtmlDocument; use Tests\TestCase; @@ -179,6 +181,15 @@ class PageIncludeParserTest extends TestCase ); } + public function test_multi_source_elem_whole_document_with_nested_content_origin() + { + $this->runParserTest( + '

{{@45}}

', + ['45' => '

Testing

This
'], + '

Testing

This
', + ); + } + public function test_multiple_tags_in_same_origin_with_inline_content() { $this->runParserTest( @@ -202,7 +213,7 @@ class PageIncludeParserTest extends TestCase $this->runParserTest( '

This {{@45#content}} content is {{@45#content}}

{{@45#content}}
', ['45' => '
block
'], - '
block

This content is

block
block
', + '
block

This content is

block
block
', ); } @@ -218,8 +229,9 @@ class PageIncludeParserTest extends TestCase protected function runParserTest(string $html, array $contentById, string $expected): void { $doc = new HtmlDocument($html); - $parser = new PageIncludeParser($doc, function (int $id) use ($contentById) { - return $contentById[strval($id)] ?? ''; + $parser = new PageIncludeParser($doc, function (PageIncludeTag $tag) use ($contentById): PageIncludeContent { + $html = $contentById[strval($tag->getPageId())] ?? ''; + return PageIncludeContent::fromHtmlAndTag($html, $tag); }); $parser->parse();