diff --git a/src/Map/src/Bridge/Google/composer.json b/src/Map/src/Bridge/Google/composer.json
index 9ae81496e79..00f77046a73 100644
--- a/src/Map/src/Bridge/Google/composer.json
+++ b/src/Map/src/Bridge/Google/composer.json
@@ -22,7 +22,8 @@
},
"require-dev": {
"symfony/phpunit-bridge": "^6.4|^7.0",
- "symfony/ux-icons": "^2.18"
+ "symfony/ux-icons": "^2.18",
+ "spatie/phpunit-snapshot-assertions": "^5.1.8"
},
"autoload": {
"psr-4": { "Symfony\\UX\\Map\\Bridge\\Google\\": "src/" },
diff --git a/src/Map/src/Bridge/Google/phpunit.xml.dist b/src/Map/src/Bridge/Google/phpunit.xml.dist
index 1c3807e6255..4049eb2ea15 100644
--- a/src/Map/src/Bridge/Google/phpunit.xml.dist
+++ b/src/Map/src/Bridge/Google/phpunit.xml.dist
@@ -16,6 +16,7 @@
+
diff --git a/src/Map/src/Bridge/Google/tests/GoogleRendererTest.php b/src/Map/src/Bridge/Google/tests/GoogleRendererTest.php
index dcb35dae2ce..a2f7e7dc127 100644
--- a/src/Map/src/Bridge/Google/tests/GoogleRendererTest.php
+++ b/src/Map/src/Bridge/Google/tests/GoogleRendererTest.php
@@ -27,7 +27,7 @@
class GoogleRendererTest extends RendererTestCase
{
- public function provideTestRenderMap(): iterable
+ public static function provideTestRenderMap(): iterable
{
$map = (new Map())
->center(new Point(48.8566, 2.3522))
@@ -37,26 +37,22 @@ public function provideTestRenderMap(): iterable
$marker3 = new Marker(position: new Point(45.8566, 2.3522), title: 'Dijon', id: 'marker3');
yield 'simple map, with minimum options' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'),
'map' => $map,
];
yield 'with every options' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key', id: 'gmap', language: 'fr', region: 'FR', nonce: 'abcd', retries: 10, url: 'https://maps.googleapis.com/maps/api/js', version: 'quarterly'),
'map' => $map,
];
yield 'with custom attributes' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'),
'map' => $map,
'attributes' => ['data-controller' => 'my-custom-controller', 'class' => 'map'],
];
yield 'with markers and infoWindows' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -66,7 +62,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with all markers removed' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -78,7 +73,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with marker remove and new ones added' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -90,7 +84,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with polygons and infoWindows' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -100,7 +93,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with polylines and infoWindows' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -110,7 +102,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with controls enabled' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -124,7 +115,6 @@ public function provideTestRenderMap(): iterable
];
yield 'without controls enabled' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -138,7 +128,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with default map id' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), 'my_api_key', defaultMapId: 'DefaultMapId'),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -146,7 +135,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with default map id, when passing options (except the "mapId")' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), 'my_api_key', defaultMapId: 'DefaultMapId'),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -155,7 +143,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with default map id overridden by option "mapId"' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), 'my_api_key', defaultMapId: 'DefaultMapId'),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -164,7 +151,6 @@ public function provideTestRenderMap(): iterable
];
yield 'markers with icons' => [
- 'expected_render' => '',
'renderer' => new GoogleRenderer(
new StimulusHelper(null),
new UxIconRenderer(new class implements IconRendererInterface {
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set markers with icons__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set markers with icons__1.txt
new file mode 100644
index 00000000000..155943865d5
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set markers with icons__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set simple map, with minimum options__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set simple map, with minimum options__1.txt
new file mode 100644
index 00000000000..91cbdc7634d
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set simple map, with minimum options__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with all markers removed__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with all markers removed__1.txt
new file mode 100644
index 00000000000..91cbdc7634d
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with all markers removed__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with controls enabled__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with controls enabled__1.txt
new file mode 100644
index 00000000000..91cbdc7634d
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with controls enabled__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with custom attributes__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with custom attributes__1.txt
new file mode 100644
index 00000000000..f1f0a9a5909
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with custom attributes__1.txt
@@ -0,0 +1,14 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id overridden by option mapId__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id overridden by option mapId__1.txt
new file mode 100644
index 00000000000..365f78a9269
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id overridden by option mapId__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id, when passing options (except the mapId)__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id, when passing options (except the mapId)__1.txt
new file mode 100644
index 00000000000..6d398ba08c5
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id, when passing options (except the mapId)__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id__1.txt
new file mode 100644
index 00000000000..6d398ba08c5
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with every options__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with every options__1.txt
new file mode 100644
index 00000000000..db10b08c850
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with every options__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt
new file mode 100644
index 00000000000..04d1e3965fb
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with markers and infoWindows__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with markers and infoWindows__1.txt
new file mode 100644
index 00000000000..c185e4fb2a1
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with markers and infoWindows__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt
new file mode 100644
index 00000000000..76f32b102f7
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt
new file mode 100644
index 00000000000..a1d6ecf8754
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set without controls enabled__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set without controls enabled__1.txt
new file mode 100644
index 00000000000..3e44c36583a
--- /dev/null
+++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set without controls enabled__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Leaflet/composer.json b/src/Map/src/Bridge/Leaflet/composer.json
index 32fc6619d63..3d5b74b14a6 100644
--- a/src/Map/src/Bridge/Leaflet/composer.json
+++ b/src/Map/src/Bridge/Leaflet/composer.json
@@ -22,7 +22,8 @@
},
"require-dev": {
"symfony/phpunit-bridge": "^6.4|^7.0",
- "symfony/ux-icons": "^2.18"
+ "symfony/ux-icons": "^2.18",
+ "spatie/phpunit-snapshot-assertions": "^5.1.8"
},
"autoload": {
"psr-4": { "Symfony\\UX\\Map\\Bridge\\Leaflet\\": "src/" },
diff --git a/src/Map/src/Bridge/Leaflet/phpunit.xml.dist b/src/Map/src/Bridge/Leaflet/phpunit.xml.dist
index 1c3807e6255..4049eb2ea15 100644
--- a/src/Map/src/Bridge/Leaflet/phpunit.xml.dist
+++ b/src/Map/src/Bridge/Leaflet/phpunit.xml.dist
@@ -16,6 +16,7 @@
+
diff --git a/src/Map/src/Bridge/Leaflet/tests/LeafletRendererTest.php b/src/Map/src/Bridge/Leaflet/tests/LeafletRendererTest.php
index 47e5da7cbe2..da0a05c2f56 100644
--- a/src/Map/src/Bridge/Leaflet/tests/LeafletRendererTest.php
+++ b/src/Map/src/Bridge/Leaflet/tests/LeafletRendererTest.php
@@ -26,7 +26,7 @@
class LeafletRendererTest extends RendererTestCase
{
- public function provideTestRenderMap(): iterable
+ public static function provideTestRenderMap(): iterable
{
$map = (new Map())
->center(new Point(48.8566, 2.3522))
@@ -37,20 +37,17 @@ public function provideTestRenderMap(): iterable
$marker3 = new Marker(position: new Point(45.8566, 2.3522), title: 'Dijon', id: 'marker3');
yield 'simple map' => [
- 'expected_render' => '',
'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)),
'map' => (clone $map),
];
yield 'with custom attributes' => [
- 'expected_render' => '',
'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)),
'map' => (clone $map),
'attributes' => ['data-controller' => 'my-custom-controller', 'class' => 'map'],
];
yield 'with markers and infoWindows' => [
- 'expected_render' => '',
'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -60,7 +57,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with all markers removed' => [
- 'expected_render' => '',
'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -72,7 +68,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with marker remove and new ones added' => [
- 'expected_render' => '',
'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -84,7 +79,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with polygons and infoWindows' => [
- 'expected_render' => '',
'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -94,7 +88,6 @@ public function provideTestRenderMap(): iterable
];
yield 'with polylines and infoWindows' => [
- 'expected_render' => '',
'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)),
'map' => (new Map())
->center(new Point(48.8566, 2.3522))
@@ -104,7 +97,6 @@ public function provideTestRenderMap(): iterable
];
yield 'markers with icons' => [
- 'expected_render' => '',
'renderer' => new LeafletRenderer(
new StimulusHelper(null),
new UxIconRenderer(new class implements IconRendererInterface {
diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set markers with icons__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set markers with icons__1.txt
new file mode 100644
index 00000000000..4aa53a326da
--- /dev/null
+++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set markers with icons__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set simple map__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set simple map__1.txt
new file mode 100644
index 00000000000..2a39e666909
--- /dev/null
+++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set simple map__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with all markers removed__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with all markers removed__1.txt
new file mode 100644
index 00000000000..2a39e666909
--- /dev/null
+++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with all markers removed__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with custom attributes__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with custom attributes__1.txt
new file mode 100644
index 00000000000..0c4ece6a8fa
--- /dev/null
+++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with custom attributes__1.txt
@@ -0,0 +1,14 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt
new file mode 100644
index 00000000000..04afe48ecc9
--- /dev/null
+++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with markers and infoWindows__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with markers and infoWindows__1.txt
new file mode 100644
index 00000000000..64f60cc82c5
--- /dev/null
+++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with markers and infoWindows__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt
new file mode 100644
index 00000000000..e5439223b31
--- /dev/null
+++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt
new file mode 100644
index 00000000000..be6a8953c44
--- /dev/null
+++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/src/Map/src/Test/RendererFactoryTestCase.php b/src/Map/src/Test/RendererFactoryTestCase.php
index 6d8914ef2b1..6a254c392ce 100644
--- a/src/Map/src/Test/RendererFactoryTestCase.php
+++ b/src/Map/src/Test/RendererFactoryTestCase.php
@@ -11,6 +11,7 @@
namespace Symfony\UX\Map\Test;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use Symfony\UX\Map\Exception\UnsupportedSchemeException;
use Symfony\UX\Map\Renderer\Dsn;
@@ -55,6 +56,7 @@ public static function incompleteDsnRenderer(): iterable
/**
* @dataProvider supportsRenderer
*/
+ #[DataProvider('supportsRenderer')]
public function testSupports(bool $expected, string $dsn): void
{
$factory = $this->createRendererFactory();
@@ -65,6 +67,7 @@ public function testSupports(bool $expected, string $dsn): void
/**
* @dataProvider createRenderer
*/
+ #[DataProvider('createRenderer')]
public function testCreate(string $expected, string $dsn): void
{
$factory = $this->createRendererFactory();
@@ -76,6 +79,7 @@ public function testCreate(string $expected, string $dsn): void
/**
* @dataProvider unsupportedSchemeRenderer
*/
+ #[DataProvider('unsupportedSchemeRenderer')]
public function testUnsupportedSchemeException(string $dsn, ?string $message = null): void
{
$factory = $this->createRendererFactory();
diff --git a/src/Map/src/Test/RendererTestCase.php b/src/Map/src/Test/RendererTestCase.php
index b9c3fe07244..6e8ff909fef 100644
--- a/src/Map/src/Test/RendererTestCase.php
+++ b/src/Map/src/Test/RendererTestCase.php
@@ -11,7 +11,9 @@
namespace Symfony\UX\Map\Test;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
+use Spatie\Snapshots\MatchesSnapshots;
use Symfony\UX\Map\Map;
use Symfony\UX\Map\Renderer\RendererInterface;
@@ -20,16 +22,32 @@
*/
abstract class RendererTestCase extends TestCase
{
+ use MatchesSnapshots;
+
/**
- * @return iterable}>
+ * @return iterable}>
*/
- abstract public function provideTestRenderMap(): iterable;
+ abstract public static function provideTestRenderMap(): iterable;
/**
* @dataProvider provideTestRenderMap
*/
- public function testRenderMap(string $expectedRender, RendererInterface $renderer, Map $map, array $attributes = []): void
+ #[DataProvider('provideTestRenderMap')]
+ public function testRenderMap(RendererInterface $renderer, Map $map, array $attributes = []): void
+ {
+ $rendered = $renderer->renderMap($map, $attributes);
+ $rendered = $this->prettify($rendered);
+
+ $this->assertMatchesSnapshot($rendered);
+ }
+
+ private function prettify(string $html): string
{
- self::assertSame($expectedRender, $renderer->renderMap($map, $attributes));
+ $html = preg_replace('/ ([a-zA-Z-]+=")/', "\n $1", $html);
+ $html = str_replace('">', "\"\n>", $html);
+ $html = ''."\n".$html;
+
+ return $html;
}
}