diff --git a/libraries/gis/pma_gis_geometrycollection.php b/libraries/gis/pma_gis_geometrycollection.php index 01e0a54645..91c5a588c9 100644 --- a/libraries/gis/pma_gis_geometrycollection.php +++ b/libraries/gis/pma_gis_geometrycollection.php @@ -59,7 +59,7 @@ class PMA_GIS_Geometrycollection extends PMA_GIS_Geometry // Trim to remove leading 'GEOMETRYCOLLECTION(' and trailing ')' $goem_col = substr($spatial, 19, (strlen($spatial) - 20)); - + // Split the geometry collection object to get its constituents. $sub_parts = $this->_explodeGeomCol($goem_col); @@ -323,7 +323,6 @@ class PMA_GIS_Geometrycollection extends PMA_GIS_Geometry foreach ($sub_parts as $sub_part) { $type_pos = stripos($sub_part, '('); $type = substr($sub_part, 0, $type_pos); - $gis_obj = PMA_GIS_Factory::factory($type); if (! $gis_obj) { continue; diff --git a/test/classes/gis/PMA_GIS_Geometry_test.php b/test/classes/gis/PMA_GIS_Geometry_test.php index 79aaca0f80..d27aa068ae 100644 --- a/test/classes/gis/PMA_GIS_Geometry_test.php +++ b/test/classes/gis/PMA_GIS_Geometry_test.php @@ -266,6 +266,7 @@ class PMA_GIS_GeometryTest extends PHPUnit_Framework_TestCase } public function providerForTestGetBoundsForOl() { + return array( array( 4326, @@ -273,12 +274,12 @@ class PMA_GIS_GeometryTest extends PHPUnit_Framework_TestCase 'minX' => '0', 'minY' => '0', 'maxX' => '1', - 'maxY' => '1' + 'maxY' => '1', ), 'bound = new OpenLayers.Bounds(); bound.extend(new OpenLayers.LonLat(0, 0).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject())); bound.extend(new OpenLayers.LonLat(1, 1).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()));' - ), + ) + ); - } /** @@ -290,6 +291,7 @@ class PMA_GIS_GeometryTest extends PHPUnit_Framework_TestCase *@dataProvider providerForTestGetPolygonArrayForOpenLayers */ public function testGetPolygonArrayForOpenLayers($polygons, $srid, $output){ + $this->assertEquals( $this->_callProtectedFunction( 'getPolygonArrayForOpenLayers', @@ -298,16 +300,18 @@ class PMA_GIS_GeometryTest extends PHPUnit_Framework_TestCase $output ); } - + public function providerForTestGetPolygonArrayForOpenLayers(){ - + return array( - - + array( + array('Triangle'), + 4326, + 'new Array(new OpenLayers.Geometry.Polygon(new Array(new OpenLayers.Geometry.LinearRing(new Array((new OpenLayers.Geometry.Point(,)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()))))))' + ) + ); - } - } ?> diff --git a/test/classes/gis/PMA_GIS_Geometrycollection_test.php b/test/classes/gis/PMA_GIS_Geometrycollection_test.php new file mode 100644 index 0000000000..813b0be9f5 --- /dev/null +++ b/test/classes/gis/PMA_GIS_Geometrycollection_test.php @@ -0,0 +1,291 @@ +object = PMA_GIS_Geometrycollection::singleton(); + } + + /** + * Tears down the fixture, for example, closes a network connection. + * This method is called after a test is executed. + * + * @access protected + * @return void + */ + protected function tearDown() { + unset($this->object); + } + + /** + * + * @param type $spatial + * + * @dataProvider providerForScaleRow + */ + public function testScaleRow($spatial, $output) { + + $this->assertEquals($this->object->scaleRow($spatial), $output); + } + + public function providerForScaleRow() { + + return array( + array( + 'GEOMETRYCOLLECTION(POLYGON((35 10,10 20,15 40,45 45,35 10),(20 30,35 32,30 20,20 30)))', + Array( + 'maxX' => 45.0, + 'minX' => 10.0, + 'maxY' => 45.0, + 'minY' => 10.0 + ) + ) + ); + } + + /** + * + * @param type $gis_data + * @param type $index + * @param string $empty + * @param type $output + * + * @dataProvider providerForGenerateWkt + */ + public function testGenerateWkt($gis_data, $index, $empty, $output) { + + $this->assertEquals($this->object->generateWkt($gis_data, $index, $empty = ''), $output); + } + + public function providerForGenerateWkt() { + + $temp1 = array( + 0 => array( + 'gis_type' => 'LINESTRING', + 'LINESTRING' => array( + 'no_of_points' => 2, + 0 => array('x' => 5.02, 'y' => 8.45), + 1 => array('x' => 6.14, 'y' => 0.15) + ) + ) + ); + + return array( + array( + $temp1, + 0, + null, + 'GEOMETRYCOLLECTION(LINESTRING(5.02 8.45,6.14 0.15))' + ) + ); + } + + /** + * @param $value + * @param $output + * + * @dataProvider providerForGenerateParams + */ + public function testGenerateParams($value, $output) { + + $this->assertEquals($this->object->generateParams($value), $output); + } + + public function providerForGenerateParams() { + + return array( + array( + 'GEOMETRYCOLLECTION(LINESTRING(5.02 8.45,6.14 0.15))', + array( + 'srid' => 0, + 'GEOMETRYCOLLECTION' => Array('geom_count' => 1), + + '0' => Array( + 'gis_type' => 'LINESTRING', + 'LINESTRING' => Array( + 'no_of_points' => 2, + '0' => Array( + 'x' => 5.02, + 'y' => 8.45 + ), + '1' => Array( + 'x' => 6.14, + 'y' => 0.15 + ) + ) + + ) + ), + ), + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $image + * @param type $output + * + * @dataProvider providerForPrepareRowAsPng + */ + public function testPrepareRowAsPng($spatial, $label, $line_color, $scale_data, $image, $output) { + + $return = $this->object->prepareRowAsPng($spatial, $label, $line_color, $scale_data, $image); + $this->assertTrue(true); + } + + public function providerForPrepareRowAsPng() { + + return array( + array( + 'GEOMETRYCOLLECTION(POLYGON((35 10,10 20,15 40,45 45,35 10),(20 30,35 32,30 20,20 30)))', + 'image', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + imagecreatetruecolor('120', '150'), + '' + ) + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $pdf + * + * @dataProvider providerForPrepareRowAsPdf + */ + public function testPrepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf) { + + $return = $this->object->prepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf); + $this->assertTrue($return instanceof TCPDF); + } + + public function providerForPrepareRowAsPdf() { + + return array( + array( + 'GEOMETRYCOLLECTION(POLYGON((35 10,10 20,15 40,45 45,35 10),(20 30,35 32,30 20,20 30)))', + 'pdf', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + new TCPDF(), + ) + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + * @dataProvider providerForPrepareRowAsSvg + */ + public function testPrepareRowAsSvg($spatial, $label, $line_color, $scale_data, $output) { + + $string = $this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data); + $this->assertEquals(1, preg_match($output, $string)); +// $this->assertEquals($this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsSvg() { + + return array( + array( + 'GEOMETRYCOLLECTION(POLYGON((35 10,10 20,15 40,45 45,35 10),(20 30,35 32,30 20,20 30)))', + 'svg', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + '/^()$/' + ) + ); + } + + /** + * + * @param type $spatial + * @param type $srid + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + * @dataProvider providerForPrepareRowAsOl + */ + public function testPrepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data, $output) { + + $this->assertEquals($this->object->prepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data), $output); + } + + public function providerForPrepareRowAsOl() { + + return array( + array( + 'GEOMETRYCOLLECTION(POLYGON((35 10,10 20,15 40,45 45,35 10),(20 30,35 32,30 20,20 30)))', + 4326, + 'Ol', + '#B02EE0', + array( + 'minX' => '0', + 'minY' => '0', + 'maxX' => '1', + 'maxY' => '1', + ), + 'bound = new OpenLayers.Bounds(); bound.extend(new OpenLayers.LonLat(0, 0).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject())); bound.extend(new OpenLayers.LonLat(1, 1).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()));vectorLayer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon(new Array(new OpenLayers.Geometry.LinearRing(new Array((new OpenLayers.Geometry.Point(35,10)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(10,20)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(15,40)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(45,45)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(35,10)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()))), new OpenLayers.Geometry.LinearRing(new Array((new OpenLayers.Geometry.Point(20,30)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(35,32)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(30,20)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(20,30)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()))))), null, {"strokeColor":"#000000","strokeWidth":0.5,"fillColor":"#B02EE0","fillOpacity":0.8,"label":"Ol","fontSize":10}));' + ) + ); + } + +} + +?> diff --git a/test/classes/gis/PMA_GIS_Linestring_test.php b/test/classes/gis/PMA_GIS_Linestring_test.php index 133c8ff0af..82041d9b70 100644 --- a/test/classes/gis/PMA_GIS_Linestring_test.php +++ b/test/classes/gis/PMA_GIS_Linestring_test.php @@ -9,6 +9,7 @@ require_once 'PMA_GIS_Geom_test.php'; require_once 'libraries/gis/pma_gis_geometry.php'; require_once 'libraries/gis/pma_gis_linestring.php'; +require_once 'libraries/tcpdf/tcpdf.php'; /** * Tests for PMA_GIS_Linestring class @@ -161,5 +162,146 @@ class PMA_GIS_LinestringTest extends PMA_GIS_GeomTest ) ); } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $image + * @param type $output + * + *@dataProvider providerForPrepareRowAsPng + */ + public function testPrepareRowAsPng($spatial, $label, $line_color, $scale_data, $image, $output) { + + $return = $this->object->prepareRowAsPng($spatial, $label, $line_color, $scale_data, $image); + $this->assertTrue(true); + } + + public function providerForPrepareRowAsPng(){ + + return array( + array( + 'LINESTRING(12 35,48 75,69 23,25 45,14 53,35 78)', + 'image', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + imagecreatetruecolor('120','150'), + '' + ) + + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $pdf + * + *@dataProvider providerForPrepareRowAsPdf + */ + public function testPrepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf) { + + $return = $this->object->prepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf); + $this->assertTrue($return instanceof TCPDF); + } + + public function providerForPrepareRowAsPdf(){ + + return array( + array( + 'LINESTRING(12 35,48 75,69 23,25 45,14 53,35 78)', + 'pdf', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + new TCPDF(), + ) + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsSvg + */ + public function testPrepareRowAsSvg($spatial, $label, $line_color, $scale_data, $output) { + + $string = $this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data); + $this->assertEquals(1, preg_match($output, $string)); + //$this->assertEquals($this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsSvg(){ + + return array( + array( + 'LINESTRING(12 35,48 75,69 23,25 45,14 53,35 78)', + 'svg', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + '/^()$/' + ) + ); + } + + /** + * + * @param type $spatial + * @param type $srid + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsOl + */ + public function testPrepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data, $output) { + + $this->assertEquals($this->object->prepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsOl(){ + + return array( + array( + 'LINESTRING(12 35,48 75,69 23,25 45,14 53,35 78)', + 4326, + 'Ol', + '#B02EE0', + array( + 'minX' => '0', + 'minY' => '0', + 'maxX' => '1', + 'maxY' => '1', + ), + 'bound = new OpenLayers.Bounds(); bound.extend(new OpenLayers.LonLat(0, 0).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject())); bound.extend(new OpenLayers.LonLat(1, 1).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()));vectorLayer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString(new Array((new OpenLayers.Geometry.Point(12,35)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(48,75)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(69,23)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(25,45)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(14,53)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(35,78)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()))), null, {"strokeColor":"#B02EE0","strokeWidth":2,"label":"Ol","fontSize":10}));' + ) + ); + } } ?> diff --git a/test/classes/gis/PMA_GIS_Multilinestring_test.php b/test/classes/gis/PMA_GIS_Multilinestring_test.php index 8752957610..bf927ea93c 100644 --- a/test/classes/gis/PMA_GIS_Multilinestring_test.php +++ b/test/classes/gis/PMA_GIS_Multilinestring_test.php @@ -9,6 +9,7 @@ require_once 'PMA_GIS_Geom_test.php'; require_once 'libraries/gis/pma_gis_geometry.php'; require_once 'libraries/gis/pma_gis_multilinestring.php'; +require_once 'libraries/tcpdf/tcpdf.php'; /** * Tests for PMA_GIS_Multilinestring class @@ -221,5 +222,147 @@ class PMA_GIS_MultilinestringTest extends PMA_GIS_GeomTest ) ); } + + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $image + * @param type $output + * + *@dataProvider providerForPrepareRowAsPng + */ + public function testPrepareRowAsPng($spatial, $label, $line_color, $scale_data, $image, $output) { + + $return = $this->object->prepareRowAsPng($spatial, $label, $line_color, $scale_data, $image); + $this->assertTrue(true); + } + + public function providerForPrepareRowAsPng(){ + + return array( + array( + 'MULTILINESTRING((36 14,47 23,62 75),(36 10,17 23,178 53))', + 'image', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + imagecreatetruecolor('120','150'), + '' + ) + + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $pdf + * + *@dataProvider providerForPrepareRowAsPdf + */ + public function testPrepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf) { + + $return = $this->object->prepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf); + $this->assertTrue($return instanceof TCPDF); + } + + public function providerForPrepareRowAsPdf(){ + + return array( + array( + 'MULTILINESTRING((36 14,47 23,62 75),(36 10,17 23,178 53))', + 'pdf', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + new TCPDF(), + ) + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsSvg + */ + public function testPrepareRowAsSvg($spatial, $label, $line_color, $scale_data, $output) { + + $string = $this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data); + $this->assertEquals(1, preg_match($output, $string)); + //$this->assertEquals($this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsSvg(){ + + return array( + array( + 'MULTILINESTRING((36 14,47 23,62 75),(36 10,17 23,178 53))', + 'svg', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + '/^()$/' + ) + ); + } + + /** + * + * @param type $spatial + * @param type $srid + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsOl + */ + public function testPrepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data, $output) { + + $this->assertEquals($this->object->prepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsOl(){ + + return array( + array( + 'MULTILINESTRING((36 14,47 23,62 75),(36 10,17 23,178 53))', + 4326, + 'Ol', + '#B02EE0', + array( + 'minX' => '0', + 'minY' => '0', + 'maxX' => '1', + 'maxY' => '1', + ), + 'bound = new OpenLayers.Bounds(); bound.extend(new OpenLayers.LonLat(0, 0).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject())); bound.extend(new OpenLayers.LonLat(1, 1).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()));vectorLayer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiLineString(new Array(new OpenLayers.Geometry.LineString(new Array((new OpenLayers.Geometry.Point(36,14)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(47,23)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(62,75)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()))), new OpenLayers.Geometry.LineString(new Array((new OpenLayers.Geometry.Point(36,10)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(17,23)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(178,53)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()))))), null, {"strokeColor":"#B02EE0","strokeWidth":2,"label":"Ol","fontSize":10}));' + ) + ); + } } ?> diff --git a/test/classes/gis/PMA_GIS_Multipoint_test.php b/test/classes/gis/PMA_GIS_Multipoint_test.php index f7220ab6a5..185379a11a 100644 --- a/test/classes/gis/PMA_GIS_Multipoint_test.php +++ b/test/classes/gis/PMA_GIS_Multipoint_test.php @@ -9,6 +9,7 @@ require_once 'PMA_GIS_Geom_test.php'; require_once 'libraries/gis/pma_gis_geometry.php'; require_once 'libraries/gis/pma_gis_multipoint.php'; +require_once 'libraries/tcpdf/tcpdf.php'; /** * Tests for PMA_GIS_Multipoint class @@ -165,5 +166,147 @@ class PMA_GIS_MultipointTest extends PMA_GIS_GeomTest ) ); } + + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $image + * @param type $output + * + *@dataProvider providerForPrepareRowAsPng + */ + public function testPrepareRowAsPng($spatial, $label, $line_color, $scale_data, $image, $output) { + + $return = $this->object->prepareRowAsPng($spatial, $label, $line_color, $scale_data, $image); + $this->assertTrue(true); + } + + public function providerForPrepareRowAsPng(){ + + return array( + array( + 'MULTIPOINT(12 35,48 75,69 23,25 45,14 53,35 78)', + 'image', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + imagecreatetruecolor('120','150'), + '' + ) + + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $pdf + * + *@dataProvider providerForPrepareRowAsPdf + */ + public function testPrepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf) { + + $return = $this->object->prepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf); + $this->assertTrue($return instanceof TCPDF); + } + + public function providerForPrepareRowAsPdf(){ + + return array( + array( + 'MULTIPOINT(12 35,48 75,69 23,25 45,14 53,35 78)', + 'pdf', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + new TCPDF(), + ) + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsSvg + */ + public function testPrepareRowAsSvg($spatial, $label, $line_color, $scale_data, $output) { + + $string = $this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data); + $this->assertEquals(1, preg_match($output, $string)); +// $this->assertEquals($this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsSvg(){ + + return array( + array( + 'MULTIPOINT(12 35,48 75,69 23,25 45,14 53,35 78)', + 'svg', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + '/^()$/' + ) + ); + } + + /** + * + * @param type $spatial + * @param type $srid + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsOl + */ + public function testPrepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data, $output) { + + $this->assertEquals($this->object->prepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsOl(){ + + return array( + array( + 'MULTIPOINT(12 35,48 75,69 23,25 45,14 53,35 78)', + 4326, + 'Ol', + '#B02EE0', + array( + 'minX' => '0', + 'minY' => '0', + 'maxX' => '1', + 'maxY' => '1', + ), + 'bound = new OpenLayers.Bounds(); bound.extend(new OpenLayers.LonLat(0, 0).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject())); bound.extend(new OpenLayers.LonLat(1, 1).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()));vectorLayer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiPoint(new Array((new OpenLayers.Geometry.Point(12,35)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(48,75)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(69,23)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(25,45)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(14,53)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(35,78)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()))), null, {"pointRadius":3,"fillColor":"#ffffff","strokeColor":"#B02EE0","strokeWidth":2,"label":"Ol","labelYOffset":-8,"fontSize":10}));' + ) + ); + } } ?> diff --git a/test/classes/gis/PMA_GIS_Multipolygon_test.php b/test/classes/gis/PMA_GIS_Multipolygon_test.php index 829655c9cb..609c19665d 100644 --- a/test/classes/gis/PMA_GIS_Multipolygon_test.php +++ b/test/classes/gis/PMA_GIS_Multipolygon_test.php @@ -9,6 +9,7 @@ require_once 'PMA_GIS_Geom_test.php'; require_once 'libraries/gis/pma_gis_geometry.php'; require_once 'libraries/gis/pma_gis_multipolygon.php'; +require_once 'libraries/tcpdf/tcpdf.php'; /** * Tests for PMA_GIS_Multipolygon class @@ -259,5 +260,147 @@ class PMA_GIS_MultipolygonTest extends PMA_GIS_GeomTest ) ); } + + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $image + * @param type $output + * + *@dataProvider providerForPrepareRowAsPng + */ + public function testPrepareRowAsPng($spatial, $label, $line_color, $scale_data, $image, $output) { + + $return = $this->object->prepareRowAsPng($spatial, $label, $line_color, $scale_data, $image); + $this->assertTrue(true); + } + + public function providerForPrepareRowAsPng(){ + + return array( + array( + 'MULTIPOLYGON(((136 40,147 83,16 75,136 40)),((105 0,56 20,78 73,105 0)))', + 'image', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + imagecreatetruecolor('120','150'), + '' + ) + + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $pdf + * + *@dataProvider providerForPrepareRowAsPdf + */ + public function testPrepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf) { + + $return = $this->object->prepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf); + $this->assertTrue($return instanceof TCPDF); + } + + public function providerForPrepareRowAsPdf(){ + + return array( + array( + 'MULTIPOLYGON(((136 40,147 83,16 75,136 40)),((105 0,56 20,78 73,105 0)))', + 'pdf', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + new TCPDF(), + ) + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsSvg + */ + public function testPrepareRowAsSvg($spatial, $label, $line_color, $scale_data, $output) { + + $string = $this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data); + $this->assertEquals(1, preg_match($output, $string)); +// $this->assertEquals($this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsSvg(){ + + return array( + array( + 'MULTIPOLYGON(((136 40,147 83,16 75,136 40)),((105 0,56 20,78 73,105 0)))', + 'svg', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + '/^()$/' + ) + ); + } + + /** + * + * @param type $spatial + * @param type $srid + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsOl + */ + public function testPrepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data, $output) { + + $this->assertEquals($this->object->prepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsOl(){ + + return array( + array( + 'MULTIPOLYGON(((136 40,147 83,16 75,136 40)),((105 0,56 20,78 73,105 0)))', + 4326, + 'Ol', + '#B02EE0', + array( + 'minX' => '0', + 'minY' => '0', + 'maxX' => '1', + 'maxY' => '1', + ), + 'bound = new OpenLayers.Bounds(); bound.extend(new OpenLayers.LonLat(0, 0).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject())); bound.extend(new OpenLayers.LonLat(1, 1).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()));vectorLayer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiPolygon(new Array(new OpenLayers.Geometry.Polygon(new Array(new OpenLayers.Geometry.LinearRing(new Array((new OpenLayers.Geometry.Point(136,40)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(147,83)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(16,75)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(136,40)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()))))), new OpenLayers.Geometry.Polygon(new Array(new OpenLayers.Geometry.LinearRing(new Array((new OpenLayers.Geometry.Point(105,0)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(56,20)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(78,73)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(105,0)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()))))))), null, {"strokeColor":"#000000","strokeWidth":0.5,"fillColor":"#B02EE0","fillOpacity":0.8,"label":"Ol","fontSize":10}));' + ) + ); + } } ?> diff --git a/test/classes/gis/PMA_GIS_Point_test.php b/test/classes/gis/PMA_GIS_Point_test.php index 0fc75e92a1..e7f6a40148 100644 --- a/test/classes/gis/PMA_GIS_Point_test.php +++ b/test/classes/gis/PMA_GIS_Point_test.php @@ -9,6 +9,7 @@ require_once 'PMA_GIS_Geom_test.php'; require_once 'libraries/gis/pma_gis_geometry.php'; require_once 'libraries/gis/pma_gis_point.php'; +require_once 'libraries/tcpdf/tcpdf.php'; /** * Tests for PMA_GIS_Point class. @@ -167,5 +168,146 @@ class PMA_GIS_PointTest extends PMA_GIS_GeomTest ) ); } + + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $image + * @param type $output + * + *@dataProvider providerForPrepareRowAsPng + */ + public function testPrepareRowAsPng($spatial, $label, $line_color, $scale_data, $image, $output) { + + $return = $this->object->prepareRowAsPng($spatial, $label, $line_color, $scale_data, $image); + $this->assertTrue(true); + } + + public function providerForPrepareRowAsPng(){ + + return array( + array( + 'POINT(12 35)', + 'image', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + imagecreatetruecolor('120','150'), + '' + ) + + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $pdf + * + *@dataProvider providerForPrepareRowAsPdf + */ + public function testPrepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf) { + + $return = $this->object->prepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf); + $this->assertTrue($return instanceof TCPDF); + } + + public function providerForPrepareRowAsPdf(){ + + return array( + array( + 'POINT(12 35)', + 'pdf', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + new TCPDF(), + ) + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsSvg + */ + public function testPrepareRowAsSvg($spatial, $label, $line_color, $scale_data, $output) { + + $this->assertEquals($output, $this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data)); +// $this->assertEquals($this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsSvg(){ + + return array( + array( + 'POINT(12 35)', + 'svg', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + '' + ) + ); + } + + /** + * + * @param type $spatial + * @param type $srid + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsOl + */ + public function testPrepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data, $output) { + + $this->assertEquals($this->object->prepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsOl(){ + + return array( + array( + 'POINT(12 35)', + 4326, + 'Ol', + '#B02EE0', + array( + 'minX' => '0', + 'minY' => '0', + 'maxX' => '1', + 'maxY' => '1', + ), + 'bound = new OpenLayers.Bounds(); bound.extend(new OpenLayers.LonLat(0, 0).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject())); bound.extend(new OpenLayers.LonLat(1, 1).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()));vectorLayer.addFeatures(new OpenLayers.Feature.Vector((new OpenLayers.Geometry.Point(12,35)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), null, {"pointRadius":3,"fillColor":"#ffffff","strokeColor":"#B02EE0","strokeWidth":2,"label":"Ol","labelYOffset":-8,"fontSize":10}));' + ) + ); + } } ?> diff --git a/test/classes/gis/PMA_GIS_Polygon_test.php b/test/classes/gis/PMA_GIS_Polygon_test.php index 4ffa7040e6..b0cebaa569 100644 --- a/test/classes/gis/PMA_GIS_Polygon_test.php +++ b/test/classes/gis/PMA_GIS_Polygon_test.php @@ -9,6 +9,7 @@ require_once 'PMA_GIS_Geom_test.php'; require_once 'libraries/gis/pma_gis_geometry.php'; require_once 'libraries/gis/pma_gis_polygon.php'; +require_once 'libraries/tcpdf/tcpdf.php'; /** * Tests for PMA_GIS_Polygon class @@ -347,5 +348,173 @@ class PMA_GIS_PolygonTest extends PMA_GIS_GeomTest ), ); } + + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $image + * @param type $output + * + *@dataProvider providerForPrepareRowAsPng + */ + public function testPrepareRowAsPng($spatial, $label, $line_color, $scale_data, $image, $output) { + + $return = $this->object->prepareRowAsPng($spatial, $label, $line_color, $scale_data, $image); + $this->assertTrue(true); + } + + public function providerForPrepareRowAsPng(){ + + return array( + array( + 'POLYGON((123 0,23 30,17 63,123 0))', + 'image', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + imagecreatetruecolor('120','150'), + '' + ) + + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $pdf + * + *@dataProvider providerForPrepareRowAsPdf + */ + public function testPrepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf) { + + $return = $this->object->prepareRowAsPdf($spatial, $label, $line_color, $scale_data, $pdf); + $this->assertTrue($return instanceof TCPDF); + } + + public function providerForPrepareRowAsPdf(){ + + return array( + array( + 'POLYGON((123 0,23 30,17 63,123 0))', + 'pdf', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + new TCPDF(), + ) + ); + } + + /** + * + * @param type $spatial + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsSvg + */ + public function testPrepareRowAsSvg($spatial, $label, $line_color, $scale_data, $output) { + + $string = $this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data); + $this->assertEquals(1, preg_match($output, $string)); +// $this->assertEquals($this->object->prepareRowAsSvg($spatial, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsSvg(){ + + return array( + array( + 'POLYGON((123 0,23 30,17 63,123 0))', + 'svg', + '#B02EE0', + array( + 'x' => 12, + 'y' => 69, + 'scale' => 2, + 'height' => 150 + ), + '/^()$/' + ) + ); + } + + /** + * + * @param type $spatial + * @param type $srid + * @param type $label + * @param type $line_color + * @param type $scale_data + * @param type $output + * + *@dataProvider providerForPrepareRowAsOl + */ + public function testPrepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data, $output) { + + $this->assertEquals($this->object->prepareRowAsOl($spatial, $srid, $label, $line_color, $scale_data) , $output); + } + + public function providerForPrepareRowAsOl(){ + + return array( + array( + 'POLYGON((123 0,23 30,17 63,123 0))', + 4326, + 'Ol', + '#B02EE0', + array( + 'minX' => '0', + 'minY' => '0', + 'maxX' => '1', + 'maxY' => '1', + ), + 'bound = new OpenLayers.Bounds(); bound.extend(new OpenLayers.LonLat(0, 0).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject())); bound.extend(new OpenLayers.LonLat(1, 1).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()));vectorLayer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon(new Array(new OpenLayers.Geometry.LinearRing(new Array((new OpenLayers.Geometry.Point(123,0)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(23,30)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(17,63)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()), (new OpenLayers.Geometry.Point(123,0)).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()))))), null, {"strokeColor":"#000000","strokeWidth":0.5,"fillColor":"#B02EE0","fillOpacity":0.8,"label":"Ol","fontSize":10}));' + ) + ); + } + + /** + * + * @param type $ring + * @param type $output + * + *@dataProvider providerForIsOuterRing + */ + public function testIsOuterRing($ring) { + + $this->assertTrue($this->object->isOuterRing($ring)); + } + + public function providerForIsOuterRing(){ + + return array( + array( + array( + array('x' => 0, 'y' => 0), + array('x' => 0, 'y' => 1), + array('x' => 1, 'y' => 1), + array('x' => 1, 'y' => 0) + ), + ) + ); + } } ?>