Skip to content

Commit

Permalink
[Tests] Update QgsVectorLayer readSld to test read label
Browse files Browse the repository at this point in the history
  • Loading branch information
rldhont authored and nyalldawson committed Dec 4, 2019
1 parent ad6634c commit 0223fd8
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 0 deletions.
46 changes: 46 additions & 0 deletions tests/src/python/test_qgssymbollayer_readsld.py
Expand Up @@ -401,6 +401,52 @@ def testSymbolSizeAfterReload(self):
self.assertEqual(first_size, second_size)
self.assertEqual(first_unit, second_unit)

def test_Literal_within_CSSParameter_and_Text(self):
layer = createLayerWithOneLine()
mFilePath = os.path.join(TEST_DATA_DIR, 'symbol_layer/external_sld/simple_line_with_text.sld')
layer.loadSldStyle(mFilePath)
props = layer.renderer().symbol().symbolLayers()[0].properties()

def testLineColor():
# stroke SvgParameter within ogc:Literal
# expected color is #003EBA, RGB 0,62,186
self.assertEqual(layer.renderer().symbol().symbolLayers()[0].color().name(), '#003eba')

def testLineWidth():
# stroke-width SvgParameter within ogc:Literal
self.assertEqual(props['line_width'], '2')

def testLineOpacity():
# stroke-opacity SvgParameter NOT within ogc:Literal
# stroke-opacity=0.1
self.assertEqual(props['line_color'], '0,62,186,24')

testLineColor()
testLineWidth()
testLineOpacity()

from qgis.core import QgsPalLayerSettings

self.assertTrue(layer.labelsEnabled())
self.assertEqual(layer.labeling().type(), 'simple')

settings = layer.labeling().settings()
self.assertEqual(settings.fieldName, 'name')

format = settings.format()
self.assertEqual(format.color().name(), '#ff0000')

font = format.font()
self.assertEqual(font.family(), 'QGIS Vera Sans')
self.assertTrue(font.bold())
self.assertFalse(font.italic())

self.assertEqual(format.size(), 18)

self.assertEqual(settings.placement, QgsPalLayerSettings.OverPoint)
self.assertEqual(settings.xOffset, 1)
self.assertEqual(settings.yOffset, 0)


if __name__ == '__main__':
unittest.main()
47 changes: 47 additions & 0 deletions tests/testdata/symbol_layer/external_sld/simple_line_with_text.sld
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" version="1.1.0" xmlns:se="http://www.opengis.net/se">
<NamedLayer>
<se:Name>simple_line</se:Name>
<UserStyle>
<se:Name>simple_line</se:Name>
<se:FeatureTypeStyle>
<se:Rule>
<se:Name>Single symbol</se:Name>
<se:LineSymbolizer>
<se:Stroke>
<se:SvgParameter name="stroke">#003eba</se:SvgParameter>
<se:SvgParameter name="stroke-opacity">0.098</se:SvgParameter>
<se:SvgParameter name="stroke-width">2</se:SvgParameter>
<se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
<se:SvgParameter name="stroke-linecap">square</se:SvgParameter>
</se:Stroke>
</se:LineSymbolizer>
</se:Rule>
<se:Rule>
<se:TextSymbolizer>
<se:Label>
<ogc:PropertyName>name</ogc:PropertyName>
</se:Label>
<se:Font>
<se:SvgParameter name="font-family">QGIS Vera Sans</se:SvgParameter>
<se:SvgParameter name="font-size">18</se:SvgParameter>
<se:SvgParameter name="font-weight">bold</se:SvgParameter>
</se:Font>
<se:LabelPlacement>
<se:PointPlacement>
<se:AnchorPoint>
<se:AnchorPointX>1</se:AnchorPointX>
<se:AnchorPointY>0</se:AnchorPointY>
</se:AnchorPoint>
</se:PointPlacement>
</se:LabelPlacement>
<se:Fill>
<se:SvgParameter name="fill">#FF0000</se:SvgParameter>
</se:Fill>
<se:VendorOption name="maxDisplacement">1</se:VendorOption>
</se:TextSymbolizer>
</se:Rule>
</se:FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>

0 comments on commit 0223fd8

Please sign in to comment.