createMock(ConfigLoaderInterface::class); $config = SystemConfigurationFactory::create($loader, ['timesheet' => ['markdown_content' => true]]); $sut = new MarkdownExtension(new Markdown(), $config); self::assertEquals('
test
', $sut->markdownToHtml('*test*')); self::assertEquals('foo bar
", $sut->timesheetContent("- test\n- foo\n\nfoo __bar__") ); self::assertEquals( '', $sut->timesheetContent('[XSS](javascript:alert(`XSS`))') ); } public function testCommentContent(): void { $loader = $this->createMock(ConfigLoaderInterface::class); $config = SystemConfigurationFactory::create($loader, ['timesheet' => ['markdown_content' => false]]); $sut = new MarkdownExtension(new Markdown(), $config); self::assertEquals( "- test
\n- foo
# foobar
', $sut->commentContent('# foobar', true)); self::assertEquals('# foobar
', $sut->commentContent('# foobar')); self::assertEquals('## foobar', $sut->commentContent('## foobar', false)); self::assertEquals('### foobar', $sut->commentContent('### foobar', false)); self::assertEquals('' . $loremIpsum . '
', $sut->commentContent($loremIpsum, true)); self::assertEquals('' . $loremIpsum . '
', $sut->commentContent($loremIpsum)); self::assertEquals($loremIpsumShort, $sut->commentContent($loremIpsum, false)); $config = SystemConfigurationFactory::create($loader, ['timesheet' => ['markdown_content' => true]]); $sut = new MarkdownExtension(new Markdown(), $config); self::assertEquals( "foo bar
", $sut->commentContent("- test\n- foo\n\nfoo __bar__") ); self::assertEquals( '', $sut->commentContent('[XSS](javascript:alert(`XSS`))') ); } public function testCommentOneLiner(): void { $loader = $this->createMock(ConfigLoaderInterface::class); $config = SystemConfigurationFactory::create($loader, []); $sut = new MarkdownExtension(new Markdown(), $config); $loremIpsum = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.'; self::assertEquals('', $sut->commentOneLiner(null)); self::assertEquals('', $sut->commentOneLiner('')); self::assertEquals('', $sut->commentOneLiner(null, false)); self::assertEquals('', $sut->commentOneLiner('', true)); self::assertEquals( 'Lorem ipsum dolor sit amet, consetetur sadipscing …', $sut->commentOneLiner($loremIpsum, false) ); self::assertEquals( 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. …', $sut->commentOneLiner(implode(PHP_EOL, [$loremIpsum, $loremIpsum, $loremIpsum]), true) ); self::assertEquals( 'Lorem ipsum dolor sit amet, consetetur sadipscing …', $sut->commentOneLiner(implode(PHP_EOL, [$loremIpsum, $loremIpsum, $loremIpsum]), false) ); self::assertEquals( 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt', $sut->commentOneLiner(implode(PHP_EOL, ['Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt']), true) ); self::assertEquals( 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt …', $sut->commentOneLiner(implode(PHP_EOL, ['Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt', 'ssdf']), true) ); self::assertEquals( 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt', $sut->commentOneLiner(implode(PHP_EOL, ['Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt'])) ); self::assertEquals( 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt …', $sut->commentOneLiner(implode(PHP_EOL, ['Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt', 'ssdf'])) ); } }