Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Close stale issues and PRs / stale (push) Successful in 13s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
446 lines
21 KiB
C++
446 lines
21 KiB
C++
/*
|
|
SPDX-FileCopyrightText: 2008 Friedrich W. H. Kossebau <kossebau@kde.org>
|
|
SPDX-FileCopyrightText: 2017 Harald Sitter <sitter@kde.org>
|
|
|
|
SPDX-License-Identifier: LGPL-2.0-only
|
|
*/
|
|
|
|
// test object
|
|
#include <kaboutdata.h>
|
|
// Qt
|
|
#include <QFile>
|
|
#include <QLatin1String>
|
|
#include <QObject>
|
|
#include <QTest>
|
|
#include <QTextStream>
|
|
#ifndef Q_OS_WIN
|
|
void initLocale()
|
|
{
|
|
qputenv("LC_ALL", "en_US.utf-8");
|
|
}
|
|
|
|
Q_CONSTRUCTOR_FUNCTION(initLocale)
|
|
#endif
|
|
|
|
class KAboutDataTest : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
private Q_SLOTS:
|
|
void testLongFormConstructorWithDefaults();
|
|
void testLongFormConstructor();
|
|
void testShortFormConstructor();
|
|
void testSetAddLicense();
|
|
#if KCOREADDONS_ENABLE_DEPRECATED_SINCE(5, 2)
|
|
void testSetProgramIconName();
|
|
#endif
|
|
void testSetDesktopFileName();
|
|
void testCopying();
|
|
|
|
void testKAboutDataOrganizationDomain();
|
|
|
|
void testLicenseSPDXID();
|
|
void testLicenseOrLater();
|
|
|
|
void testProductName();
|
|
};
|
|
|
|
static const char AppName[] = "app";
|
|
static const char ProgramName[] = "ProgramName";
|
|
#if KCOREADDONS_ENABLE_DEPRECATED_SINCE(5, 2)
|
|
static const char ProgramIconName[] = "program-icon";
|
|
#endif
|
|
static const char Version[] = "Version";
|
|
static const char ShortDescription[] = "ShortDescription";
|
|
static const char CopyrightStatement[] = "CopyrightStatement";
|
|
static const char Text[] = "Text";
|
|
static const char HomePageAddress[] = "http://test.no.where/";
|
|
static const char HomePageSecure[] = "https://test.no.where/";
|
|
static const char OrganizationDomain[] = "no.where";
|
|
static const char BugsEmailAddress[] = "bugs@no.else";
|
|
static const char LicenseText[] = "free to write, reading forbidden";
|
|
static const char LicenseFileName[] = "testlicensefile";
|
|
static const char LicenseFileText[] = "free to write, reading forbidden, in the file";
|
|
|
|
void KAboutDataTest::testLongFormConstructorWithDefaults()
|
|
{
|
|
KAboutData aboutData(QString::fromLatin1(AppName),
|
|
QLatin1String(ProgramName),
|
|
QString::fromLatin1(Version),
|
|
QLatin1String(ShortDescription),
|
|
KAboutLicense::Unknown);
|
|
|
|
QCOMPARE(aboutData.componentName(), QString::fromLatin1(AppName));
|
|
QCOMPARE(aboutData.productName(), QString::fromLatin1(AppName));
|
|
QCOMPARE(aboutData.displayName(), QLatin1String(ProgramName));
|
|
#if KCOREADDONS_ENABLE_DEPRECATED_SINCE(5, 2)
|
|
QCOMPARE(aboutData.programIconName(), QString::fromLatin1(AppName));
|
|
#endif
|
|
QCOMPARE(aboutData.programLogo(), QVariant());
|
|
QCOMPARE(aboutData.organizationDomain(), QString::fromLatin1("kde.org"));
|
|
QCOMPARE(aboutData.version(), QString::fromLatin1(Version));
|
|
QCOMPARE(aboutData.homepage(), QString());
|
|
QCOMPARE(aboutData.bugAddress(), QString::fromLatin1("submit@bugs.kde.org"));
|
|
QVERIFY(aboutData.authors().isEmpty());
|
|
QVERIFY(aboutData.credits().isEmpty());
|
|
QVERIFY(aboutData.translators().isEmpty());
|
|
QCOMPARE(aboutData.otherText(), QString());
|
|
QCOMPARE(aboutData.licenses().count(), 1);
|
|
// We don't know the default text, do we?
|
|
// QCOMPARE( aboutData.licenses().at(0).name(KAboutLicense::ShortName), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).name(KAboutLicense::ShortName).isEmpty());
|
|
// QCOMPARE( aboutData.licenses().at(0).name(KAboutLicense::FullName), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).name(KAboutLicense::FullName).isEmpty());
|
|
// QCOMPARE( aboutData.licenses().at(0).text(), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).text().isEmpty());
|
|
QCOMPARE(aboutData.copyrightStatement(), QString());
|
|
QCOMPARE(aboutData.shortDescription(), (QLatin1String(ShortDescription)));
|
|
QCOMPARE(aboutData.customAuthorPlainText(), QString());
|
|
QCOMPARE(aboutData.customAuthorRichText(), QString());
|
|
QVERIFY(!aboutData.customAuthorTextEnabled());
|
|
QCOMPARE(aboutData.desktopFileName(), QStringLiteral("org.kde.app"));
|
|
|
|
QCOMPARE(aboutData.internalVersion(), Version);
|
|
QCOMPARE(aboutData.internalProgramName(), ProgramName);
|
|
QCOMPARE(aboutData.internalBugAddress(), "submit@bugs.kde.org");
|
|
QCOMPARE(aboutData.internalProductName(), nullptr);
|
|
}
|
|
|
|
void KAboutDataTest::testLongFormConstructor()
|
|
{
|
|
KAboutData aboutData(QString::fromLatin1(AppName),
|
|
QLatin1String(ProgramName),
|
|
QString::fromLatin1(Version),
|
|
QLatin1String(ShortDescription),
|
|
KAboutLicense::Unknown,
|
|
QLatin1String(CopyrightStatement),
|
|
QLatin1String(Text),
|
|
QString::fromLatin1(HomePageAddress),
|
|
QString::fromLatin1(BugsEmailAddress));
|
|
|
|
QCOMPARE(aboutData.componentName(), QLatin1String(AppName));
|
|
QCOMPARE(aboutData.productName(), QLatin1String(AppName));
|
|
QCOMPARE(aboutData.displayName(), QLatin1String(ProgramName));
|
|
#if KCOREADDONS_ENABLE_DEPRECATED_SINCE(5, 2)
|
|
QCOMPARE(aboutData.programIconName(), QLatin1String(AppName));
|
|
#endif
|
|
QCOMPARE(aboutData.programLogo(), QVariant());
|
|
QCOMPARE(aboutData.organizationDomain(), QString::fromLatin1(OrganizationDomain));
|
|
QCOMPARE(aboutData.version(), QString::fromLatin1(Version));
|
|
QCOMPARE(aboutData.homepage(), QString::fromLatin1(HomePageAddress));
|
|
QCOMPARE(aboutData.bugAddress(), QString::fromLatin1(BugsEmailAddress));
|
|
QVERIFY(aboutData.authors().isEmpty());
|
|
QVERIFY(aboutData.credits().isEmpty());
|
|
QVERIFY(aboutData.translators().isEmpty());
|
|
QCOMPARE(aboutData.otherText(), QLatin1String(Text));
|
|
QCOMPARE(aboutData.licenses().count(), 1);
|
|
// We don't know the default text, do we?
|
|
// QCOMPARE( aboutData.licenses().at(0).name(KAboutLicense::ShortName), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).name(KAboutLicense::ShortName).isEmpty());
|
|
// QCOMPARE( aboutData.licenses().at(0).name(KAboutLicense::FullName), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).name(KAboutLicense::FullName).isEmpty());
|
|
// QCOMPARE( aboutData.licenses().at(0).text(), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).text().isEmpty());
|
|
QCOMPARE(aboutData.copyrightStatement(), QLatin1String(CopyrightStatement));
|
|
QCOMPARE(aboutData.shortDescription(), QLatin1String(ShortDescription));
|
|
QCOMPARE(aboutData.customAuthorPlainText(), QString());
|
|
QCOMPARE(aboutData.customAuthorRichText(), QString());
|
|
QVERIFY(!aboutData.customAuthorTextEnabled());
|
|
QCOMPARE(aboutData.desktopFileName(), QStringLiteral("where.no.app"));
|
|
|
|
QCOMPARE(aboutData.internalVersion(), Version);
|
|
QCOMPARE(aboutData.internalProgramName(), ProgramName);
|
|
QCOMPARE(aboutData.internalBugAddress(), BugsEmailAddress);
|
|
QCOMPARE(aboutData.internalProductName(), nullptr);
|
|
|
|
// We support http and https protocols on the homepage address, ensure they
|
|
// give the same org. domain and desktop file name.
|
|
KAboutData aboutDataSecure(QString::fromLatin1(AppName),
|
|
QLatin1String(ProgramName),
|
|
QString::fromLatin1(Version),
|
|
QLatin1String(ShortDescription),
|
|
KAboutLicense::Unknown,
|
|
QLatin1String(CopyrightStatement),
|
|
QLatin1String(Text),
|
|
QString::fromLatin1(HomePageSecure),
|
|
QString::fromLatin1(BugsEmailAddress));
|
|
QCOMPARE(aboutDataSecure.componentName(), QLatin1String(AppName));
|
|
QCOMPARE(aboutDataSecure.productName(), QLatin1String(AppName));
|
|
QCOMPARE(aboutDataSecure.organizationDomain(), QString::fromLatin1(OrganizationDomain));
|
|
QCOMPARE(aboutDataSecure.desktopFileName(), QStringLiteral("where.no.app"));
|
|
}
|
|
|
|
void KAboutDataTest::testShortFormConstructor()
|
|
{
|
|
KAboutData aboutData(QString::fromLatin1(AppName), QLatin1String(ProgramName), QString::fromLatin1(Version));
|
|
|
|
QCOMPARE(aboutData.componentName(), QString::fromLatin1(AppName));
|
|
QCOMPARE(aboutData.productName(), QString::fromLatin1(AppName));
|
|
QCOMPARE(aboutData.displayName(), QLatin1String(ProgramName));
|
|
#if KCOREADDONS_ENABLE_DEPRECATED_SINCE(5, 2)
|
|
QCOMPARE(aboutData.programIconName(), QString::fromLatin1(AppName));
|
|
#endif
|
|
QCOMPARE(aboutData.programLogo(), QVariant());
|
|
QCOMPARE(aboutData.organizationDomain(), QString::fromLatin1("kde.org"));
|
|
QCOMPARE(aboutData.version(), QString::fromLatin1(Version));
|
|
QCOMPARE(aboutData.homepage(), QString());
|
|
QCOMPARE(aboutData.bugAddress(), QString::fromLatin1("submit@bugs.kde.org"));
|
|
QVERIFY(aboutData.authors().isEmpty());
|
|
QVERIFY(aboutData.credits().isEmpty());
|
|
QVERIFY(aboutData.translators().isEmpty());
|
|
QCOMPARE(aboutData.otherText(), QString());
|
|
QCOMPARE(aboutData.licenses().count(), 1);
|
|
// We don't know the default text, do we?
|
|
// QCOMPARE( aboutData.licenses().at(0).name(KAboutLicense::ShortName), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).name(KAboutLicense::ShortName).isEmpty());
|
|
// QCOMPARE( aboutData.licenses().at(0).name(KAboutLicense::FullName), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).name(KAboutLicense::FullName).isEmpty());
|
|
// QCOMPARE( aboutData.licenses().at(0).text(), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).text().isEmpty());
|
|
QCOMPARE(aboutData.copyrightStatement(), QString());
|
|
QCOMPARE(aboutData.shortDescription(), QString());
|
|
QCOMPARE(aboutData.customAuthorPlainText(), QString());
|
|
QCOMPARE(aboutData.customAuthorRichText(), QString());
|
|
QVERIFY(!aboutData.customAuthorTextEnabled());
|
|
QCOMPARE(aboutData.desktopFileName(), QStringLiteral("org.kde.app"));
|
|
|
|
QCOMPARE(aboutData.internalVersion(), Version);
|
|
QCOMPARE(aboutData.internalProgramName(), ProgramName);
|
|
QCOMPARE(aboutData.internalBugAddress(), "submit@bugs.kde.org");
|
|
QCOMPARE(aboutData.internalProductName(), nullptr);
|
|
}
|
|
|
|
void KAboutDataTest::testKAboutDataOrganizationDomain()
|
|
{
|
|
KAboutData data(QString::fromLatin1("app"),
|
|
QLatin1String("program"),
|
|
QString::fromLatin1("version"),
|
|
QLatin1String("description"),
|
|
KAboutLicense::LGPL,
|
|
QLatin1String("copyright"),
|
|
QLatin1String("hello world"),
|
|
QStringLiteral("http://www.koffice.org"));
|
|
QCOMPARE(data.organizationDomain(), QString::fromLatin1("koffice.org"));
|
|
QCOMPARE(data.desktopFileName(), QStringLiteral("org.koffice.app"));
|
|
|
|
KAboutData data2(QString::fromLatin1("app"),
|
|
QLatin1String("program"),
|
|
QString::fromLatin1("version"),
|
|
QLatin1String("description"),
|
|
KAboutLicense::LGPL,
|
|
QString::fromLatin1("copyright"),
|
|
QLatin1String("hello world"),
|
|
QStringLiteral("app"));
|
|
QCOMPARE(data2.organizationDomain(), QString::fromLatin1("kde.org"));
|
|
QCOMPARE(data2.desktopFileName(), QStringLiteral("org.kde.app"));
|
|
}
|
|
|
|
void KAboutDataTest::testSetAddLicense()
|
|
{
|
|
// prepare a file with a license text
|
|
QFile licenseFile(QString::fromLatin1(LicenseFileName));
|
|
licenseFile.open(QIODevice::WriteOnly);
|
|
QTextStream licenseFileStream(&licenseFile);
|
|
licenseFileStream << LicenseFileText;
|
|
licenseFile.close();
|
|
|
|
const QString copyrightStatement = QLatin1String(CopyrightStatement);
|
|
const QString lineFeed = QString::fromLatin1("\n\n");
|
|
|
|
KAboutData aboutData(QString::fromLatin1(AppName),
|
|
QLatin1String(ProgramName),
|
|
QString::fromLatin1(Version),
|
|
QLatin1String(ShortDescription),
|
|
KAboutLicense::Unknown,
|
|
QLatin1String(CopyrightStatement),
|
|
QLatin1String(Text),
|
|
QString::fromLatin1(HomePageAddress),
|
|
QString::fromLatin1(BugsEmailAddress));
|
|
|
|
// set to GPL2
|
|
aboutData.setLicense(KAboutLicense::GPL_V2);
|
|
|
|
QCOMPARE(aboutData.licenses().count(), 1);
|
|
QCOMPARE(aboutData.licenses().at(0).name(KAboutLicense::ShortName), QString::fromLatin1("GPL v2"));
|
|
QCOMPARE(aboutData.licenses().at(0).name(KAboutLicense::FullName), QString::fromLatin1("GNU General Public License Version 2"));
|
|
// QCOMPARE( aboutData.licenses().at(0).text(), QString(GPL2Text) );
|
|
QVERIFY(!aboutData.licenses().at(0).text().isEmpty());
|
|
|
|
// set to Unknown again
|
|
aboutData.setLicense(KAboutLicense::Unknown);
|
|
|
|
QCOMPARE(aboutData.licenses().count(), 1);
|
|
// We don't know the default text, do we?
|
|
// QCOMPARE( aboutData.licenses().at(0).name(KAboutLicense::ShortName), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).name(KAboutLicense::ShortName).isEmpty());
|
|
// QCOMPARE( aboutData.licenses().at(0).name(KAboutLicense::FullName), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).name(KAboutLicense::FullName).isEmpty());
|
|
// QCOMPARE( aboutData.licenses().at(0).text(), QString(WarningText) );
|
|
QVERIFY(!aboutData.licenses().at(0).text().isEmpty());
|
|
|
|
// add GPL3
|
|
aboutData.addLicense(KAboutLicense::GPL_V3);
|
|
|
|
QCOMPARE(aboutData.licenses().count(), 1);
|
|
QCOMPARE(aboutData.licenses().at(0).name(KAboutLicense::ShortName), QString::fromLatin1("GPL v3"));
|
|
QCOMPARE(aboutData.licenses().at(0).name(KAboutLicense::FullName), QString::fromLatin1("GNU General Public License Version 3"));
|
|
// QCOMPARE( aboutData.licenses().at(0).text(), QString(GPL3Text) );
|
|
QVERIFY(!aboutData.licenses().at(0).text().isEmpty());
|
|
|
|
// add GPL2, Custom and File
|
|
aboutData.addLicense(KAboutLicense::GPL_V2);
|
|
aboutData.addLicenseText(QLatin1String(LicenseText));
|
|
aboutData.addLicenseTextFile(QLatin1String(LicenseFileName));
|
|
|
|
QCOMPARE(aboutData.licenses().count(), 4);
|
|
QCOMPARE(aboutData.licenses().at(0).name(KAboutLicense::ShortName), QString::fromLatin1("GPL v3"));
|
|
QCOMPARE(aboutData.licenses().at(0).name(KAboutLicense::FullName), QString::fromLatin1("GNU General Public License Version 3"));
|
|
// QCOMPARE( aboutData.licenses().at(0).text(), QString(GPL3Text) );
|
|
QVERIFY(!aboutData.licenses().at(0).text().isEmpty());
|
|
QCOMPARE(aboutData.licenses().at(1).name(KAboutLicense::ShortName), QString::fromLatin1("GPL v2"));
|
|
QCOMPARE(aboutData.licenses().at(1).name(KAboutLicense::FullName), QString::fromLatin1("GNU General Public License Version 2"));
|
|
// QCOMPARE( aboutData.licenses().at(1).text(), QString(GPL2Text) );
|
|
QVERIFY(!aboutData.licenses().at(1).text().isEmpty());
|
|
QCOMPARE(aboutData.licenses().at(2).name(KAboutLicense::ShortName), QString::fromLatin1("Custom"));
|
|
QCOMPARE(aboutData.licenses().at(2).name(KAboutLicense::FullName), QString::fromLatin1("Custom"));
|
|
QCOMPARE(aboutData.licenses().at(2).text(), QLatin1String(LicenseText));
|
|
QCOMPARE(aboutData.licenses().at(3).name(KAboutLicense::ShortName), QString::fromLatin1("Custom"));
|
|
QCOMPARE(aboutData.licenses().at(3).name(KAboutLicense::FullName), QString::fromLatin1("Custom"));
|
|
QCOMPARE(aboutData.licenses().at(3).text(), QString(copyrightStatement + lineFeed + QLatin1String(LicenseFileText)));
|
|
}
|
|
|
|
#if KCOREADDONS_ENABLE_DEPRECATED_SINCE(5, 2)
|
|
void KAboutDataTest::testSetProgramIconName()
|
|
{
|
|
const QString programIconName(QString::fromLatin1(ProgramIconName));
|
|
|
|
KAboutData aboutData(QString::fromLatin1(AppName),
|
|
QLatin1String(ProgramName),
|
|
QString::fromLatin1(Version),
|
|
QLatin1String(ShortDescription),
|
|
KAboutLicense::Unknown,
|
|
QLatin1String(CopyrightStatement),
|
|
QLatin1String(Text),
|
|
QString::fromLatin1(HomePageAddress),
|
|
QString::fromLatin1(BugsEmailAddress));
|
|
|
|
// Deprecated, still want to test this though. Silence GCC warnings.
|
|
#pragma GCC diagnostic push
|
|
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
|
// set different iconname
|
|
aboutData.setProgramIconName(programIconName);
|
|
#pragma GCC diagnostic pop
|
|
QCOMPARE(aboutData.programIconName(), programIconName);
|
|
}
|
|
#endif
|
|
|
|
void KAboutDataTest::testCopying()
|
|
{
|
|
KAboutData aboutData(QString::fromLatin1(AppName),
|
|
QLatin1String(ProgramName),
|
|
QString::fromLatin1(Version),
|
|
QLatin1String(ShortDescription),
|
|
KAboutLicense::GPL_V2);
|
|
|
|
{
|
|
KAboutData aboutData2(QString::fromLatin1(AppName),
|
|
QLatin1String(ProgramName),
|
|
QString::fromLatin1(Version),
|
|
QLatin1String(ShortDescription),
|
|
KAboutLicense::GPL_V3);
|
|
aboutData2.addLicense(KAboutLicense::GPL_V2, KAboutLicense::OrLaterVersions);
|
|
aboutData = aboutData2;
|
|
}
|
|
QList<KAboutLicense> licenses = aboutData.licenses();
|
|
QCOMPARE(licenses.count(), 2);
|
|
QCOMPARE(licenses.at(0).key(), KAboutLicense::GPL_V3);
|
|
QCOMPARE(aboutData.licenses().at(0).spdx(), QStringLiteral("GPL-3.0"));
|
|
// check it doesn't crash
|
|
QVERIFY(!licenses.at(0).text().isEmpty());
|
|
QCOMPARE(licenses.at(1).key(), KAboutLicense::GPL_V2);
|
|
QCOMPARE(aboutData.licenses().at(1).spdx(), QStringLiteral("GPL-2.0+"));
|
|
// check it doesn't crash
|
|
QVERIFY(!licenses.at(1).text().isEmpty());
|
|
}
|
|
|
|
void KAboutDataTest::testSetDesktopFileName()
|
|
{
|
|
KAboutData aboutData(QString::fromLatin1(AppName),
|
|
QLatin1String(ProgramName),
|
|
QString::fromLatin1(Version),
|
|
QLatin1String(ShortDescription),
|
|
KAboutLicense::Unknown);
|
|
QCOMPARE(aboutData.desktopFileName(), QStringLiteral("org.kde.app"));
|
|
|
|
// set different desktopFileName
|
|
aboutData.setDesktopFileName(QStringLiteral("foo.bar.application"));
|
|
QCOMPARE(aboutData.desktopFileName(), QStringLiteral("foo.bar.application"));
|
|
}
|
|
|
|
void KAboutDataTest::testLicenseSPDXID()
|
|
{
|
|
// Input with + should output with +.
|
|
auto license = KAboutLicense::byKeyword(QStringLiteral("GPLv2+"));
|
|
QCOMPARE(license.spdx(), QStringLiteral("GPL-2.0+"));
|
|
// Input without should output without.
|
|
license = KAboutLicense::byKeyword(QStringLiteral("GPLv2"));
|
|
QCOMPARE(license.spdx(), QStringLiteral("GPL-2.0"));
|
|
// Input of spdx with or-later should also work
|
|
license = KAboutLicense::byKeyword(QStringLiteral("GPL-2.0-or-later"));
|
|
QCOMPARE(license.spdx(), QStringLiteral("GPL-2.0+")); // TODO: should not return the deprecatd version
|
|
|
|
// we should be able to match by spdx too
|
|
// create a KAboutLicense from enum, then make sure going to spdx and back gives the same enum
|
|
for (int i = 1; i <= KAboutLicense::LGPL_V2_1; ++i) { /*current highest enum value*/
|
|
KAboutData aboutData(QString::fromLatin1(AppName),
|
|
QLatin1String(ProgramName),
|
|
QString::fromLatin1(Version),
|
|
QLatin1String(ShortDescription),
|
|
KAboutLicense::GPL_V2);
|
|
aboutData.setLicense(KAboutLicense::LicenseKey(i));
|
|
QVERIFY(aboutData.licenses().count() == 1);
|
|
const auto license = aboutData.licenses().constFirst();
|
|
auto licenseFromKeyword = KAboutLicense::byKeyword(license.spdx());
|
|
|
|
QCOMPARE(license.key(), licenseFromKeyword.key());
|
|
}
|
|
}
|
|
|
|
void KAboutDataTest::testLicenseOrLater()
|
|
{
|
|
// For kaboutdata we can replace the license with an orLater version. Or add a second one.
|
|
KAboutData aboutData(QString::fromLatin1(AppName),
|
|
QLatin1String(ProgramName),
|
|
QString::fromLatin1(Version),
|
|
QLatin1String(ShortDescription),
|
|
KAboutLicense::GPL_V2);
|
|
QCOMPARE(aboutData.licenses().at(0).spdx(), QStringLiteral("GPL-2.0"));
|
|
aboutData.setLicense(KAboutLicense::GPL_V2, KAboutLicense::OrLaterVersions);
|
|
QCOMPARE(aboutData.licenses().at(0).spdx(), QStringLiteral("GPL-2.0+"));
|
|
aboutData.addLicense(KAboutLicense::LGPL_V3, KAboutLicense::OrLaterVersions);
|
|
bool foundLGPL = false;
|
|
const QList<KAboutLicense> licenses = aboutData.licenses();
|
|
for (const auto &license : licenses) {
|
|
if (license.key() == KAboutLicense::LGPL_V3) {
|
|
QCOMPARE(license.spdx(), QStringLiteral("LGPL-3.0+"));
|
|
foundLGPL = true;
|
|
break;
|
|
}
|
|
}
|
|
QCOMPARE(foundLGPL, true);
|
|
}
|
|
|
|
void KAboutDataTest::testProductName()
|
|
{
|
|
KAboutData aboutData(QString::fromLatin1(AppName), QString::fromLatin1(ProgramName));
|
|
QCOMPARE(aboutData.productName(), QString::fromLatin1(AppName));
|
|
QCOMPARE(aboutData.internalProductName(), nullptr);
|
|
aboutData.setProductName("frameworks-kcoreaddons/aboutdata");
|
|
QCOMPARE(aboutData.productName(), QString::fromLatin1("frameworks-kcoreaddons/aboutdata"));
|
|
QCOMPARE(aboutData.internalProductName(), "frameworks-kcoreaddons/aboutdata");
|
|
}
|
|
|
|
QTEST_MAIN(KAboutDataTest)
|
|
|
|
#include "kaboutdatatest.moc"
|