From: Paul Ramsey Date: Mon, 16 Nov 2009 21:13:44 +0000 (+0000) Subject: Add in tests for MapServer/Geoserver-style SQL calls. (#224) X-Git-Tag: 1.5.0b1~223 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7ae605bfc21228c2e590ee9a18612976fb87e1c9;p=postgis Add in tests for MapServer/Geoserver-style SQL calls. (#224) git-svn-id: http://svn.osgeo.org/postgis/trunk@4839 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/regress/Makefile.in b/regress/Makefile.in index de2c466a9..014ea01aa 100644 --- a/regress/Makefile.in +++ b/regress/Makefile.in @@ -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 index 000000000..a095ba552 --- /dev/null +++ b/regress/wmsservers.sql @@ -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 index 000000000..8629dacf2 --- /dev/null +++ b/regress/wmsservers_expected @@ -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.