File: knewstuffentrytest.cpp

package info (click to toggle)
knewstuff 5.116.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 29,148 kB
  • sloc: cpp: 15,991; xml: 132; sh: 65; makefile: 11
file content (134 lines) | stat: -rw-r--r-- 3,957 bytes parent folder | download | duplicates (2)
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"