| @@ 10-36 (lines=27) @@ | ||
| 7 | use Spatie\Snapshots\Driver; | |
| 8 | use Spatie\Snapshots\Exceptions\CantBeSerialized; | |
| 9 | ||
| 10 | class HtmlDriver implements Driver | |
| 11 | { | |
| 12 | public function serialize($data): string | |
| 13 |     { | |
| 14 |         if (! is_string($data)) { | |
| 15 |             throw new CantBeSerialized('Only strings can be serialized to html'); | |
| 16 | } | |
| 17 | ||
| 18 |         $domDocument = new DOMDocument('1.0'); | |
| 19 | $domDocument->preserveWhiteSpace = false; | |
| 20 | $domDocument->formatOutput = true; | |
| 21 | ||
| 22 | @$domDocument->loadHTML($data); // to ignore HTML5 errors | |
| 23 | ||
| 24 | return $domDocument->saveHTML(); | |
| 25 | } | |
| 26 | ||
| 27 | public function extension(): string | |
| 28 |     { | |
| 29 | return 'html'; | |
| 30 | } | |
| 31 | ||
| 32 | public function match($expected, $actual) | |
| 33 |     { | |
| 34 | Assert::assertEquals($expected, $this->serialize($actual)); | |
| 35 | } | |
| 36 | } | |
| 37 | ||
| @@ 10-36 (lines=27) @@ | ||
| 7 | use Spatie\Snapshots\Driver; | |
| 8 | use Spatie\Snapshots\Exceptions\CantBeSerialized; | |
| 9 | ||
| 10 | class XmlDriver implements Driver | |
| 11 | { | |
| 12 | public function serialize($data): string | |
| 13 |     { | |
| 14 |         if (! is_string($data)) { | |
| 15 |             throw new CantBeSerialized('Only strings can be serialized to xml'); | |
| 16 | } | |
| 17 | ||
| 18 |         $domDocument = new DOMDocument('1.0'); | |
| 19 | $domDocument->preserveWhiteSpace = false; | |
| 20 | $domDocument->formatOutput = true; | |
| 21 | ||
| 22 | $domDocument->loadXML($data); | |
| 23 | ||
| 24 | return $domDocument->saveXML(); | |
| 25 | } | |
| 26 | ||
| 27 | public function extension(): string | |
| 28 |     { | |
| 29 | return 'xml'; | |
| 30 | } | |
| 31 | ||
| 32 | public function match($expected, $actual) | |
| 33 |     { | |
| 34 | Assert::assertXmlStringEqualsXmlString($expected, $actual); | |
| 35 | } | |
| 36 | } | |
| 37 | ||