@@ -121,6 +121,7 @@ void TestQgisAppClipboard::copyPaste()
121
121
122
122
void TestQgisAppClipboard::copyToText ()
123
123
{
124
+
124
125
// set clipboard to some QgsFeatures
125
126
QgsFields fields;
126
127
fields.append ( QgsField ( QStringLiteral ( " int_field" ), QVariant::Int ) );
@@ -221,13 +222,28 @@ void TestQgisAppClipboard::copyToText()
221
222
settings.setEnumValue ( QStringLiteral ( " /qgis/copyFeatureFormat" ), QgsClipboard::AttributesWithWKT );
222
223
mQgisApp ->clipboard ()->generateClipboardText ( result, resultHtml );
223
224
QCOMPARE ( result, QString ( " wkt_geom\t int_field\t string_field\n Point (5 6)\t 1\t Single line text\n Point (7 8)\t 2\t\" Unix Multiline \n Text\"\n Point (9 10)\t 3\t\" Windows Multiline \r\n Text\" " ) );
225
+
224
226
}
225
227
226
228
void TestQgisAppClipboard::pasteWkt ()
227
229
{
230
+
231
+ // test issue GH #44989
232
+ QgsFeatureList features = mQgisApp ->clipboard ()->stringToFeatureList ( QStringLiteral ( " wkt_geom\t int_field\t string_field\n Point (5 6)\t 1\t Single line text\n Point (7 8)\t 2\t\" Unix Multiline \n Text\"\n Point (9 10)\t 3\t\" Windows Multiline \r\n Text\" " ), QgsFields () );
233
+ QCOMPARE ( features.length (), 3 );
234
+ QVERIFY ( features.at ( 0 ).hasGeometry () && !features.at ( 0 ).geometry ().isNull () );
235
+ QVERIFY ( features.at ( 1 ).hasGeometry () && !features.at ( 1 ).geometry ().isNull () );
236
+ QVERIFY ( features.at ( 2 ).hasGeometry () && !features.at ( 2 ).geometry ().isNull () );
237
+ QCOMPARE ( features.at ( 0 ).fields ().count (), 2 );
238
+ QCOMPARE ( features.at ( 0 ).attributeCount (), 2 );
239
+ QCOMPARE ( features.at ( 1 ).fields ().count (), 2 );
240
+ QCOMPARE ( features.at ( 1 ).attributeCount (), 2 );
241
+ QCOMPARE ( features.at ( 2 ).fields ().count (), 2 );
242
+ QCOMPARE ( features.at ( 2 ).attributeCount (), 2 );
243
+
228
244
mQgisApp ->clipboard ()->setText ( QStringLiteral ( " POINT (125 10)\n POINT (111 30)" ) );
229
245
230
- QgsFeatureList features = mQgisApp ->clipboard ()->copyOf ();
246
+ features = mQgisApp ->clipboard ()->copyOf ();
231
247
QCOMPARE ( features.length (), 2 );
232
248
QVERIFY ( features.at ( 0 ).hasGeometry () && !features.at ( 0 ).geometry ().isNull () );
233
249
QCOMPARE ( features.at ( 0 ).geometry ().constGet ()->wkbType (), QgsWkbTypes::Point );
@@ -248,7 +264,8 @@ void TestQgisAppClipboard::pasteWkt()
248
264
features = mQgisApp ->clipboard ()->copyOf ();
249
265
QCOMPARE ( features.length (), 2 );
250
266
251
- QVERIFY ( features.at ( 0 ).hasGeometry () && !features.at ( 0 ).geometry ().isNull () );
267
+ QVERIFY ( features.at ( 0 ).hasGeometry () );
268
+ QVERIFY ( !features.at ( 0 ).geometry ().isNull () );
252
269
QCOMPARE ( features.at ( 0 ).geometry ().constGet ()->wkbType (), QgsWkbTypes::Point );
253
270
featureGeom = features.at ( 0 ).geometry ();
254
271
point = dynamic_cast < const QgsPoint * >( featureGeom.constGet () );
@@ -262,7 +279,7 @@ void TestQgisAppClipboard::pasteWkt()
262
279
QCOMPARE ( point->y (), 10.0 );
263
280
264
281
// clipboard should support features without geometry
265
- mQgisApp ->clipboard ()->setText ( QStringLiteral ( " \t MNL \ t 11\t 282\t km\t\t\t\n\t MNL \t 11\t 347.80000000000001\t km\t\t\t " ) );
282
+ mQgisApp ->clipboard ()->setText ( QStringLiteral ( " MNL \ t 11\t 282\t km\t\t\t\n MNL \t 11\t 347.80000000000001\t km\t\t\t " ) );
266
283
features = mQgisApp ->clipboard ()->copyOf ();
267
284
QCOMPARE ( features.length (), 2 );
268
285
QVERIFY ( !features.at ( 0 ).hasGeometry () );
@@ -375,6 +392,7 @@ void TestQgisAppClipboard::pasteGeoJson()
375
392
mQgisApp ->clipboard ()->setText ( QStringLiteral ( " {\n\" type\" : \" Feature\" ,\" geometry\" : {\" type\" : \" Point\" ,\" coordinates\" : [125, 10]},\" properties\" : {\" name\" : \" Dinagat Islands\" }}" ) );
376
393
377
394
const QgsFeatureList features = mQgisApp ->clipboard ()->copyOf ( fields );
395
+
378
396
QCOMPARE ( features.length (), 1 );
379
397
QVERIFY ( features.at ( 0 ).hasGeometry () && !features.at ( 0 ).geometry ().isNull () );
380
398
QCOMPARE ( features.at ( 0 ).geometry ().constGet ()->wkbType (), QgsWkbTypes::Point );
0 commit comments