[php-geos] 01/03: Imported Upstream version 1.0.0~rc2
Bas Couwenberg
sebastic at debian.org
Mon Dec 12 17:16:48 UTC 2016
This is an automated email from the git hooks/post-receive script.
sebastic pushed a commit to branch master
in repository php-geos.
commit f39afa6b3981dc696543146f43f1be6c98f78f7c
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date: Mon Dec 12 18:15:54 2016 +0100
Imported Upstream version 1.0.0~rc2
---
README.md | 2 +-
geos.c | 2 +-
tests/005_WKBReader.phpt | 89 ++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 91 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 1de3193..a7318e7 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ PHP module for GEOS
[![build status]
(https://drone.osgeo.kbt.io/api/badges/geos/php-geos/status.svg?branch=master)]
-(https://drone.osgeo.kbt.io/geos/php-geos?branch=master, alt=build status)
+(https://drone.osgeo.kbt.io/geos/php-geos?branch=master)
The code in this directory provides a PHP module to make use
of functionalities of the [GEOS library] (http://geos.osgeo.org).
diff --git a/geos.c b/geos.c
index 3f449f6..2c81428 100755
--- a/geos.c
+++ b/geos.c
@@ -2969,7 +2969,7 @@ PHP_METHOD(WKBReader, read)
}
#if PHP_VERSION_ID >= 70000
- wkblen = strlen(ZSTR_VAL(wkb));
+ wkblen = ZSTR_LEN(wkb);
#endif
geom = GEOSWKBReader_read_r(GEOS_G(handle), reader, (unsigned char*)ZSTR_VAL(wkb), wkblen);
diff --git a/tests/005_WKBReader.phpt b/tests/005_WKBReader.phpt
new file mode 100644
index 0000000..f5acf5a
--- /dev/null
+++ b/tests/005_WKBReader.phpt
@@ -0,0 +1,89 @@
+--TEST--
+WKBReader tests
+--SKIPIF--
+<?php if (!extension_loaded('geos')) { print "geos extension not loaded\n"; exit(1); } ?>
+--FILE--
+<?php
+
+require './tests/TestHelper.php';
+
+class WKBReaderTest extends GEOSTest
+{
+ public function testValidWKB()
+ {
+ $reader = new GEOSWKBReader();
+ $writer = new GEOSWKTWriter();
+ $writer->setRoundingPrecision(1);
+ $writer->setOutputDimension(3);
+
+ foreach ($this->providerValidWKB() as $test) {
+ list ($wkb, $wkt, $srid) = $test;
+
+ $geometry = $reader->readHEX($wkb);
+ $this->assertEquals($wkt, $writer->write($geometry));
+ $this->assertEquals($srid, $geometry->getSRID());
+
+ $geometry = $reader->read(hex2bin($wkb));
+ $this->assertEquals($wkt, $writer->write($geometry));
+ $this->assertEquals($srid, $geometry->getSRID());
+ }
+ }
+
+ private function providerValidWKB()
+ {
+ return array(
+ array('0101000020e6100000000000000000f03f0000000000000040', 'POINT (1.0 2.0)', 4326),
+ array('01010000a0e6100000333333333333f33f3333333333330b406666666666661640', 'POINT Z (1.2 3.4 5.6)', 4326),
+ array('0104000000030000000101000000000000000000f03f0000000000000040010100000000000000000008400000000000001040010100000000000000000014400000000000001840', 'MULTIPOINT (1.0 2.0, 3.0 4.0, 5.0 6.0)', 0),
+ array('0104000080030000000101000080000000000000f03f00000000000000400000000000000840010100008000000000000010400000000000001440000000000000184001010000800000000000001c4000000000000020400000000000002240', 'MULTIPOINT Z (1.0 2.0 3.0, 4.0 5.0 6.0, 7.0 8.0 9.0)', 0),
+ array('01040000207b00000000000000', 'MULTIPOINT EMPTY', 123),
+ array('0102000020c801000003000000000000000000f03f00000000000000400000000000000840000000000000104000000000000008400000000000000040', 'LINESTRING (1.0 2.0, 3.0 4.0, 3.0 2.0)', 456),
+ array('01020000a0db03000003000000000000000000f03f000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001c4000000000000020400000000000002240', 'LINESTRING Z (1.0 2.0 3.0, 4.0 5.0 6.0, 7.0 8.0 9.0)', 987),
+ array('01020000201503000000000000', 'LINESTRING EMPTY', 789),
+ array('0105000020d204000002000000010200000002000000000000000000f03f0000000000000000000000000000044000000000000000400102000000020000009a9999999999174000000000000020409a99999999990d40000000000000f03f', 'MULTILINESTRING ((1.0 0.0, 2.5 2.0), (5.9 8.0, 3.7 1.0))', 1234),
+ array('01050000a0e110000002000000010200008002000000000000000000f03f0000000000000000000000000000f03f00000000000004400000000000000040000000000000f03f0102000080020000009a99999999991740000000000000204000000000000008409a99999999990d40000000000000f03f0000000000000840', 'MULTILINESTRING Z ((1.0 0.0 1.0, 2.5 2.0 1.0), (5.9 8.0 3.0, 3.7 1.0 3.0))', 4321),
+ array('01050000203930000000000000', 'MULTILINESTRING EMPTY', 12345),
+ array('0103000020f40100000100000004000000000000000000f03f000000000000f03f000000000000f03f000000000000f83f000000000000f83f000000000000f03f000000000000f03f000000000000f03f', 'POLYGON ((1.0 1.0, 1.0 1.5, 1.5 1.0, 1.0 1.0))', 500),
+ array('0103000020f30100000200000005000000000000000000000000000000000000000000000000000000000000000000084000000000000008400000000000000840000000000000084000000000000000000000000000000000000000000000000005000000000000000000f03f000000000000f03f000000000000f03f0000000000000040000000000000004000000000000000400000000000000040000000000000f03f000000000000f03f000000000000f03f', 'POLYGON ((0.0 0.0, 0.0 3.0, 3.0 3.0, 3.0 0.0, 0.0 0.0), (1.0 1.0, 1.0 2.0, 2.0 2.0, 2.0 1.0, 1.0 1.0))', 499),
+ array('01030000a06300000001000000040000009a9999999999f13f9a9999999999014000000000000000009a999999999901403333333333331d409a9999999999f13f00000000000021409a999999999901409a9999999999f13f9a9999999999f13f9a999999999901400000000000000000', 'POLYGON Z ((1.1 2.2 0.0, 2.2 7.3 1.1, 8.5 2.2 1.1, 1.1 2.2 0.0))', 99),
+ array('01030000200100000000000000', 'POLYGON EMPTY', 1),
+ array('0106000020020000000100000001030000000200000005000000000000000000000000000000000000000000000000000000000000000000084000000000000008400000000000000840000000000000084000000000000000000000000000000000000000000000000005000000000000000000f03f000000000000f03f000000000000f03f0000000000000040000000000000004000000000000000400000000000000040000000000000f03f000000000000f03f000000000000f03f', 'MULTIPOLYGON (((0.0 0.0, 0.0 3.0, 3.0 3.0, 3.0 0.0, 0.0 0.0), (1.0 1.0, 1.0 2.0, 2.0 2.0, [...]
+ array('01060000a003000000010000000103000080020000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000008400000000000000840000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000f03f000000000000f03f9a9999999999f13f000000000000f03f00000000000000409a9999999999f13f000000000000004000000000000000409a9999999999f13f0000000000000040000000000000f [...]
+ array('01060000200400000000000000', 'MULTIPOLYGON EMPTY', 4),
+ array('01070000200f270000060000000101000000000000000000f03f00000000000000400104000000030000000101000000000000000000f03f0000000000000040010100000000000000000008400000000000001040010100000000000000000014400000000000001840010200000003000000000000000000f03f00000000000000400000000000000840000000000000104000000000000008400000000000000040010500000002000000010200000002000000000000000000f03f0000000000000000000000000000044000000000000000400102000000020000009a999999999917400000000000002 [...]
+ array('01070000200903000000000000', 'GEOMETRYCOLLECTION EMPTY', 777),
+ );
+ }
+
+ public function testBogusWKB()
+ {
+ $reader = new GEOSWKBReader();
+
+ try {
+ $reader->read(hex2bin('1234567890abcdef'));
+ $this->assertTrue(FALSE); # this is just to fail if we get here
+ } catch (Exception $e) {
+ $this->assertContains('ParseException', $e->getMessage());
+ }
+ }
+
+ public function testBogusHexWKB()
+ {
+ $reader = new GEOSWKBReader();
+
+ try {
+ $reader->readHEX('1234567890abcdef');
+ $this->assertTrue(FALSE); # this is just to fail if we get here
+ } catch (Exception $e) {
+ $this->assertContains('ParseException', $e->getMessage());
+ }
+ }
+}
+
+WKBReaderTest::run();
+
+?>
+--EXPECT--
+WKBReaderTest->testValidWKB OK
+WKBReaderTest->testBogusWKB OK
+WKBReaderTest->testBogusHexWKB OK
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/php-geos.git
More information about the Pkg-grass-devel
mailing list