Navigation Menu

Skip to content

Commit

Permalink
fix percent encoding in wms server parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
benoitdm-oslandia authored and github-actions[bot] committed Dec 7, 2021
1 parent fc74cd3 commit 576f904
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/server/qgsserverparameters.cpp
Expand Up @@ -454,7 +454,7 @@ QUrlQuery QgsServerParameters::urlQuery() const
const auto constMap( toMap().toStdMap() );
for ( const auto &param : constMap )
{
const QString value = QString( param.second ).replace( '+', QLatin1String( "%2B" ) );
const QString value = QUrl::toPercentEncoding( QString( param.second ) );
query.addQueryItem( param.first, value );
}
}
Expand Down
11 changes: 8 additions & 3 deletions tests/src/server/wms/test_qgsserver_wms_parameters.cpp
Expand Up @@ -83,14 +83,19 @@ void TestQgsServerWmsParameters::percent_encoding()
// '+' in its encoded ('%2B') form is transformed in '+' sign and
// forwarded to parameters subclasses
QUrlQuery query;
query.addQueryItem( "MYPARAM", QString( "my%1value" ).arg( QLatin1String( "%2B" ) ) );
query.addQueryItem( "MYPARAM", QString( "a%2Cb%2Cc%2C%C3%A4%C3%B6s+%2B+%25%26%23" ) );

QgsServerParameters params;
params.load( query );
QCOMPARE( params.value( "MYPARAM" ), QString( "my+value" ) );
QCOMPARE( params.value( "MYPARAM" ), QString( "a,b,c,äös + %&#" ) );

const QgsWms::QgsWmsParameters wmsParams( params );
QCOMPARE( wmsParams.value( "MYPARAM" ), QString( "my+value" ) );
QCOMPARE( wmsParams.value( "MYPARAM" ), QString( "a,b,c,äös + %&#" ) );

// back to urlQuery
QgsServerParameters params2;
params2.load( params.urlQuery() );
QCOMPARE( params2.value( "MYPARAM" ), QString( "a,b,c,äös + %&#" ) );
}

void TestQgsServerWmsParameters::version_negotiation()
Expand Down

0 comments on commit 576f904

Please sign in to comment.