diff --git a/tests/cases/TestSerializer.php b/tests/cases/TestSerializer.php index 6fc05bc..317d405 100644 --- a/tests/cases/TestSerializer.php +++ b/tests/cases/TestSerializer.php @@ -11,6 +11,7 @@ namespace MensBeam\HTML\DOM\TestCase; use MensBeam\HTML\Parser\Exception; use MensBeam\HTML\Parser; use MensBeam\HTML\Parser\AttributeSetter; +use MensBeam\HTML\Parser\Config; use MensBeam\HTML\Parser\NameCoercion; use MensBeam\HTML\Parser\Serializer; @@ -136,6 +137,26 @@ class TestSerializer extends \PHPUnit\Framework\TestCase { ]; } + /** @dataProvider provideCustomSerializations */ + public function testSerializeWithSimpleOptions(string $in, bool $boolAttr, bool $foreignVoid, string $exp): void { + $config = new Config; + $config->serializeBooleanAttributeValues = $boolAttr; + $config->serializeForeignVoidEndTags = $foreignVoid; + $body = Parser::parse($in, "UTF-8")->document->getElementsByTagName("body")[0]; + $act = Parser::serializeInner($body, $config); + $this->assertSame($exp, $act); + } + + public function provideCustomSerializations(): iterable { + return [ + ['', true, true, ''], + ['', false, true, ''], + ['
blahblah', true, true, '
blahblah'], + ['
blahblah', true, false, '
blahblah'], + ['', false, false, ''], + ]; + } + public function testOuterSerializeAnInvalidNode(): void { $d = new \DOMDocument; $a = $d->createAttribute("oops");