From 1f76ece71b1f753e614b8f8df4bfea7574068ee0 Mon Sep 17 00:00:00 2001 From: Andrea Giudiceandrea Date: Sat, 1 Mar 2025 17:43:19 +0100 Subject: [PATCH] [DXF] Add test for codepage writing --- tests/src/core/testqgsdxfexport.cpp | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/src/core/testqgsdxfexport.cpp b/tests/src/core/testqgsdxfexport.cpp index fe8e80c1a5e7..5ad5031fecad 100644 --- a/tests/src/core/testqgsdxfexport.cpp +++ b/tests/src/core/testqgsdxfexport.cpp @@ -84,6 +84,7 @@ class TestQgsDxfExport : public QObject void testExtentWithSelection(); void testOutputLayerNamePrecedence(); void testMinimumLineWidthExport(); + void testWritingCodepage(); private: QgsVectorLayer *mPointLayer = nullptr; @@ -1958,6 +1959,35 @@ void TestQgsDxfExport::testMinimumLineWidthExport() QVERIFY( !fileContainsText( file, QStringLiteral( " 43\n7.0" ) ) ); } +void TestQgsDxfExport::testWritingCodepage() +{ + QgsDxfExport d; + d.addLayers( QList() << QgsDxfExport::DxfLayer( mPointLayer ) ); + + QgsMapSettings mapSettings; + const QSize size( 640, 480 ); + mapSettings.setOutputSize( size ); + mapSettings.setExtent( mPointLayer->extent() ); + mapSettings.setLayers( QList() << mPointLayer ); + mapSettings.setOutputDpi( 96 ); + mapSettings.setDestinationCrs( mPointLayer->crs() ); + + d.setMapSettings( mapSettings ); + d.setSymbologyScale( 1000 ); + + const QString file1 = getTempFileName( "CP1252UpperCase_dxf" ); + QFile dxfFile1( file1 ); + QCOMPARE( d.writeToFile( &dxfFile1, QStringLiteral( "CP1252" ) ), QgsDxfExport::ExportResult::Success ); + dxfFile1.close(); + QVERIFY( fileContainsText( file1, QStringLiteral( "ANSI_1252" ) ) ); + + const QString file2 = getTempFileName( "cp1252lowercase_dxf" ); + QFile dxfFile2( file2 ); + QCOMPARE( d.writeToFile( &dxfFile2, QStringLiteral( "cp1252" ) ), QgsDxfExport::ExportResult::Success ); + dxfFile2.close(); + QVERIFY( fileContainsText( file2, QStringLiteral( "ANSI_1252" ) ) ); +} + bool TestQgsDxfExport::fileContainsText( const QString &path, const QString &text, QString *debugInfo ) const { QStringList debugLines;