@@ -36,11 +36,12 @@ class PyQgsServerWMSGetPrintLegend(QgsServerTestBase):
36
36
QGIS server print behaves inconsistently regarding legend content"""
37
37
38
38
def test_wms_getprint_legend (self ):
39
- """Test project has 2 layer: red and green and four templates:
39
+ """Test project has 2 layer: red and green and five templates:
40
40
red: follow map theme red
41
41
green: follow map theme green
42
42
blank: no map theme
43
43
full: follow map theme full with both layer
44
+ falsegreen : follow map theme falsegreen (visible layer : green but with blue style)
44
45
"""
45
46
46
47
tmp_dir = QTemporaryDir ()
@@ -264,6 +265,55 @@ def test_wms_getprint_legend(self):
264
265
self .assertEqual (color .green (), 255 )
265
266
self .assertEqual (color .blue (), 0 )
266
267
268
+ # full template, full theme, specified layer is red
269
+ params ["TEMPLATE" ] = "falsegreen"
270
+ params ["map0:LAYERS" ] = "red"
271
+ response = QgsBufferServerResponse ()
272
+ request = QgsBufferServerRequest ('?' + '&' .join (["%s=%s" % i for i in params .items ()]))
273
+ self .server .handleRequest (request , response , project )
274
+
275
+ image = QImage .fromData (response .body (), "PNG" )
276
+ color = image .pixelColor (600 , 40 )
277
+ self .assertEqual (color .red (), 255 )
278
+ self .assertEqual (color .green (), 0 )
279
+ self .assertEqual (color .blue (), 0 )
280
+ color = image .pixelColor (600 , 60 )
281
+ self .assertEqual (color .red (), 255 )
282
+ self .assertEqual (color .green (), 255 )
283
+ self .assertEqual (color .blue (), 255 )
284
+
285
+ # full template, full theme, specified layer is green
286
+ params ["map0:LAYERS" ] = "green"
287
+ response = QgsBufferServerResponse ()
288
+ request = QgsBufferServerRequest ('?' + '&' .join (["%s=%s" % i for i in params .items ()]))
289
+ self .server .handleRequest (request , response , project )
290
+
291
+ image = QImage .fromData (response .body (), "PNG" )
292
+ color = image .pixelColor (600 , 40 )
293
+ self .assertEqual (color .red (), 0 )
294
+ self .assertEqual (color .green (), 0 )
295
+ self .assertEqual (color .blue (), 255 )
296
+ color = image .pixelColor (600 , 60 )
297
+ self .assertEqual (color .red (), 255 )
298
+ self .assertEqual (color .green (), 255 )
299
+ self .assertEqual (color .blue (), 255 )
300
+
301
+ # full template, full theme
302
+ params ["map0:LAYERS" ] = ""
303
+ response = QgsBufferServerResponse ()
304
+ request = QgsBufferServerRequest ('?' + '&' .join (["%s=%s" % i for i in params .items ()]))
305
+ self .server .handleRequest (request , response , project )
306
+
307
+ image = QImage .fromData (response .body (), "PNG" )
308
+ color = image .pixelColor (600 , 40 )
309
+ self .assertEqual (color .red (), 0 )
310
+ self .assertEqual (color .green (), 0 )
311
+ self .assertEqual (color .blue (), 255 )
312
+ color = image .pixelColor (600 , 60 )
313
+ self .assertEqual (color .red (), 255 )
314
+ self .assertEqual (color .green (), 255 )
315
+ self .assertEqual (color .blue (), 255 )
316
+
267
317
268
318
if __name__ == '__main__' :
269
319
unittest .main ()
0 commit comments