mirror of
https://github.com/symfony/ux-google-map.git
synced 2026-03-23 23:42:13 +01:00
76 lines
8.1 KiB
PHP
76 lines
8.1 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Symfony package.
|
|
*
|
|
* (c) Fabien Potencier <fabien@symfony.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Symfony\UX\Map\Bridge\Google\Tests;
|
|
|
|
use Symfony\UX\Map\Bridge\Google\GoogleOptions;
|
|
use Symfony\UX\Map\Bridge\Google\Renderer\GoogleRenderer;
|
|
use Symfony\UX\Map\InfoWindow;
|
|
use Symfony\UX\Map\Map;
|
|
use Symfony\UX\Map\Marker;
|
|
use Symfony\UX\Map\Point;
|
|
use Symfony\UX\Map\Test\RendererTestCase;
|
|
use Symfony\UX\StimulusBundle\Helper\StimulusHelper;
|
|
|
|
class GoogleRendererTest extends RendererTestCase
|
|
{
|
|
public function provideTestRenderMap(): iterable
|
|
{
|
|
$map = (new Map())
|
|
->center(new Point(48.8566, 2.3522))
|
|
->zoom(12);
|
|
|
|
yield 'simple map, with minimum options' => [
|
|
'expected_render' => '<div data-controller="symfony--ux-map-google--map" data-symfony--ux-map-google--map-provider-options-value="{"apiKey":"api_key"}" data-symfony--ux-map-google--map-view-value="{"center":{"lat":48.8566,"lng":2.3522},"zoom":12,"fitBoundsToMarkers":false,"options":{"mapId":null,"gestureHandling":"auto","backgroundColor":null,"disableDoubleClickZoom":false,"zoomControlOptions":{"position":22},"mapTypeControlOptions":{"mapTypeIds":[],"position":14,"style":0},"streetViewControlOptions":{"position":22},"fullscreenControlOptions":{"position":20}},"markers":[]}"></div>',
|
|
'renderer' => new GoogleRenderer(new StimulusHelper(null), apiKey: 'api_key'),
|
|
'map' => $map,
|
|
];
|
|
|
|
yield 'with every options' => [
|
|
'expected_render' => '<div data-controller="symfony--ux-map-google--map" data-symfony--ux-map-google--map-provider-options-value="{"id":"gmap","language":"fr","region":"FR","nonce":"abcd","retries":10,"url":"https:\/\/maps.googleapis.com\/maps\/api\/js","version":"quarterly","apiKey":"api_key"}" data-symfony--ux-map-google--map-view-value="{"center":{"lat":48.8566,"lng":2.3522},"zoom":12,"fitBoundsToMarkers":false,"options":{"mapId":null,"gestureHandling":"auto","backgroundColor":null,"disableDoubleClickZoom":false,"zoomControlOptions":{"position":22},"mapTypeControlOptions":{"mapTypeIds":[],"position":14,"style":0},"streetViewControlOptions":{"position":22},"fullscreenControlOptions":{"position":20}},"markers":[]}"></div>',
|
|
'renderer' => new GoogleRenderer(new StimulusHelper(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 markers and infoWindows' => [
|
|
'expected_render' => '<div data-controller="symfony--ux-map-google--map" data-symfony--ux-map-google--map-provider-options-value="{"apiKey":"api_key"}" data-symfony--ux-map-google--map-view-value="{"center":{"lat":48.8566,"lng":2.3522},"zoom":12,"fitBoundsToMarkers":false,"options":{"mapId":null,"gestureHandling":"auto","backgroundColor":null,"disableDoubleClickZoom":false,"zoomControlOptions":{"position":22},"mapTypeControlOptions":{"mapTypeIds":[],"position":14,"style":0},"streetViewControlOptions":{"position":22},"fullscreenControlOptions":{"position":20}},"markers":[{"position":{"lat":48.8566,"lng":2.3522},"title":"Paris","infoWindow":null},{"position":{"lat":48.8566,"lng":2.3522},"title":"Lyon","infoWindow":{"headerContent":null,"content":"Lyon","position":null,"opened":false,"autoClose":true}}]}"></div>',
|
|
'renderer' => new GoogleRenderer(new StimulusHelper(null), apiKey: 'api_key'),
|
|
'map' => (clone $map)
|
|
->addMarker(new Marker(new Point(48.8566, 2.3522), 'Paris'))
|
|
->addMarker(new Marker(new Point(48.8566, 2.3522), 'Lyon', infoWindow: new InfoWindow(content: 'Lyon'))),
|
|
];
|
|
|
|
yield 'with controls enabled' => [
|
|
'expected_render' => '<div data-controller="symfony--ux-map-google--map" data-symfony--ux-map-google--map-provider-options-value="{"apiKey":"api_key"}" data-symfony--ux-map-google--map-view-value="{"center":{"lat":48.8566,"lng":2.3522},"zoom":12,"fitBoundsToMarkers":false,"options":{"mapId":null,"gestureHandling":"auto","backgroundColor":null,"disableDoubleClickZoom":false,"zoomControlOptions":{"position":22},"mapTypeControlOptions":{"mapTypeIds":[],"position":14,"style":0},"streetViewControlOptions":{"position":22},"fullscreenControlOptions":{"position":20}},"markers":[]}"></div>',
|
|
'renderer' => new GoogleRenderer(new StimulusHelper(null), apiKey: 'api_key'),
|
|
'map' => (clone $map)
|
|
->options(new GoogleOptions(
|
|
zoomControl: true,
|
|
mapTypeControl: true,
|
|
streetViewControl: true,
|
|
fullscreenControl: true,
|
|
)),
|
|
];
|
|
|
|
yield 'without controls enabled' => [
|
|
'expected_render' => '<div data-controller="symfony--ux-map-google--map" data-symfony--ux-map-google--map-provider-options-value="{"apiKey":"api_key"}" data-symfony--ux-map-google--map-view-value="{"center":{"lat":48.8566,"lng":2.3522},"zoom":12,"fitBoundsToMarkers":false,"options":{"mapId":null,"gestureHandling":"auto","backgroundColor":null,"disableDoubleClickZoom":false},"markers":[]}"></div>',
|
|
'renderer' => new GoogleRenderer(new StimulusHelper(null), apiKey: 'api_key'),
|
|
'map' => (clone $map)
|
|
->options(new GoogleOptions(
|
|
zoomControl: false,
|
|
mapTypeControl: false,
|
|
streetViewControl: false,
|
|
fullscreenControl: false,
|
|
)),
|
|
];
|
|
}
|
|
}
|