@@ -218,6 +218,31 @@ void TestQgisAppClipboard::pasteWkt()
218
218
point = dynamic_cast < QgsPoint * >( features.at ( 1 ).geometry ().geometry () );
219
219
QCOMPARE ( point->x (), 111.0 );
220
220
QCOMPARE ( point->y (), 30.0 );
221
+
222
+ // be sure parsing does not consider attached parameters that
223
+ // can change geometryType as in https://issues.qgis.org/issues/16870
224
+ mQgisApp ->clipboard ()->setText ( QStringLiteral ( " POINT (111 30)\t GoodFieldValue\n POINT (125 10)\t (WrongFieldValue)" ) );
225
+
226
+ features = mQgisApp ->clipboard ()->copyOf ();
227
+ QCOMPARE ( features.length (), 2 );
228
+
229
+ QVERIFY ( features.at ( 0 ).hasGeometry () && !features.at ( 0 ).geometry ().isNull () );
230
+ QCOMPARE ( features.at ( 0 ).geometry ().geometry ()->wkbType (), QgsWkbTypes::Point );
231
+ featureGeom = features.at ( 0 ).geometry ();
232
+ point = dynamic_cast < QgsPoint * >( featureGeom.geometry () );
233
+ QCOMPARE ( point->x (), 111.0 );
234
+ QCOMPARE ( point->y (), 30.0 );
235
+
236
+ QVERIFY ( features.at ( 1 ).hasGeometry () && !features.at ( 1 ).geometry ().isNull () );
237
+ QCOMPARE ( features.at ( 1 ).geometry ().geometry ()->wkbType (), QgsWkbTypes::Point );
238
+ point = dynamic_cast < QgsPoint * >( features.at ( 1 ).geometry ().geometry () );
239
+ QCOMPARE ( point->x (), 125.0 );
240
+ QCOMPARE ( point->y (), 10.0 );
241
+
242
+ // only fields => no geom so no feature list is returned
243
+ mQgisApp ->clipboard ()->setText ( QStringLiteral ( " MNL 11 282 km \n MNL 11 347.80000000000001 km " ) );
244
+ features = mQgisApp ->clipboard ()->copyOf ();
245
+ QCOMPARE ( features.length (), 0 );
221
246
}
222
247
223
248
void TestQgisAppClipboard::pasteGeoJson ()
0 commit comments