1
0
mirror of https://git.code.sf.net/p/zint/code synced 2026-01-10 05:26:00 +00:00

CLI: fix bug in "--scalexdimdp" in converting from "in" to "mm"

(was dividing instead of multiplying doh);
  make "--scalexdimdp" units check error messages better;
  add more "--test" tests & have `validate_units()` etc take
  `errbuf` arg to make them more test-friendly
GUI: `copy_to_clipboard()` unshadow `data` -> `fdata`
test suite: make `utf8_to_wide()` same as "backend/output.c" & fix
  return vals;
  add `QZint::save_to_memfile()` test
This commit is contained in:
gitlost
2025-12-31 14:57:13 +00:00
parent b434202817
commit 848b364df0
8 changed files with 687 additions and 144 deletions

View File

@@ -552,7 +552,9 @@ private slots:
QTest::newRow("BARCODE_DATAMATRIX unknown format") << BARCODE_DATAMATRIX << "1234" << "test_save_to_file.ext" << false;
QTest::newRow("BARCODE_DATAMATRIX UTF8 gif") << BARCODE_DATAMATRIX << "1234" << "test_save_to_file_τ.gif" << true;
QTest::newRow("BARCODE_DATAMATRIX too long (unknown format)") << BARCODE_DATAMATRIX << "1234"
<< "test_6789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012.gif" // 256 long so should be truncated to end in ".gi"
<< "test_67890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
"1234567890123456789012345678901234567890123456789012.gif" // 256 long so should be truncated to end in ".gi"
<< false;
}
@@ -579,6 +581,64 @@ private slots:
}
}
void saveToMemfileTest_data()
{
QTest::addColumn<int>("symbology");
QTest::addColumn<QString>("text");
QTest::addColumn<QString>("fileName");
QTest::addColumn<bool>("expected_bRet");
QTest::addColumn<QString>("expected_strData");
QTest::newRow("BARCODE_DATAMATRIX gif") << BARCODE_DATAMATRIX << "1234" << "test_memfile.gif" << true
<< "47494638376114001400f00000ffffff0000002c00000000140014000002"
"3c4c00869ad7eb988c942168b2cef7eecf794e37594f776a285a862b8485"
"ea49caf66a4ef10ca7204e010a69a24f6ff7231a5f351db3580149a7d44c"
"01003b";
QTest::newRow("BARCODE_DATAMATRIX svg") << BARCODE_DATAMATRIX << "1234" << "test_memfile.svg" << true
<< "<?xml version=\"1.0\" standalone=\"no\"?>\n"
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n"
"<svg width=\"20\" height=\"20\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n"
" <desc>Zint Generated Symbol</desc>\n"
" <g id=\"barcode\" fill=\"#000000\">\n"
" <rect x=\"0\" y=\"0\" width=\"20\" height=\"20\" fill=\"#FFFFFF\"/>\n"
" <path d=\"M0 0h2v2h-2ZM4 0h2v2h-2ZM8 0h2v2h-2ZM12 0h2v2h-2ZM16 0h2v2h-2ZM0 2h4v8h-4ZM10"
" 2h10v2h-10ZM8 4h2v2h-2ZM16 4h2v2h-2ZM14 6h2v2h-2ZM18 6h2v2h-2ZM6 8h4v2h-4ZM12 8h2v2h-2ZM0"
" 10h2v4h-2ZM6 10h2v2h-2ZM10 10h2v2h-2ZM14 10h6v2h-6ZM8 12h2v2h-2ZM12 12h2v2h-2ZM0 14h8v2h-8ZM10"
" 14h2v2h-2ZM16 14h4v2h-4ZM0 16h2v2h-2ZM14 16h4v2h-4ZM0 18h20v2h-20Z\"/>\n"
" </g>\n"
"</svg>\n";
}
void saveToMemfileTest()
{
Zint::QZint bc;
bool bRet;
QFETCH(int, symbology);
QFETCH(QString, text);
QFETCH(QString, fileName);
QFETCH(bool, expected_bRet);
QFETCH(QString, expected_strData);
bc.setSymbol(symbology);
bc.setText(text);
QByteArray data;
bRet = bc.save_to_memfile(fileName, data);
QCOMPARE(bRet, expected_bRet);
if (bRet) {
QCOMPARE(bRet, true);
if (fileName.endsWith(".eps") || fileName.endsWith(".svg") || fileName.endsWith(".txt")) {
QCOMPARE(data, expected_strData);
} else {
QByteArray expected_data = QByteArray::fromHex(expected_strData.toUtf8());
QCOMPARE(data, expected_data);
}
}
}
void getAsCLITest_data()
{
QTest::addColumn<bool>("autoHeight");