1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
/*
SPDX-FileCopyrightText: 2011 Romain Perier <bambi@kubuntu.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "kcharsetstest.h"
#include "kcharsets_p.h"
#include <QDebug>
#include <QString>
#include <QTest>
#include <kcharsets.h>
using namespace Qt::Literals;
static bool encodingNameHasADescription(const QString &encodingName, const QStringList &descriptions)
{
return std::any_of(descriptions.cbegin(), descriptions.cend(), [&encodingName](const QString &description) {
return description.contains(encodingName);
});
}
void KCharsetsTest::testSingleton()
{
QVERIFY(KCharsets::charsets() != nullptr);
QCOMPARE(KCharsets::charsets(), KCharsets::charsets());
}
void KCharsetsTest::testFromEntity()
{
KCharsets *singleton = KCharsets::charsets();
QCOMPARE(singleton->fromEntity(QString::fromLatin1("Ӓ")), QChar(1234));
QCOMPARE(singleton->fromEntity(QString::fromLatin1("ሴ")), QChar(0x1234));
QCOMPARE(singleton->fromEntity(QString::fromLatin1("lt")), QChar::fromLatin1('<'));
QCOMPARE(singleton->fromEntity(QString::fromLatin1("gt")), QChar::fromLatin1('>'));
QCOMPARE(singleton->fromEntity(QString::fromLatin1("quot")), QChar::fromLatin1('"'));
QCOMPARE(singleton->fromEntity(QString::fromLatin1("amp")), QChar::fromLatin1('&'));
QCOMPARE(singleton->fromEntity(QString::fromLatin1("apos")), QChar::fromLatin1('\''));
QCOMPARE(singleton->fromEntity(u"aposgarbagesuffix"_s), QChar());
QCOMPARE(singleton->fromEntity(u"thetasym"_s), QChar(0x03d1));
QCOMPARE(singleton->fromEntity(u"thetasymgarbagesuffix"_s), QChar());
}
void KCharsetsTest::testToEntity()
{
QSKIP("KCharsets::toEntity test not implemented.");
}
void KCharsetsTest::testResolveEntities()
{
KCharsets *singleton = KCharsets::charsets();
QCOMPARE(singleton->resolveEntities(QString::fromLatin1(""'<Hello &World>'"")),
QString::fromLatin1("\"\'<Hello &World>\'\""));
}
void KCharsetsTest::testEncodingNames()
{
KCharsets *singleton = KCharsets::charsets();
QCOMPARE(singleton->availableEncodingNames().count(), singleton->descriptiveEncodingNames().count());
for (const QString &encodingName : singleton->availableEncodingNames()) {
QVERIFY(encodingNameHasADescription(encodingName, singleton->descriptiveEncodingNames()));
QVERIFY(!singleton->descriptionForEncoding(encodingName).isEmpty());
QCOMPARE(singleton->encodingForName(singleton->descriptionForEncoding(encodingName)), encodingName);
}
}
QTEST_MAIN(KCharsetsTest)
#include "moc_kcharsetstest.cpp"
|