public function testRenderMarkers()
    {
        $map = new Map();
        $map->setJavascriptVariable('map');
        $map->addMarker($marker = new Marker());
        $marker->setJavascriptVariable('marker');
        $marker->getPosition()->setJavascriptVariable('marker_position');
        $expected = <<<EOF
map_container.markers.marker = marker = new google.maps.Marker({"position":marker_position});

EOF;
        $this->assertSame($expected, $this->helper->renderMarkers($map->getMarkerCluster(), $map));
    }
 public function testRenderMarkersWithAutoOpenInfoWindow()
 {
     $map = new Map();
     $map->setJavascriptVariable('map');
     $map->addMarker($marker = new Marker());
     $marker->setJavascriptVariable('marker');
     $marker->getPosition()->setJavascriptVariable('marker_position');
     $marker->setInfoWindow($infoWindow = new InfoWindow());
     $infoWindow->setJavascriptVariable('marker_info_window');
     $infoWindow->setAutoOpen(true);
     $this->helper->renderMarkers($map->getMarkerCluster(), $map);
     $this->assertNotEmpty($map->getEventManager()->getEvents());
 }
Exemplo n.º 3
0
    public function testRenderJavascriptsWithMarkerInfoWindowOpened()
    {
        $infoWindow = new InfoWindow();
        $infoWindow->setJavascriptVariable('info_window');
        $infoWindow->setContent('foo');
        $infoWindow->setAutoOpen(false);
        $infoWindow->setOpen(true);
        $marker = new Marker();
        $marker->setJavascriptVariable('marker');
        $marker->setPosition(1.2, 2.1, true);
        $marker->getPosition()->setJavascriptVariable('marker_position');
        $marker->setInfoWindow($infoWindow);
        $map = new Map();
        $map->setJavascriptVariable('map');
        $map->getCenter()->setJavascriptVariable('map_center');
        $map->addMarker($marker);
        $expected = <<<EOF
<script type="text/javascript">
function load_ivory_google_map_api () { google.load("maps", "3", {"other_params":"language=en&sensor=false"}); };
</script>
<script type="text/javascript" src="//www.google.com/jsapi?callback=load_ivory_google_map_api"></script>
<script type="text/javascript">
map_container = {"map":null,"coordinates":{},"bounds":{},"points":{},"sizes":{},"circles":{},"encoded_polylines":{},"ground_overlays":{},"polygons":{},"polylines":{},"rectangles":{},"info_windows":{},"marker_images":{},"marker_shapes":{},"markers":{},"marker_cluster":null,"kml_layers":{},"event_manager":{"dom_events":{},"dom_events_once":{},"events":{},"events_once":{}},"closable_info_windows":{},"functions":{"to_array":function (object) { var array = []; for (var key in object) { array.push(object[key]); } return array; }}};
map_container.coordinates.map_center = map_center = new google.maps.LatLng(0, 0, true);
map_container.coordinates.marker_position = marker_position = new google.maps.LatLng(1.2, 2.1, true);
map_container.map = map = new google.maps.Map(document.getElementById("map_canvas"), {"mapTypeId":google.maps.MapTypeId.ROADMAP,"zoom":3});
map_container.info_windows.info_window = info_window = new google.maps.InfoWindow({"content":"foo"});
map_container.markers.marker = marker = new google.maps.Marker({"position":marker_position,"map":map});
info_window.open(map, marker);
map.setCenter(map_center);
</script>

EOF;
        $this->assertSame($expected, $this->mapHelper->renderJavascripts($map));
    }
 public function testRenderWitoutMap()
 {
     $marker = new Marker();
     $marker->setJavascriptVariable('marker');
     $marker->setAnimation(Animation::BOUNCE);
     $marker->setPosition(1.1, 2.1, true);
     $marker->getPosition()->setJavascriptVariable('position');
     $marker->setIcon('url');
     $marker->getIcon()->setJavascriptVariable('icon');
     $marker->setShadow('url');
     $marker->getShadow()->setJavascriptVariable('shadow');
     $marker->setShape('poly', array(1, 2, 3, 4));
     $marker->getShape()->setJavascriptVariable('shape');
     $expected = 'marker = new google.maps.Marker({' . '"position":position,' . '"animation":google.maps.Animation.BOUNCE,' . '"icon":icon,' . '"shadow":shadow,' . '"shape":shape' . '});' . PHP_EOL;
     $this->assertSame($expected, $this->markerHelper->render($marker));
 }