Create events for bbcode hooks

This commit is contained in:
Art4 2025-02-14 15:03:29 +00:00
parent 81b6ed9fc2
commit 62d27de3b0
5 changed files with 104 additions and 3 deletions

View file

@ -44,6 +44,8 @@ class HookEventBridgeTest extends TestCase
ArrayFilterEvent::OEMBED_FETCH_END => 'onOembedFetchEndEvent',
ArrayFilterEvent::PAGE_INFO => 'onArrayFilterEvent',
ArrayFilterEvent::SMILEY_LIST => 'onArrayFilterEvent',
ArrayFilterEvent::BBCODE_TO_HTML_START => 'onBbcodeToHtmlEvent',
ArrayFilterEvent::BBCODE_TO_MARKDOWN_END => 'onBbcodeToMarkdownEvent',
HtmlFilterEvent::HEAD => 'onHtmlFilterEvent',
HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent',
@ -181,6 +183,50 @@ class HookEventBridgeTest extends TestCase
);
}
public function testOnBbcodeToHtmlEventCallsHookWithCorrectValue(): void
{
$event = new ArrayFilterEvent(ArrayFilterEvent::BBCODE_TO_HTML_START, ['bbcode2html' => '[b]original[/b]']);
$reflectionProperty = new \ReflectionProperty(HookEventBridge::class, 'mockedCallHook');
$reflectionProperty->setAccessible(true);
$reflectionProperty->setValue(null, function (string $name, string $data): string {
$this->assertSame('bbcode', $name);
$this->assertSame('[b]original[/b]', $data);
return '<b>changed</b>';
});
HookEventBridge::onBbcodeToHtmlEvent($event);
$this->assertSame(
['bbcode2html' => '<b>changed</b>'],
$event->getArray(),
);
}
public function testOnBbcodeToMarkdownEventCallsHookWithCorrectValue(): void
{
$event = new ArrayFilterEvent(ArrayFilterEvent::BBCODE_TO_MARKDOWN_END, ['bbcode2markdown' => '[b]original[/b]']);
$reflectionProperty = new \ReflectionProperty(HookEventBridge::class, 'mockedCallHook');
$reflectionProperty->setAccessible(true);
$reflectionProperty->setValue(null, function (string $name, string $data): string {
$this->assertSame('bb2diaspora', $name);
$this->assertSame('[b]original[/b]', $data);
return '**changed**';
});
HookEventBridge::onBbcodeToMarkdownEvent($event);
$this->assertSame(
['bbcode2markdown' => '**changed**'],
$event->getArray(),
);
}
public static function getArrayFilterEventData(): array
{
return [