diff --git a/src/Test/TagRewriterTestCase.php b/src/Test/TagRewriterTestCase.php new file mode 100644 index 0000000..1b99daf --- /dev/null +++ b/src/Test/TagRewriterTestCase.php @@ -0,0 +1,31 @@ +rewriter = new Html5TagRewriter(); + } + + public function assertRewriteResultEquals(string $expected, string $input): void + { + $result = $this->rewriter->processFragment($input); + + $this->assertXmlStringEqualsXmlString($expected, $result); + } + + public function assertRewriteResultUnchanged(string $input): void + { + $this->assertRewriteResultEquals($input, $input); + } +} diff --git a/tests/Html5TagRewriterTest.php b/tests/Implementation/Html5TagRewriterTest.php similarity index 99% rename from tests/Html5TagRewriterTest.php rename to tests/Implementation/Html5TagRewriterTest.php index 70b6edf..3561c4e 100644 --- a/tests/Html5TagRewriterTest.php +++ b/tests/Implementation/Html5TagRewriterTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Webfactory\Html5TagRewriter\Tests; +namespace Webfactory\Html5TagRewriter\Tests\Implementation; use Dom\Element; use PHPUnit\Framework\Attributes\DataProvider; diff --git a/tests/Test/TagRewriterTestCaseTest.php b/tests/Test/TagRewriterTestCaseTest.php new file mode 100644 index 0000000..1aa5ec2 --- /dev/null +++ b/tests/Test/TagRewriterTestCaseTest.php @@ -0,0 +1,52 @@ +onMatch(function (Element $element) { + $element->textContent = 'bar'; + }); + $this->rewriter->register($handler); + + $this->assertRewriteResultEquals('

bar

', '

foo

'); + } + + #[Test] + public function assertRewriteResultEquals_when_no_RewriteHandler_fails(): void + { + $this->expectException(ExpectationFailedException::class); + + $this->assertRewriteResultEquals('

bar

', '

foo

'); + } + + #[Test] + public function assertRewriteResultUnchanged_fails_when_RewriteHandler_registered(): void + { + $handler = new TestRewriteHandler('//html:p'); + $handler->onMatch(function (Element $element) { + $element->textContent = 'bar'; + }); + $this->rewriter->register($handler); + + $this->expectException(ExpectationFailedException::class); + + $this->assertRewriteResultUnchanged('

foo

'); + } + + #[Test] + public function assertRewriteResultUnchanged_when_no_RewriteHandler_fails(): void + { + $this->assertRewriteResultUnchanged('

bar

', '

foo

'); + } +}