. * */ namespace Friendica\Test\src\Content\Text; use Friendica\Content\Text\BBCode; use Friendica\DI; use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Test\FixtureTest; class BBCodeTest extends FixtureTest { protected function setUp(): void { parent::setUp(); DI::config()->set('system', 'remove_multiplicated_lines', false); DI::config()->set('system', 'no_oembed', false); DI::config()->set('system', 'allowed_link_protocols', []); DI::config()->set('system', 'url', 'https://friendica.local'); DI::config()->set('system', 'no_smilies', false); DI::config()->set('system', 'big_emojis', false); DI::config()->set('system', 'allowed_oembed', ''); $config = \HTMLPurifier_HTML5Config::createDefault(); $config->set('HTML.Doctype', 'HTML5'); $config->set('Attr.AllowedRel', [ 'noreferrer' => true, 'noopener' => true, ]); $config->set('Attr.AllowedFrameTargets', [ '_blank' => true, ]); $this->HTMLPurifier = new \HTMLPurifier($config); } public function dataLinks() { return [ /** @see https://github.com/friendica/friendica/issues/2487 */ 'bug-2487-1' => [ 'data' => 'https://de.wikipedia.org/wiki/Juha_Sipilä', 'assertHTML' => true, ], 'bug-2487-2' => [ 'data' => 'https://de.wikipedia.org/wiki/Dnepr_(Motorradmarke)', 'assertHTML' => true, ], 'bug-2487-3' => [ 'data' => 'https://friendica.wäckerlin.ch/friendica', 'assertHTML' => true, ], 'bug-2487-4' => [ 'data' => 'https://mastodon.social/@morevnaproject', 'assertHTML' => true, ], /** @see https://github.com/friendica/friendica/issues/5795 */ 'bug-5795' => [ 'data' => 'https://social.nasqueron.org/@liw/100798039015010628', 'assertHTML' => true, ], /** @see https://github.com/friendica/friendica/issues/6095 */ 'bug-6095' => [ 'data' => 'https://en.wikipedia.org/wiki/Solid_(web_decentralization_project)', 'assertHTML' => true, ], 'no-protocol' => [ 'data' => 'example.com/path', 'assertHTML' => false ], 'wrong-protocol' => [ 'data' => 'ftp://example.com', 'assertHTML' => false ], 'wrong-domain-without-path' => [ 'data' => 'http://example', 'assertHTML' => false ], 'wrong-domain-with-path' => [ 'data' => 'http://example/path', 'assertHTML' => false ], 'bug-6857-domain-start' => [ 'data' => "http://\nexample.com", 'assertHTML' => false ], 'bug-6857-domain-end' => [ 'data' => "http://example\n.com", 'assertHTML' => false ], 'bug-6857-tld' => [ 'data' => "http://example.\ncom", 'assertHTML' => false ], 'bug-6857-end' => [ 'data' => "http://example.com\ntest", 'assertHTML' => false ], 'bug-6901' => [ 'data' => "http://example.com
<
',
'text' => '[code]<[/code]',
],
'bug-7808-code-gt' => [
'expectedHtml' => '>
',
'text' => '[code]>[/code]',
],
'bug-7808-code-amp' => [
'expectedHtml' => '&
',
'text' => '[code]&[/code]',
],
'task-8800-pre-spaces-notag' => [
'expectedHtml' => '[test] Space',
'text' => '[test] Space',
],
'task-8800-pre-spaces' => [
'expectedHtml' => ' Spaces',
'text' => '[pre] Spaces[/pre]',
],
'bug-9611-purify-xss-nobb' => [
'expectedHTML' => 'dare to move your mouse here',
'text' => '[nobb]dare to move your mouse here[/nobb]'
],
'bug-9611-purify-xss-noparse' => [
'expectedHTML' => 'dare to move your mouse here',
'text' => '[noparse]dare to move your mouse here[/noparse]'
],
'bug-9611-purify-xss-attributes' => [
'expectedHTML' => 'dare to move your mouse here',
'text' => '[color="onmouseover=alert(0) style="]dare to move your mouse here[/color]'
],
'bug-9611-purify-attributes-correct' => [
'expectedHTML' => 'dare to move your mouse here',
'text' => '[color=FFFFFF]dare to move your mouse here[/color]'
],
'bug-9639-span-classes' => [
'expectedHTML' => 'Test',
'text' => '[class=arbitrary classes]Test[/class]',
],
'bug-10772-duplicated-links' => [
'expectedHTML' => 'Jetzt wird mir klar, warum Kapitalisten jedes Mal durchdrehen wenn Marx und das Kapital ins Gespräch kommt. Soziopathen.This is a paragraph
with a line feed.
Second Chapter
', 'text' => "[h1]Header[/h1][ul][*]One[*]Two[/ul]\n\nThis is a paragraph\nwith a line feed.\n\nSecond Chapter", ], 'task-12900-header-with-paragraphs' => [ 'expectedHTML' => 'Some Chapter
', 'text' => '[h1]Header[/h1]Some Chapter', ], 'bug-12842-ul-newlines' => [ 'expectedHTML' => 'This is:
This is: