@@ -140,25 +140,27 @@ def responseComplete(self):
140
140
self .assertEqual (response , expected )
141
141
142
142
# WMS tests
143
- def wms_request_compare (self , request ):
143
+ def wms_request_compare (self , request , extra = None , reference_file = None ):
144
144
project = self .testdata_path + "test+project.qgs"
145
145
assert os .path .exists (project ), "Project file not found: " + project
146
146
147
147
query_string = 'MAP=%s&SERVICE=WMS&VERSION=1.3&REQUEST=%s' % (urllib .quote (project ), request )
148
+ if extra is not None :
149
+ query_string += extra
148
150
header , body = [str (_v ) for _v in self .server .handleRequest (query_string )]
149
151
response = header + body
150
- f = open (self .testdata_path + request .lower () + '.txt' )
152
+ f = open (self .testdata_path + ( request .lower () if not reference_file else reference_file ) + '.txt' )
151
153
expected = f .read ()
152
154
f .close ()
153
155
# Store the output for debug or to regenerate the reference documents:
154
- """
156
+ # """
155
157
f = open (os .path .dirname (__file__ ) + '/expected.txt' , 'w+' )
156
158
f .write (expected )
157
159
f .close ()
158
160
f = open (os .path .dirname (__file__ ) + '/response.txt' , 'w+' )
159
161
f .write (response )
160
162
f .close ()
161
- """
163
+ # """
162
164
response = re .sub (RE_STRIP_PATH , '' , response )
163
165
expected = re .sub (RE_STRIP_PATH , '' , expected )
164
166
self .assertEqual (response , expected , msg = "request %s failed.\n Query: %s\n Expected:\n %s\n \n Response:\n %s" % (query_string , request , expected , response ))
@@ -168,8 +170,26 @@ def test_project_wms(self):
168
170
for request in ('GetCapabilities' , 'GetProjectSettings' ):
169
171
self .wms_request_compare (request )
170
172
171
- # WMS INSPIRE tests
173
+ # Test getfeatureinfo response
174
+ self .wms_request_compare ('GetFeatureInfo' ,
175
+ '&layers=testlayer%20%C3%A8%C3%A9&styles=&' +
176
+ 'info_format=text%2Fhtml&transparent=true&' +
177
+ 'width=600&height=400&srs=EPSG%3A3857&bbox=913190.6389747962%2C' +
178
+ '5606005.488876367%2C913235.426296057%2C5606035.347090538&' +
179
+ 'query_layers=testlayer%20%C3%A8%C3%A9&X=190&Y=320' ,
180
+ 'wms_getfeatureinfo-text-html' )
181
+
182
+ # Test getfeatureinfo default info_format
183
+ self .wms_request_compare ('GetFeatureInfo' ,
184
+ '&layers=testlayer%20%C3%A8%C3%A9&styles=&' +
185
+ 'transparent=true&' +
186
+ 'width=600&height=400&srs=EPSG%3A3857&bbox=913190.6389747962%2C' +
187
+ '5606005.488876367%2C913235.426296057%2C5606035.347090538&' +
188
+ 'query_layers=testlayer%20%C3%A8%C3%A9&X=190&Y=320' ,
189
+ 'wms_getfeatureinfo-text-plain' )
190
+
172
191
def wms_inspire_request_compare (self , request ):
192
+ """WMS INSPIRE tests"""
173
193
project = self .testdata_path + "test+project_inspire.qgs"
174
194
assert os .path .exists (project ), "Project file not found: " + project
175
195
0 commit comments