public function testRenderWithOptions() { $map = $this->getMock('Ivory\\GoogleMap\\Map'); $map->expects($this->once())->method('getJavascriptVariable')->will($this->returnValue('map')); $polygon = new Polygon(); $polygon->setJavascriptVariable('polygon'); $polygon->addCoordinate(1.1, 2.1); $polygon->addCoordinate(3.1, 4.2); $polygon->addCoordinate(7.4, 12.6); foreach ($polygon->getCoordinates() as $index => $coordinate) { $coordinate->setJavascriptVariable('coordinate' . $index); } $polygon->setOptions(array('option1' => 'value1', 'option2' => 'value2')); $expected = 'polygon = new google.maps.Polygon({' . '"map":map,' . '"paths":[' . 'coordinate0,' . 'coordinate1,' . 'coordinate2' . '],' . '"option1":"value1",' . '"option2":"value2"' . '});' . PHP_EOL; $this->assertSame($expected, $this->polygonHelper->render($polygon, $map)); }
/** * Renders the javascript container polygons. * * @param \Ivory\GoogleMap\Map $map The map. * * @return string The JS output. */ public function renderJsContainerPolygons(Map $map) { $output = array(); foreach ($map->getPolygons() as $polygon) { $output[] = sprintf('%s.polygons.%s = %s', $this->getJsContainerName($map), $polygon->getJavascriptVariable(), $this->polygonHelper->render($polygon, $map)); } return implode('', $output); }