diff --git a/qztest/testjlcompress.cpp b/qztest/testjlcompress.cpp index 35737d9..affad86 100644 --- a/qztest/testjlcompress.cpp +++ b/qztest/testjlcompress.cpp @@ -83,48 +83,70 @@ void TestJlCompress::compressFileOptions_data() QTest::addColumn("fileName"); QTest::addColumn("dateTime"); QTest::addColumn("strategy"); + QTest::addColumn("utf8"); QTest::addColumn("sha256sum_unix"); // Due to extra data archives are not identical QTest::addColumn("sha256sum_win"); QTest::newRow("simple") << "jlsimplefile.zip" << "test0.txt" << QDateTime(QDate(2024, 9, 19), QTime(21, 0, 0), QTimeZone::utc()) << JlCompress::Options::Default + << false << "5eedd83aee92cf3381155d167fee54a4ef6e43b8bc7a979c903611d9aa28610a" << "cb1847dff1a5c33a805efde2558fc74024ad4c64c8607f8b12903e4d92385955"; + QTest::newRow("simple-utf8") << "jlsimplefile-utf8.zip" + << QString::fromUtf8("ありがとう。.txt") + << QDateTime(QDate(2024, 9, 19), QTime(21, 0, 0), QTimeZone::utc()) + << JlCompress::Options::Default + << true + << "" + << ""; + QTest::newRow("simple-utf8-bad") << "jlsimplefile-utf8-bad.zip" + << QString::fromUtf8("ありがとう。.txt") + << QDateTime(QDate(2024, 9, 19), QTime(21, 0, 0), QTimeZone::utc()) + << JlCompress::Options::Default + << false + << "" + << ""; QTest::newRow("simple-storage") << "jlsimplefile-storage.zip" << "test0.txt" << QDateTime(QDate(2024, 9, 19), QTime(21, 0, 0), QTimeZone::utc()) << JlCompress::Options::Storage + << false << "" << ""; QTest::newRow("simple-fastest") << "jlsimplefile-fastest.zip" << "test0.txt" << QDateTime(QDate(2024, 9, 19), QTime(21, 0, 0), QTimeZone::utc()) << JlCompress::Options::Fastest + << false << "" << ""; QTest::newRow("simple-faster") << "jlsimplefile-faster.zip" << "test0.txt" << QDateTime(QDate(2024, 9, 19), QTime(21, 0, 0), QTimeZone::utc()) << JlCompress::Options::Faster + << false << "" << ""; QTest::newRow("simple-standard") << "jlsimplefile-standard.zip" << "test0.txt" << QDateTime(QDate(2024, 9, 19), QTime(21, 0, 0), QTimeZone::utc()) << JlCompress::Options::Standard + << false << "5eedd83aee92cf3381155d167fee54a4ef6e43b8bc7a979c903611d9aa28610a" << "cb1847dff1a5c33a805efde2558fc74024ad4c64c8607f8b12903e4d92385955"; QTest::newRow("simple-better") << "jlsimplefile-better.zip" << "test0.txt" << QDateTime(QDate(2024, 9, 19), QTime(21, 0, 0), QTimeZone::utc()) << JlCompress::Options::Better + << false << "" << ""; QTest::newRow("simple-best") << "jlsimplefile-best.zip" << "test0.txt" << QDateTime(QDate(2024, 9, 19), QTime(21, 0, 0), QTimeZone::utc()) << JlCompress::Options::Best + << false << "" << ""; } @@ -135,6 +157,7 @@ void TestJlCompress::compressFileOptions() QFETCH(QString, fileName); QFETCH(QDateTime, dateTime); QFETCH(JlCompress::Options::CompressionStrategy, strategy); + QFETCH(bool, utf8); QFETCH(QString, sha256sum_unix); QFETCH(QString, sha256sum_win); QDir curDir; @@ -146,7 +169,7 @@ void TestJlCompress::compressFileOptions() QFAIL("Can't create test file"); } - const JlCompress::Options options(dateTime, strategy); + const JlCompress::Options options(dateTime, strategy, utf8); QVERIFY(JlCompress::compressFile(zipName, "tmp/" + fileName, options)); // get the file list and check it QStringList fileList = JlCompress::getFileList(zipName); @@ -167,7 +190,13 @@ void TestJlCompress::compressFileOptions() if (!sha256sum_unix.isEmpty()) QCOMPARE(hash, sha256sum_unix); #endif zipFile.close(); - removeTestFiles(QStringList() << fileName); + + // Extract + QString flist = JlCompress::extractFile(zipName, fileName); + QFileInfo fileInfo(flist); + QVERIFY(fileInfo.fileName() == fileName); + + removeTestFiles(QStringList() << fileName << flist); curDir.remove(zipName); }