File indexing completed on 2024-03-24 03:55:45
0001 /* 0002 SPDX-FileCopyrightText: 2011 Romain Perier <bambi@kubuntu.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "kcharsetstest.h" 0008 0009 #include "kcharsets_p.h" 0010 #include <QDebug> 0011 #include <QString> 0012 #include <QTest> 0013 #include <kcharsets.h> 0014 0015 static bool encodingNameHasADescription(const QString &encodingName, const QStringList &descriptions) 0016 { 0017 return std::any_of(descriptions.cbegin(), descriptions.cend(), [&encodingName](const QString &description) { 0018 return description.contains(encodingName); 0019 }); 0020 } 0021 0022 void KCharsetsTest::testSingleton() 0023 { 0024 QVERIFY(KCharsets::charsets() != nullptr); 0025 QCOMPARE(KCharsets::charsets(), KCharsets::charsets()); 0026 } 0027 0028 void KCharsetsTest::testFromEntity() 0029 { 0030 KCharsets *singleton = KCharsets::charsets(); 0031 0032 QCOMPARE(singleton->fromEntity(QString::fromLatin1("Ӓ")), QChar(1234)); 0033 QCOMPARE(singleton->fromEntity(QString::fromLatin1("ሴ")), QChar(0x1234)); 0034 QCOMPARE(singleton->fromEntity(QString::fromLatin1("lt")), QChar::fromLatin1('<')); 0035 QCOMPARE(singleton->fromEntity(QString::fromLatin1("gt")), QChar::fromLatin1('>')); 0036 QCOMPARE(singleton->fromEntity(QString::fromLatin1("quot")), QChar::fromLatin1('"')); 0037 QCOMPARE(singleton->fromEntity(QString::fromLatin1("amp")), QChar::fromLatin1('&')); 0038 QCOMPARE(singleton->fromEntity(QString::fromLatin1("apos")), QChar::fromLatin1('\'')); 0039 } 0040 0041 void KCharsetsTest::testToEntity() 0042 { 0043 QSKIP("KCharsets::toEntity test not implemented."); 0044 } 0045 0046 void KCharsetsTest::testResolveEntities() 0047 { 0048 KCharsets *singleton = KCharsets::charsets(); 0049 0050 QCOMPARE(singleton->resolveEntities(QString::fromLatin1(""'<Hello &World>'"")), 0051 QString::fromLatin1("\"\'<Hello &World>\'\"")); 0052 } 0053 0054 void KCharsetsTest::testEncodingNames() 0055 { 0056 KCharsets *singleton = KCharsets::charsets(); 0057 0058 QCOMPARE(singleton->availableEncodingNames().count(), singleton->descriptiveEncodingNames().count()); 0059 0060 for (const QString &encodingName : singleton->availableEncodingNames()) { 0061 QVERIFY(encodingNameHasADescription(encodingName, singleton->descriptiveEncodingNames())); 0062 QVERIFY(!singleton->descriptionForEncoding(encodingName).isEmpty()); 0063 QCOMPARE(singleton->encodingForName(singleton->descriptionForEncoding(encodingName)), encodingName); 0064 } 0065 } 0066 0067 QTEST_MAIN(KCharsetsTest) 0068 0069 #include "moc_kcharsetstest.cpp"