]> granicus.if.org Git - postgis/commitdiff
Add in tests for MapServer/Geoserver-style SQL calls. (#224)
authorPaul Ramsey <pramsey@cleverelephant.ca>
Mon, 16 Nov 2009 21:13:44 +0000 (21:13 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Mon, 16 Nov 2009 21:13:44 +0000 (21:13 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@4839 b70326c6-7e19-0410-871a-916f4a2858ee

regress/Makefile.in
regress/wmsservers.sql [new file with mode: 0644]
regress/wmsservers_expected [new file with mode: 0644]

index de2c466a9fc5b73873ae0c96d58770ecc43a0846..014ea01aaef21f384e7c4f90f64ff7d30564c3bb 100644 (file)
@@ -61,7 +61,8 @@ TESTS = \
        regress_ogc \
        regress_bdpoly \
        regress_proj \
-       dumppoints
+       dumppoints \
+       wmsservers
 
 # Covers/CoveredBy only if GEOS >= 3.0
 ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 30),1)
diff --git a/regress/wmsservers.sql b/regress/wmsservers.sql
new file mode 100644 (file)
index 0000000..a095ba5
--- /dev/null
@@ -0,0 +1,37 @@
+SELECT 'Starting up MapServer/Geoserver tests...';
+-- Set up the data table
+SELECT 'Setting up the data table...';
+create table wmstest as select lon * 100 + lat as id, st_setsrid(st_buffer(st_makepoint(lon, lat),1.0),4326) as pt
+from (select lon, generate_series(-80,80, 5) as lat from (select generate_series(-175, 175, 5) as lon) as sq1) as sq2;
+insert into geometry_columns (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, type) values ('', 'public','wmstest','pt',2,4326,'POLYGON');
+alter table wmstest add primary key ( id );
+create index wmstest_geomidx on wmstest using gist ( pt );
+
+-- Geoserver 2.0 NG tests
+SELECT 'Running Geoserver 2.0 NG tests...';
+-- Run a Geoserver 2.0 NG metadata query
+SELECT TYPE FROM GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'public' AND F_TABLE_NAME = 'wmstest' AND F_GEOMETRY_COLUMN = 'pt';
+SELECT SRID FROM GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'public' AND F_TABLE_NAME = 'wmstest' AND F_GEOMETRY_COLUMN = 'pt';
+-- Run a Geoserver 2.0 NG WMS query
+SELECT "id",encode(asBinary(force_2d("pt"),'XDR'),'base64') as "pt" FROM "public"."wmstest" WHERE "pt" && GeomFromText('POLYGON ((-6.58216065979069 -0.7685569763184591, -6.58216065979069 0.911225433349509, -3.050569931030911 0.911225433349509, -3.050569931030911 -0.7685569763184591, -6.58216065979069 -0.7685569763184591))', 4326);
+-- Run a Geoserver 2.0 NG KML query
+SELECT count(*) FROM "public"."wmstest" WHERE "pt" && GeomFromText('POLYGON ((-1.504017942347938 24.0332272532341, -1.504017942347938 25.99364254836741, 1.736833353559741 25.99364254836741, 1.736833353559741 24.0332272532341, -1.504017942347938 24.0332272532341))', 4326);
+SELECT "id",encode(asBinary(force_2d("pt"),'XDR'),'base64') as "pt" FROM "public"."wmstest" WHERE "pt" && GeomFromText('POLYGON ((-1.504017942347938 24.0332272532341, -1.504017942347938 25.99364254836741, 1.736833353559741 25.99364254836741, 1.736833353559741 24.0332272532341, -1.504017942347938 24.0332272532341))', 4326);
+SELECT "id",encode(asBinary(force_2d("pt"),'XDR'),'base64') as "pt" FROM "public"."wmstest" WHERE "pt" && GeomFromText('POLYGON ((-1.507182836191598 24.031312785172446, -1.507182836191598 25.995557016429064, 1.7399982474034008 25.995557016429064, 1.7399982474034008 24.031312785172446, -1.507182836191598 24.031312785172446))', 4326);
+
+-- MapServer 5.4 tests
+select attname from pg_attribute, pg_constraint, pg_class where pg_constraint.conrelid = pg_class.oid and pg_class.oid = pg_attribute.attrelid and pg_constraint.contype = 'p' and pg_constraint.conkey[1] = pg_attribute.attnum and pg_class.relname = 'wmstest' and pg_table_is_visible(pg_class.oid) and pg_constraint.conkey[2] is null;
+select "id",encode(AsBinary(force_collection(force_2d("pt")),'NDR'),'base64') as geom,"id" from wmstest where pt && GeomFromText('POLYGON((-98.5 32,-98.5 39,-91.5 39,-91.5 32,-98.5 32))',find_srid('','wmstest','pt'));
+
+-- MapServer 5.6 tests
+select * from wmstest where false limit 0;
+select attname from pg_attribute, pg_constraint, pg_class where pg_constraint.conrelid = pg_class.oid and pg_class.oid = pg_attribute.attrelid and pg_constraint.contype = 'p' and pg_constraint.conkey[1] = pg_attribute.attnum and pg_class.relname = 'wmstest' and pg_table_is_visible(pg_class.oid) and pg_constraint.conkey[2] is null;
+select "id",encode(AsBinary(force_collection(force_2d("pt")),'NDR'),'hex') as geom,"id" from wmstest where pt && GeomFromText('POLYGON((-98.5 32,-98.5 39,-91.5 39,-91.5 32,-98.5 32))',find_srid('','wmstest','pt'));
+
+-- Drop the data table
+SELECT 'Removing the data table...';
+drop table wmstest;
+delete from geometry_columns where f_table_name = 'wmstest' and f_table_schema = 'public';
+SELECT 'Done.';
+
+
diff --git a/regress/wmsservers_expected b/regress/wmsservers_expected
new file mode 100644 (file)
index 0000000..8629dac
--- /dev/null
@@ -0,0 +1,65 @@
+Starting up MapServer/Geoserver tests...
+Setting up the data table...
+SELECT
+NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index "wmstest_pkey" for table "wmstest"
+ALTER TABLE
+Running Geoserver 2.0 NG tests...
+POLYGON
+4326
+-500|AAAAAAMAAAABAAAAIcAQAAAAAAAAAAAAAAAAAADAEBOtBgEUar/I+Lg8aaYEwBBN8oYZrle/2H3i
+pq6pXMAQrJM63ivLv+HHOzmuaMTAESvsMzAYhr/moJ5mfzvIwBHHGJjKMua/6ptmKQ6hnsASeCHV
+lRVpv+2Qa88yjULAEzg6Phyyzr/vYpfP91yuwBP///////6/8AAAAAAAAMAUx8XB400uv+9il8/3
+XLPAFYfeKmrqlL/tkGvPMo1NwBY452c1zRe/6ptmKQ6hrsAW1BPMz+d4v+agnmZ/O9zAF1NsxSHU
+M7/hxzs5rmjbwBeyDXnmUai/2H3ipq6pkcAX7FL5/uuVv8j4uDxppnTAGAAAAAAAALztGmJjMUXA
+wBfsUvn+65c/yPi4PGmlkcAXsg155lGqP9h94qauqSbAF1NsxSHUNz/hxzs5rmirwBbUE8zP530/
+5qCeZn87ssAWOOdnNc0dP+qbZikOoY3AFYfeKmrqmj/tkGvPMo04wBTHxcHjTTU/72KXz/dcqcAU
+AAAAAAAEP/AAAAAAAADAEzg6Phyy1D/vYpfP91y2wBJ4IdWVFW0/7ZBrzzKNUsARxxiYyjLqP+qb
+ZikOobLAESvsMzAYiT/moJ5mfzvfwBCskzreK80/4cc7Oa5o3MAQTfKGGa5YP9h94qauqYvAEBOt
+BgEUaj/I+Lg8aaZawBAAAAAAAAAAAAAAAAAAAA==
+1
+25|AAAAAAMAAAABAAAAIT/wAAAAAAAAQDkAAAAAAAA/72KXz/dcsEA4zg6Phyy0P+2Qa88yjUhAOJ4I
+dWVFWz/qm2YpDqGmQDhxxiYyjLo/5qCeZn870kA4SvsMzAYiP+HHOzmuaNFAOCskzreK8z/YfeKm
+rql2QDgTfKGGa5Y/yPi4PGmmPEA4BOtBgEUbPN0aYmMxRcBAOAAAAAAAAL/I+Lg8aaXKQDgE60GA
+RRq/2H3ipq6pQEA4E3yhhmuWv+HHOzmuaLhAOCskzreK87/moJ5mfzu+QDhK+wzMBiG/6ptmKQ6h
+lkA4ccYmMoy5v+2Qa88yjT1AOJ4IdWVFWr/vYpfP91yrQDjODo+HLLO/8AAAAAAAAEA4////////
+v+9il8/3XLZAOTHxcHjTS7/tkGvPMo1TQDlh94qauqW/6ptmKQ6ht0A5jjnZzXNFv+agnmZ/O+dA
+ObUE8zP53r/hxzs5rmjqQDnU2zFIdQy/2H3ipq6pqEA57INeeZRqv8j4uDxpppdAOfsUvn+65bzw
+08nKZPRQQDoAAAAAAAA/yPi4PGmljkA5+xS+f7rmP9h94qauqSxAOeyDXnmUaz/hxzs5rmixQDnU
+2zFIdQ4/5qCeZn87ukA5tQTzM/nfP+qbZikOoZZAOY452c1zRz/tkGvPMo0+QDlh94qauqY/72KX
+z/dcrEA5MfFweNNNP/AAAAAAAABAOQAAAAAAAA==
+25|AAAAAAMAAAABAAAAIT/wAAAAAAAAQDkAAAAAAAA/72KXz/dcsEA4zg6Phyy0P+2Qa88yjUhAOJ4I
+dWVFWz/qm2YpDqGmQDhxxiYyjLo/5qCeZn870kA4SvsMzAYiP+HHOzmuaNFAOCskzreK8z/YfeKm
+rql2QDgTfKGGa5Y/yPi4PGmmPEA4BOtBgEUbPN0aYmMxRcBAOAAAAAAAAL/I+Lg8aaXKQDgE60GA
+RRq/2H3ipq6pQEA4E3yhhmuWv+HHOzmuaLhAOCskzreK87/moJ5mfzu+QDhK+wzMBiG/6ptmKQ6h
+lkA4ccYmMoy5v+2Qa88yjT1AOJ4IdWVFWr/vYpfP91yrQDjODo+HLLO/8AAAAAAAAEA4////////
+v+9il8/3XLZAOTHxcHjTS7/tkGvPMo1TQDlh94qauqW/6ptmKQ6ht0A5jjnZzXNFv+agnmZ/O+dA
+ObUE8zP53r/hxzs5rmjqQDnU2zFIdQy/2H3ipq6pqEA57INeeZRqv8j4uDxpppdAOfsUvn+65bzw
+08nKZPRQQDoAAAAAAAA/yPi4PGmljkA5+xS+f7rmP9h94qauqSxAOeyDXnmUaz/hxzs5rmixQDnU
+2zFIdQ4/5qCeZn87ukA5tQTzM/nfP+qbZikOoZZAOY452c1zRz/tkGvPMo0+QDlh94qauqY/72KX
+z/dcrEA5MfFweNNNP/AAAAAAAABAOQAAAAAAAA==
+id
+-9465|AQcAAAABAAAAAQMAAAABAAAAIQAAAAAAAAAAgFfAAAAAAACAQUBHEWDQOoFXwFqWw0cHZ0FA5Zph
+KN+EV8CtorI6BE9BQL3irTPJilfAXUYZE+M4QUCIATPDvpJXwBEDZoZ9JUFALqOMiXGcV8B6xVtn
+khVBQFdRWR2Cp1fAyzXDUL4JQUAty+Gjg7NXwI0iwKB1AkFAAAAAAADAV8AAAAAAAABBQNM0Hlx8
+zFfAjSLAoHUCQUCprqbifdhXwMs1w1C+CUFA0Vxzdo7jV8B5xVtnkhVBQHf+zDxB7VfAEQNmhn0l
+QUBDHVLMNvVXwF1GGRPjOEFAGmWe1yD7V8CtorI6BE9BQLnuny/F/lfAWpbDRwdnQUAAAAAAAABY
+wAAAAAAAgEFAue6fL8X+V8CmaTy4+JhBQBtlntcg+1fAUl1NxfuwQUBDHVLMNvVXwKO55uwcx0FA
+eP7MPEHtV8Dv/Jl5gtpBQNJcc3aO41fAhjqkmG3qQUCqrqbifdhXwDXKPK9B9kFA0zQeXHzMV8Bz
+3T9fiv1BQAAAAAAAwFfAAAAAAAAAQkAty+Gjg7NXwHPdP1+K/UFAV1FZHYKnV8A1yjyvQfZBQC+j
+jIlxnFfAhzqkmG3qQUCJATPDvpJXwO/8mXmC2kFAveKtM8mKV8CjuebsHMdBQOaaYSjfhFfAU11N
+xfuwQUBHEWDQOoFXwKZpPLj4mEFAAAAAAACAV8AAAAAAAIBBQA==|-9465
+-9460|AQcAAAABAAAAAQMAAAABAAAAIQAAAAAAAAAAgFfAAAAAAAAAREBHEWDQOoFXwFqWw0cH50NA5Zph
+KN+EV8CtorI6BM9DQL3irTPJilfAXUYZE+O4Q0CIATPDvpJXwBEDZoZ9pUNALqOMiXGcV8B6xVtn
+kpVDQFdRWR2Cp1fAyzXDUL6JQ0Aty+Gjg7NXwI0iwKB1gkNAAAAAAADAV8AAAAAAAIBDQNM0Hlx8
+zFfAjSLAoHWCQ0CprqbifdhXwMs1w1C+iUNA0Vxzdo7jV8B5xVtnkpVDQHf+zDxB7VfAEQNmhn2l
+Q0BDHVLMNvVXwF1GGRPjuENAGmWe1yD7V8CtorI6BM9DQLnuny/F/lfAWpbDRwfnQ0AAAAAAAABY
+wAAAAAAAAERAue6fL8X+V8CmaTy4+BhEQBtlntcg+1fAUl1NxfswREBDHVLMNvVXwKO55uwcR0RA
+eP7MPEHtV8Dv/Jl5glpEQNJcc3aO41fAhjqkmG1qRECqrqbifdhXwDXKPK9BdkRA0zQeXHzMV8Bz
+3T9fin1EQAAAAAAAwFfAAAAAAACAREAty+Gjg7NXwHPdP1+KfURAV1FZHYKnV8A1yjyvQXZEQC+j
+jIlxnFfAhzqkmG1qRECJATPDvpJXwO/8mXmCWkRAveKtM8mKV8CjuebsHEdEQOaaYSjfhFfAU11N
+xfswREBHEWDQOoFXwKZpPLj4GERAAAAAAACAV8AAAAAAAABEQA==|-9460
+id
+-9465|0107000000010000000103000000010000002100000000000000008057c00000000000804140471160d03a8157c05a96c34707674140e59a6128df8457c0ada2b23a044f4140bde2ad33c98a57c05d461913e3384140880133c3be9257c0110366867d2541402ea38c89719c57c07ac55b67921541405751591d82a757c0cb35c350be0941402dcbe1a383b357c08d22c0a0750241400000000000c057c00000000000004140d3341e5c7ccc57c08d22c0a075024140a9aea6e27dd857c0cb35c350be094140d15c73768ee357c079c55b679215414077fecc3c41ed57c0110366867d254140431d52cc36f557c05d461913e33841401a659ed720fb57c0ada2b23a044f4140b9ee9f2fc5fe57c05a96c3470767414000000000000058c00000000000804140b9ee9f2fc5fe57c0a6693cb8f89841401b659ed720fb57c0525d4dc5fbb04140431d52cc36f557c0a3b9e6ec1cc7414078fecc3c41ed57c0effc997982da4140d25c73768ee357c0863aa4986dea4140aaaea6e27dd857c035ca3caf41f64140d3341e5c7ccc57c073dd3f5f8afd41400000000000c057c000000000000042402dcbe1a383b357c073dd3f5f8afd41405751591d82a757c035ca3caf41f641402fa38c89719c57c0873aa4986dea4140890133c3be9257c0effc997982da4140bde2ad33c98a57c0a3b9e6ec1cc74140e69a6128df8457c0535d4dc5fbb04140471160d03a8157c0a6693cb8f898414000000000008057c00000000000804140|-9465
+-9460|0107000000010000000103000000010000002100000000000000008057c00000000000004440471160d03a8157c05a96c34707e74340e59a6128df8457c0ada2b23a04cf4340bde2ad33c98a57c05d461913e3b84340880133c3be9257c0110366867da543402ea38c89719c57c07ac55b67929543405751591d82a757c0cb35c350be8943402dcbe1a383b357c08d22c0a0758243400000000000c057c00000000000804340d3341e5c7ccc57c08d22c0a075824340a9aea6e27dd857c0cb35c350be894340d15c73768ee357c079c55b679295434077fecc3c41ed57c0110366867da54340431d52cc36f557c05d461913e3b843401a659ed720fb57c0ada2b23a04cf4340b9ee9f2fc5fe57c05a96c34707e7434000000000000058c00000000000004440b9ee9f2fc5fe57c0a6693cb8f81844401b659ed720fb57c0525d4dc5fb304440431d52cc36f557c0a3b9e6ec1c47444078fecc3c41ed57c0effc9979825a4440d25c73768ee357c0863aa4986d6a4440aaaea6e27dd857c035ca3caf41764440d3341e5c7ccc57c073dd3f5f8a7d44400000000000c057c000000000008044402dcbe1a383b357c073dd3f5f8a7d44405751591d82a757c035ca3caf417644402fa38c89719c57c0873aa4986d6a4440890133c3be9257c0effc9979825a4440bde2ad33c98a57c0a3b9e6ec1c474440e69a6128df8457c0535d4dc5fb304440471160d03a8157c0a6693cb8f818444000000000008057c00000000000004440|-9460
+Removing the data table...
+Done.