File indexing completed on 2024-03-24 15:32:40
0001 /* 0002 SPDX-FileCopyrightText: 2022 Ahmad Samir <a.samirh78@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <KCountry> 0008 #include <KCountrySubdivision> 0009 0010 #include <QObject> 0011 #include <QStandardPaths> 0012 #include <QTest> 0013 0014 class KCatalogTest : public QObject 0015 { 0016 Q_OBJECT 0017 private Q_SLOTS: 0018 void initTestCase() 0019 { 0020 QStandardPaths::setTestModeEnabled(true); 0021 } 0022 void testLookup() 0023 { 0024 QByteArray language = "fr_CH"; 0025 for (int i = 0; i < 15; ++i) { 0026 language += ":fr_CH"; 0027 } 0028 const int len = language.size(); 0029 QVERIFY(len > 64); 0030 0031 // Set LANGUAGE env var to a very long string 0032 qputenv("LANGUAGE", language); 0033 const QByteArray before = qgetenv("LANGUAGE"); 0034 QCOMPARE(before.size(), len); 0035 0036 // This goes through KCatalog::translate(), which will get the value of the 0037 // LANGUAGE env var and copy it to to a char[64] array 0038 auto c = KCountry::fromAlpha2(u"NZ"); 0039 QVERIFY(c.isValid()); 0040 QCOMPARE(c.name(), QStringLiteral("Nouvelle-ZĂ©lande")); 0041 0042 QByteArray after = qgetenv("LANGUAGE"); 0043 // LANGUAGE env var value was truncated 0044 QCOMPARE(after.size(), 64 - strlen("LANGUAGE=") - 1); 0045 } 0046 }; 0047 0048 QTEST_GUILESS_MAIN(KCatalogTest) 0049 0050 #include "kcatalogtest.moc"