diff --git a/tests/src/core/testqgsogcutils.cpp b/tests/src/core/testqgsogcutils.cpp index 6237a903b7a4..de873ac9101b 100644 --- a/tests/src/core/testqgsogcutils.cpp +++ b/tests/src/core/testqgsogcutils.cpp @@ -733,26 +733,48 @@ void TestQgsOgcUtils::testExpressionToOgcFilter_data() "" "" ); - QTest::newRow( "intersects_bbox" ) << QStringLiteral( "intersects_bbox($geometry, geomFromWKT('POINT (5 6)'))" ) << QString( "" + QTest::newRow( "intersects_bbox $geometry" ) << QStringLiteral( "intersects_bbox($geometry, geomFromWKT('POINT (5 6)'))" ) << QString( "" "" "geometry" "5,6 5,6" "" "" ); - QTest::newRow( "intersects + wkt" ) << QStringLiteral( "intersects($geometry, geomFromWKT('POINT (5 6)'))" ) << QString( "" + QTest::newRow( "intersects + wkt $geometry" ) << QStringLiteral( "intersects($geometry, geomFromWKT('POINT (5 6)'))" ) << QString( "" "" "geometry" "5,6" "" "" ); - QTest::newRow( "contains + gml" ) << QStringLiteral( "contains($geometry, geomFromGML('5,6'))" ) << QString( "" + QTest::newRow( "contains + gml $geometry" ) << QStringLiteral( "contains($geometry, geomFromGML('5,6'))" ) << QString( "" "" "geometry" "5,6" "" "" ); + + QTest::newRow( "intersects_bbox @geometry" ) << QStringLiteral( "intersects_bbox(@geometry, geomFromWKT('POINT (5 6)'))" ) << QString( "" + "" + "geometry" + "5,6 5,6" + "" + "" ); + + QTest::newRow( "intersects + wkt @geometry" ) << QStringLiteral( "intersects(@geometry, geomFromWKT('POINT (5 6)'))" ) << QString( "" + "" + "geometry" + "5,6" + "" + "" ); + + QTest::newRow( "contains + gml @geometry" ) << QStringLiteral( "contains(@geometry, geomFromGML('5,6'))" ) << QString( "" + "" + "geometry" + "5,6" + "" + "" ); + } void TestQgsOgcUtils::testExpressionToOgcFilterWFS11() @@ -791,7 +813,7 @@ void TestQgsOgcUtils::testExpressionToOgcFilterWFS11_data() QTest::addColumn( "srsName" ); QTest::addColumn( "xmlText" ); - QTest::newRow( "bbox" ) + QTest::newRow( "bbox $geometry" ) << QStringLiteral( "intersects_bbox($geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" ) << QStringLiteral( "urn:ogc:def:crs:EPSG::4326" ) << QString( @@ -805,6 +827,21 @@ void TestQgsOgcUtils::testExpressionToOgcFilterWFS11_data() "" "" ); + + QTest::newRow( "bbox @geometry" ) + << QStringLiteral( "intersects_bbox(@geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" ) + << QStringLiteral( "urn:ogc:def:crs:EPSG::4326" ) + << QString( + "" + "" + "my_geometry_name" + "" + "49 2" + "50 3" + "" + "" + "" + ); } void TestQgsOgcUtils::testExpressionToOgcFilterWFS20() @@ -860,7 +897,7 @@ void TestQgsOgcUtils::testExpressionToOgcFilterWFS20_data() "" ) << QStringLiteral( "myns" ) << QStringLiteral( "http://example.com/myns" ); - QTest::newRow( "bbox" ) + QTest::newRow( "bbox $geometry" ) << QStringLiteral( "intersects_bbox($geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" ) << QStringLiteral( "urn:ogc:def:crs:EPSG::4326" ) << QString( @@ -876,7 +913,7 @@ void TestQgsOgcUtils::testExpressionToOgcFilterWFS20_data() ) << QString() << QString(); - QTest::newRow( "bbox with namespace" ) + QTest::newRow( "bbox with namespace $geometry" ) << QStringLiteral( "intersects_bbox($geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" ) << QStringLiteral( "urn:ogc:def:crs:EPSG::4326" ) << QString( @@ -892,7 +929,7 @@ void TestQgsOgcUtils::testExpressionToOgcFilterWFS20_data() ) << QStringLiteral( "myns" ) << QStringLiteral( "http://example.com/myns" ); - QTest::newRow( "intersects" ) + QTest::newRow( "intersects $geometry" ) << QStringLiteral( "intersects($geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" ) << QStringLiteral( "urn:ogc:def:crs:EPSG::4326" ) << QString( @@ -910,6 +947,57 @@ void TestQgsOgcUtils::testExpressionToOgcFilterWFS20_data() "" ) << QString() << QString(); + + QTest::newRow( "bbox @geometry" ) + << QStringLiteral( "intersects_bbox(@geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" ) + << QStringLiteral( "urn:ogc:def:crs:EPSG::4326" ) + << QString( + "" + "" + "my_geometry_name" + "" + "49 2" + "50 3" + "" + "" + "" + ) + << QString() << QString(); + + QTest::newRow( "bbox with namespace @geometry" ) + << QStringLiteral( "intersects_bbox(@geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" ) + << QStringLiteral( "urn:ogc:def:crs:EPSG::4326" ) + << QString( + "" + "" + "myns:my_geometry_name" + "" + "49 2" + "50 3" + "" + "" + "" + ) + << QStringLiteral( "myns" ) << QStringLiteral( "http://example.com/myns" ); + + QTest::newRow( "intersects @geometry" ) + << QStringLiteral( "intersects(@geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" ) + << QStringLiteral( "urn:ogc:def:crs:EPSG::4326" ) + << QString( + "" + "" + "my_geometry_name" + "" + "" + "" + "49 2 50 2 50 3 49 3 49 2" + "" + "" + "" + "" + "" + ) + << QString() << QString(); } Q_DECLARE_METATYPE( QgsOgcUtils::GMLVersion )