Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions src/Test/TagRewriterTestCase.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

namespace Webfactory\Html5TagRewriter\Test;

use Override;
use PHPUnit\Framework\TestCase;
use Webfactory\Html5TagRewriter\Implementation\Html5TagRewriter;
use Webfactory\Html5TagRewriter\TagRewriter;

abstract class TagRewriterTestCase extends TestCase
{
protected TagRewriter $rewriter;

#[Override]
protected function setUp(): void
{
$this->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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
52 changes: 52 additions & 0 deletions tests/Test/TagRewriterTestCaseTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php

namespace Webfactory\Html5TagRewriter\Tests\Test;

use Dom\Element;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\ExpectationFailedException;
use Webfactory\Html5TagRewriter\Test\TagRewriterTestCase;
use Webfactory\Html5TagRewriter\Tests\Fixtures\TestRewriteHandler;

class TagRewriterTestCaseTest extends TagRewriterTestCase
{
#[Test]
public function assertRewriteResultEquals_when_RewriteHandler_registered(): void
{
$handler = new TestRewriteHandler('//html:p');
$handler->onMatch(function (Element $element) {
$element->textContent = 'bar';
});
$this->rewriter->register($handler);

$this->assertRewriteResultEquals('<p>bar</p>', '<p>foo</p>');
}

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

$this->assertRewriteResultEquals('<p>bar</p>', '<p>foo</p>');
}

#[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('<p>foo</p>');
}

#[Test]
public function assertRewriteResultUnchanged_when_no_RewriteHandler_fails(): void
{
$this->assertRewriteResultUnchanged('<p>bar</p>', '<p>foo</p>');
}
}