diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2020-08-10 16:22:14 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2020-08-11 11:01:42 +0300 |
commit | f4bc391b5a05406de3c9bab5093c2a42b0486728 (patch) | |
tree | c6aafe8b6529fd12803d231c93409be712f3813d /test | |
parent | 8e23e22e848a4080b3c11fa5efa4a5a79e5cfb58 (diff) |
Skip test if Qt is build without support for plain ASCII
(if build without icu)
Diffstat (limited to 'test')
-rw-r--r-- | test/testsyncengine.cpp | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/test/testsyncengine.cpp b/test/testsyncengine.cpp index 4213252d5..db3a165fd 100644 --- a/test/testsyncengine.cpp +++ b/test/testsyncengine.cpp @@ -619,9 +619,9 @@ private slots: void testNoLocalEncoding() { - auto utf8Locale = QTextCodec::codecForLocale(); + const auto utf8Locale = QTextCodec::codecForLocale(); if (utf8Locale->mibEnum() != 106) { - QSKIP("Test only works for UTF8 locale"); + QSKIP(qPrintable(QStringLiteral("Test only works for UTF8 locale, but current locale is %1").arg(QString::fromUtf8(utf8Locale->name())))); } FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() }; @@ -637,8 +637,10 @@ private slots: #if !defined(Q_OS_MAC) && !defined(Q_OS_WIN) // Try again with a locale that can represent ö but not 𠜎 (4-byte utf8). - QTextCodec::setCodecForLocale(QTextCodec::codecForName("ISO-8859-15")); - QVERIFY(QTextCodec::codecForLocale()->mibEnum() == 111); + auto codec = QTextCodec::codecForName("ISO-8859-15"); + QVERIFY(codec); + QTextCodec::setCodecForLocale(codec); + QCOMPARE(QTextCodec::codecForLocale()->mibEnum(), 111); fakeFolder.remoteModifier().insert("B/tößt"); fakeFolder.remoteModifier().insert("B/t𠜎t"); @@ -654,16 +656,21 @@ private slots: QVERIFY(fakeFolder.currentRemoteState().find("B/t𠜎t")); // Try again with plain ascii - QTextCodec::setCodecForLocale(QTextCodec::codecForName("ASCII")); - QVERIFY(QTextCodec::codecForLocale()->mibEnum() == 3); - - fakeFolder.remoteModifier().insert("C/tößt"); - QVERIFY(fakeFolder.syncOnce()); - QVERIFY(!fakeFolder.currentLocalState().find("C/tößt")); - QVERIFY(!fakeFolder.currentLocalState().find("C/t??t")); - QVERIFY(!fakeFolder.currentLocalState().find("C/t????t")); - QVERIFY(fakeFolder.syncOnce()); - QVERIFY(fakeFolder.currentRemoteState().find("C/tößt")); + codec = QTextCodec::codecForName("ASCII"); + if (codec) { + QTextCodec::setCodecForLocale(codec); + QCOMPARE(QTextCodec::codecForLocale()->mibEnum(), 3); + + fakeFolder.remoteModifier().insert("C/tößt"); + QVERIFY(fakeFolder.syncOnce()); + QVERIFY(!fakeFolder.currentLocalState().find("C/tößt")); + QVERIFY(!fakeFolder.currentLocalState().find("C/t??t")); + QVERIFY(!fakeFolder.currentLocalState().find("C/t????t")); + QVERIFY(fakeFolder.syncOnce()); + QVERIFY(fakeFolder.currentRemoteState().find("C/tößt")); + } else { + qDebug() << "Skipping test for ASCII, ASCII is not available, available encodings are:" << QTextCodec::availableCodecs(); + } QTextCodec::setCodecForLocale(utf8Locale); #endif |