Skip to content

Commit

Permalink
Remove special characters on wms dimension extent
Browse files Browse the repository at this point in the history
  • Loading branch information
Samweli committed May 4, 2020
1 parent 8aa32f7 commit a001adb
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/providers/wms/qgswmscapabilities.cpp
Expand Up @@ -1075,7 +1075,7 @@ void QgsWmsCapabilities::parseDimension( const QDomElement &element, QgsWmsDimen
dimensionProperty.current = ( currentAttribute == QLatin1String( "1" ) || currentAttribute == QLatin1String( "true" ) );
}

dimensionProperty.extent = element.text();
dimensionProperty.extent = element.text().simplified();
}

void QgsWmsCapabilities::parseExtent( const QDomElement &element, QVector<QgsWmsDimensionProperty> &dimensionProperties )
Expand All @@ -1086,7 +1086,7 @@ void QgsWmsCapabilities::parseExtent( const QDomElement &element, QVector<QgsWms
{
if ( it->name == name )
{
it->extent = element.text();
it->extent = element.text().simplified();

it->defaultValue = element.attribute( QStringLiteral( "default" ) );

Expand Down
48 changes: 48 additions & 0 deletions tests/src/providers/testqgswmscapabilities.cpp
Expand Up @@ -184,6 +184,54 @@ class TestQgsWmsCapabilities: public QObject
QCOMPARE( prop.dimensions.at( 0 ).units, QStringLiteral( "ISO8601" ) );
}

void wmsTemporalDimension_data()
{
QTest::addColumn<QString>( "dimension" );
QTest::addColumn<QString>( "extent" );

QTest::newRow( "single instant" ) << R"""(<Dimension name="time" units="ISO8601">
2020-01-01
</Dimension>)"""
<< "2020-01-01";

QTest::newRow( "interval" ) << R"""(<Dimension name="time" units="ISO8601">
2020-01-01/2020-12-31/P1M
</Dimension>)"""
<< "2020-01-01/2020-12-31/P1M";

QTest::newRow( "list" ) << R"""(<Dimension name="time" units="ISO8601">
2020-01-01,2020-06-31,2020-12-31
</Dimension>)"""
<< "2020-01-01,2020-06-31,2020-12-31";

QTest::newRow( "continuous" ) << R"""(<Dimension name="time" units="ISO8601">
2020-01-01/2020-06-31
</Dimension>)"""
<< "2020-01-01/2020-06-31";

QTest::newRow( "interval with internal newline characters" )
<< R"""(<Dimension name="time" units="ISO8601">
2020-01-01/2020-06-31/P1M,
2020-07-01/2020-12-31/P1D
</Dimension>)"""
<< "2020-01-01/2020-06-31/P1M, 2020-07-01/2020-12-31/P1D";
}

void wmsTemporalDimension()
{
QFETCH( QString, dimension );
QFETCH( QString, extent );

QDomDocument doc;
doc.setContent( dimension );
QgsWmsCapabilities cap;
QgsWmsDimensionProperty dimensionProperty;

cap.parseDimension( doc.documentElement(), dimensionProperty );

QCOMPARE( dimensionProperty.extent, extent );
}

};

QGSTEST_MAIN( TestQgsWmsCapabilities )
Expand Down

0 comments on commit a001adb

Please sign in to comment.