NewlineRendererTest.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4. * This file is part of the league/commonmark package.
  5. *
  6. * (c) Colin O'Dell <colinodell@gmail.com>
  7. *
  8. * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js)
  9. * - (c) John MacFarlane
  10. *
  11. * For the full copyright and license information, please view the LICENSE
  12. * file that was distributed with this source code.
  13. */
  14. namespace League\CommonMark\Tests\Unit\Renderer\Inline;
  15. use League\CommonMark\Environment\Environment;
  16. use League\CommonMark\Exception\InvalidArgumentException;
  17. use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension;
  18. use League\CommonMark\Node\Inline\AbstractInline;
  19. use League\CommonMark\Node\Inline\Newline;
  20. use League\CommonMark\Renderer\Inline\NewlineRenderer;
  21. use League\CommonMark\Tests\Unit\Renderer\FakeChildNodeRenderer;
  22. use League\Config\ConfigurationInterface;
  23. use PHPUnit\Framework\TestCase;
  24. final class NewlineRendererTest extends TestCase
  25. {
  26. private NewlineRenderer $renderer;
  27. protected function setUp(): void
  28. {
  29. $this->renderer = new NewlineRenderer();
  30. }
  31. public function testRenderHardbreak(): void
  32. {
  33. $inline = new Newline(Newline::HARDBREAK);
  34. $fakeRenderer = new FakeChildNodeRenderer();
  35. $result = $this->renderer->render($inline, $fakeRenderer);
  36. $this->assertIsString($result);
  37. $this->assertStringContainsString('<br />', $result);
  38. }
  39. public function testRenderSoftbreak(): void
  40. {
  41. $inline = new Newline(Newline::SOFTBREAK);
  42. $fakeRenderer = new FakeChildNodeRenderer();
  43. $this->renderer->setConfiguration($this->createConfiguration(['renderer' => ['soft_break' => '::softbreakChar::']]));
  44. $result = $this->renderer->render($inline, $fakeRenderer);
  45. $this->assertIsString($result);
  46. $this->assertStringContainsString('::softbreakChar::', $result);
  47. }
  48. public function testRenderWithInvalidType(): void
  49. {
  50. $this->expectException(InvalidArgumentException::class);
  51. $inline = $this->getMockForAbstractClass(AbstractInline::class);
  52. $fakeRenderer = new FakeChildNodeRenderer();
  53. $this->renderer->render($inline, $fakeRenderer);
  54. }
  55. /**
  56. * @param array<string, mixed> $values
  57. */
  58. private function createConfiguration(array $values = []): ConfigurationInterface
  59. {
  60. $config = Environment::createDefaultConfiguration();
  61. (new CommonMarkCoreExtension())->configureSchema($config);
  62. $config->merge($values);
  63. return $config->reader();
  64. }
  65. }