X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/193d7fb3fe71a76a43ebc1ccdb617b4b627d1e09..refs/pull/3032/head:/tests/Entity/PageContentTest.php
diff --git a/tests/Entity/PageContentTest.php b/tests/Entity/PageContentTest.php
index 45c27c9f9..049b47f0e 100644
--- a/tests/Entity/PageContentTest.php
+++ b/tests/Entity/PageContentTest.php
@@ -594,14 +594,59 @@ class PageContentTest extends TestCase
$this->deleteImage($imagePath);
}
- public function test_base64_images_blanked_if_not_supported_extension_for_extract()
+ public function test_base64_images_within_html_blanked_if_not_supported_extension_for_extract()
+ {
+ // Relevant to https://github.com/BookStackApp/BookStack/issues/3010 and other cases
+ $extensions = [
+ 'jiff', 'pngr', 'png ', ' png', '.png', 'png.', 'p.ng', ',png',
+ 'data:image/png', ',data:image/png',
+ ];
+
+ foreach ($extensions as $extension) {
+ $this->asEditor();
+ $page = Page::query()->first();
+
+ $this->put($page->getUrl(), [
+ 'name' => $page->name, 'summary' => '',
+ 'html' => '
test
',
+ ]);
+
+ $page->refresh();
+ $this->assertStringContainsString('
html);
+ }
+
+ }
+
+ public function test_base64_images_get_extracted_from_markdown_page_content()
{
$this->asEditor();
$page = Page::query()->first();
$this->put($page->getUrl(), [
- 'name' => $page->name, 'summary' => '',
- 'html' => 'test
',
+ 'name' => $page->name, 'summary' => '',
+ 'markdown' => 'test ',
+ ]);
+
+ $page->refresh();
+ $this->assertStringMatchesFormat('%Atest
%A
%A', $page->html);
+
+ $matches = [];
+ preg_match('/src="https:\/\/p.rizon.top:443\/http\/localhost(.*?)"/', $page->html, $matches);
+ $imagePath = $matches[1];
+ $imageFile = public_path($imagePath);
+ $this->assertEquals(base64_decode($this->base64Jpeg), file_get_contents($imageFile));
+
+ $this->deleteImage($imagePath);
+ }
+
+ public function test_base64_images_within_markdown_blanked_if_not_supported_extension_for_extract()
+ {
+ $this->asEditor();
+ $page = Page::query()->first();
+
+ $this->put($page->getUrl(), [
+ 'name' => $page->name, 'summary' => '',
+ 'markdown' => 'test ',
]);
$page->refresh();