and uAfrica.com (http://uafrica.com) * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace League\CommonMark\Tests\Unit\Extension\Strikethrough; use League\CommonMark\Exception\InvalidArgumentException; use League\CommonMark\Extension\Strikethrough\Strikethrough; use League\CommonMark\Extension\Strikethrough\StrikethroughRenderer; use League\CommonMark\Node\Inline\Text; use League\CommonMark\Tests\Unit\Renderer\FakeChildNodeRenderer; use League\CommonMark\Util\HtmlElement; use PHPUnit\Framework\TestCase; final class StrikethroughRendererTest extends TestCase { private StrikethroughRenderer $renderer; protected function setUp(): void { $this->renderer = new StrikethroughRenderer(); } public function testRender(): void { $inline = new Strikethrough('~~'); $inline->data->set('attributes/id', 'some"&id'); $fakeRenderer = new FakeChildNodeRenderer(); $fakeRenderer->pretendChildrenExist(); $result = $this->renderer->render($inline, $fakeRenderer); $this->assertTrue($result instanceof HtmlElement); $this->assertEquals('del', $result->getTagName()); $this->assertStringContainsString('::children::', $result->getContents(true)); $this->assertEquals(['id' => 'some"&id'], $result->getAllAttributes()); } public function testRenderWithInvalidNodeType(): void { $this->expectException(InvalidArgumentException::class); $inline = new Text('ruh roh'); $fakeRenderer = new FakeChildNodeRenderer(); $this->renderer->render($inline, $fakeRenderer); } }