X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/5e6092aaf8fd420202016038286554860bf8ea64..refs/pull/3032/head:/tests/Entity/PageContentTest.php diff --git a/tests/Entity/PageContentTest.php b/tests/Entity/PageContentTest.php index 193f81400..049b47f0e 100644 --- a/tests/Entity/PageContentTest.php +++ b/tests/Entity/PageContentTest.php @@ -305,6 +305,28 @@ class PageContentTest extends TestCase $pageView->assertDontSee('abc123abc123'); } + public function test_svg_xlink_hrefs_are_removed() + { + $checks = [ + '', + '', + ]; + + $this->asEditor(); + $page = Page::query()->first(); + + foreach ($checks as $check) { + $page->html = $check; + $page->save(); + + $pageView = $this->get($page->getUrl()); + $pageView->assertStatus(200); + $pageView->assertElementNotContains('.page-content', 'alert'); + $pageView->assertElementNotContains('.page-content', 'xlink:href'); + $pageView->assertElementNotContains('.page-content', 'application/xml'); + } + } + public function test_page_inline_on_attributes_show_if_configured() { $this->asEditor(); @@ -572,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
test
test %A