From 1681ba3f1ef5dc112f32a3c9d5ad41af5556830a Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Wed, 23 Nov 2022 19:08:52 +0200 Subject: [PATCH] test QTextConverter::hasFailure() in QTextCodec test Signed-off-by: Ivailo Monev --- tests/auto/qtextcodec/tst_qtextcodec.cpp | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/auto/qtextcodec/tst_qtextcodec.cpp b/tests/auto/qtextcodec/tst_qtextcodec.cpp index d0603d650..6c3426763 100644 --- a/tests/auto/qtextcodec/tst_qtextcodec.cpp +++ b/tests/auto/qtextcodec/tst_qtextcodec.cpp @@ -36,6 +36,9 @@ public slots: private slots: void mibEnum_data(); void mibEnum(); + + void hasFailure_data(); + void hasFailure(); }; void tst_QTextCodec::init() @@ -65,6 +68,31 @@ void tst_QTextCodec::mibEnum() QVERIFY(codec->mibEnum() != 2); } +void tst_QTextCodec::hasFailure_data() +{ + QTest::addColumn("mib"); + QTest::addColumn("hasfailure"); + QTest::addColumn("data"); + + QTest::newRow("latin1-from-latin1") << int(4) << false << QString("foo"); + QTest::newRow("latin1-from-utf8") << int(4) << true << QString::fromUtf8("бар"); +} + +void tst_QTextCodec::hasFailure() +{ + QFETCH(int, mib); + QFETCH(bool, hasfailure); + QFETCH(QString, data); + + QTextConverter converter(mib); + const QByteArray result = converter.fromUnicode(data); + QCOMPARE(converter.hasFailure(), hasfailure); + if (hasfailure) { + const QByteArray expected(data.size(), '?'); + QCOMPARE(result, expected); + } +} + QTEST_MAIN(tst_QTextCodec) #include "moc_tst_qtextcodec.cpp"