Skip to content

Commit

Permalink
Unit tests for encodeUri/decodeUri for GPX
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Jul 31, 2021
1 parent 99c7fdf commit 7e66281
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/providers/gpx/qgsgpxprovider.cpp
Expand Up @@ -548,7 +548,7 @@ QVariantMap QgsGPXProvider::decodeUri( const QString &uri )
res.insert( QStringLiteral( "layerName" ), uri.mid( fileNameEnd + 6 ) );
res.insert( QStringLiteral( "path" ), uri.left( fileNameEnd ) );
}
else
else if ( !uri.isEmpty() )
{
res.insert( QStringLiteral( "path" ), uri );
}
Expand Down
24 changes: 23 additions & 1 deletion tests/src/python/test_provider_gpx.py
Expand Up @@ -13,7 +13,8 @@
from qgis.core import (
QgsVectorLayer,
QgsFeature,
QgsPoint
QgsPoint,
QgsProviderRegistry
)
from qgis.testing import (
start_app,
Expand Down Expand Up @@ -177,6 +178,27 @@ def test_invalid_source(self):

self.assertFalse(vl.dataProvider().changeAttributeValues({1: {1: 'a'}}))

def test_encode_decode_uri(self):
metadata = QgsProviderRegistry.instance().providerMetadata('gpx')
self.assertIsNotNone(metadata)

self.assertEqual(metadata.encodeUri({}), '')
self.assertEqual(metadata.decodeUri(''), {})
self.assertEqual(metadata.encodeUri({'path': '/home/me/test.gpx'}), '/home/me/test.gpx')
self.assertEqual(metadata.decodeUri('/home/me/test.gpx'), {'path': '/home/me/test.gpx'})
self.assertEqual(metadata.encodeUri({'path': '/home/me/test.gpx',
'layerName': 'waypoints'}), '/home/me/test.gpx?type=waypoints')
self.assertEqual(metadata.decodeUri('/home/me/test.gpx?type=waypoints'), {'path': '/home/me/test.gpx',
'layerName': 'waypoints'})
self.assertEqual(metadata.encodeUri({'path': '/home/me/test.gpx',
'layerName': 'tracks'}), '/home/me/test.gpx?type=tracks')
self.assertEqual(metadata.decodeUri('/home/me/test.gpx?type=tracks'), {'path': '/home/me/test.gpx',
'layerName': 'tracks'})
self.assertEqual(metadata.encodeUri({'path': '/home/me/test.gpx',
'layerName': 'routes'}), '/home/me/test.gpx?type=routes')
self.assertEqual(metadata.decodeUri('/home/me/test.gpx?type=routes'), {'path': '/home/me/test.gpx',
'layerName': 'routes'})


if __name__ == '__main__':
unittest.main()

0 comments on commit 7e66281

Please sign in to comment.