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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
/*
This file is part of KNewStuff2.
SPDX-FileCopyrightText: 2008 Jeremy Whiting <jpwhiting@kde.org>
SPDX-License-Identifier: LGPL-2.1-or-later
*/
// unit test for entry
#include <QString>
#include <QTest>
#include <QXmlStreamReader>
#include "../src/entry.h"
#include "../src/entry_p.h"
#include <knewstuffcore_debug.h>
const char *entryXML =
"<stuff category=\"Category\"> "
"<name>Name</name>"
"<providerid>https://api.opendesktop.org/v1/</providerid>"
"<author homepage=\"http://testhomepage\">testauthor</author>"
"<homepage>https://testhomepage</homepage>"
"<licence>3</licence>" // krazy:exclude=spelling
"<version>4.0</version>"
"<rating>82</rating>"
"<downloads>128891</downloads>"
"<installedfile>/some/test/path.jpg</installedfile>"
"<id>12345</id>"
"<releasedate>2008-08-12<!--randomcomment--></releasedate>"
"<summary>new version 3.0</summary>"
"<!--randomcomment-->"
"<changelog>Updated</changelog>"
"<preview>https://testpreview</preview>"
"<previewBig>https://testpreview</previewBig>"
"<payload>http://testpayload</payload>"
"<status>"
"<!--randomcomment-->"
"installed"
"<!--randomcomment-->"
"</status>"
"<tags>ghns_excluded=1</tags>"
"</stuff>";
const QString name = QStringLiteral("Name");
const QString category = QStringLiteral("Category");
const QString summary = QStringLiteral("new version 3.0");
const QString version = QStringLiteral("4.0");
const QString license = QStringLiteral("3");
class testEntry : public QObject
{
Q_OBJECT
private:
KNS3::Entry createEntryOld();
KNS3::Entry createEntry();
private Q_SLOTS:
void testProperties();
void testCopy();
void testAssignment();
void testDomImplementation();
};
KNS3::Entry testEntry::createEntryOld()
{
QDomDocument document;
document.setContent(QString::fromLatin1(entryXML));
QDomElement node = document.documentElement();
KNSCore::EntryInternal entryInternal;
bool xmlResult = entryInternal.setEntryXML(node);
qCDebug(KNEWSTUFFCORE) << "Created entry from XML " << xmlResult;
return KNS3::EntryPrivate::fromInternal(&entryInternal);
}
KNS3::Entry testEntry::createEntry()
{
QXmlStreamReader reader;
reader.addData(entryXML);
KNSCore::EntryInternal entryInternal;
bool xmlResult = reader.readNextStartElement() && entryInternal.setEntryXML(reader);
qCDebug(KNEWSTUFFCORE) << "Created entry from XML " << xmlResult;
return KNS3::EntryPrivate::fromInternal(&entryInternal);
}
void testEntry::testProperties()
{
KNS3::Entry entry = createEntry();
QCOMPARE(entry.name(), name);
QCOMPARE(entry.category(), category);
QCOMPARE(entry.license(), license);
QCOMPARE(entry.summary(), summary);
QCOMPARE(entry.version(), version);
}
void testEntry::testCopy()
{
KNS3::Entry entry = createEntry();
KNS3::Entry entry2(entry);
QCOMPARE(entry.name(), entry2.name());
QCOMPARE(entry.category(), entry2.category());
QCOMPARE(entry.license(), entry2.license());
QCOMPARE(entry.summary(), entry2.summary());
QCOMPARE(entry.version(), entry2.version());
}
void testEntry::testAssignment()
{
KNS3::Entry entry = createEntry();
KNS3::Entry entry2 = entry;
QCOMPARE(entry.name(), entry2.name());
QCOMPARE(entry.category(), entry2.category());
QCOMPARE(entry.license(), entry2.license());
QCOMPARE(entry.summary(), entry2.summary());
QCOMPARE(entry.version(), entry2.version());
}
void testEntry::testDomImplementation()
{
KNS3::Entry entry = createEntry();
KNS3::Entry entry2 = createEntryOld();
QCOMPARE(entry.name(), entry2.name());
QCOMPARE(entry.category(), entry2.category());
QCOMPARE(entry.license(), entry2.license());
QCOMPARE(entry.summary(), entry2.summary());
QCOMPARE(entry.version(), entry2.version());
}
QTEST_GUILESS_MAIN(testEntry)
#include "knewstuffentrytest.moc"
|