1
#include <QtTest/QtTest>
6
class TestIconset: public QObject
15
iconset = new Iconset();
16
QVERIFY(iconset->load("iconsets/roster/default.jisp"));
17
iconset->addToFactory();
20
void cleanupTestCase()
23
QCOMPARE(iconset->count(), 0);
28
void testIconsetData()
31
QCOMPARE(iconset->name(), QString("Stellar (default)"));
32
QCOMPARE(iconset->version(), QString("1.0"));
33
QCOMPARE(iconset->authors().count(), 2);
34
QCOMPARE(iconset->authors()[0], QString("Jason Kim<br> Email: <a href='mailto:jmkim@uci.edu'>jmkim@uci.edu</a>"));
35
QCOMPARE(iconset->authors()[1], QString("Michail Pishchagin (icondef.xml)<br> Email: <a href='mailto:mblsha@users.sourceforge.net'>mblsha@users.sourceforge.net</a><br> JID: <a href='jabber:mblsha@jabber.ru'>mblsha@jabber.ru</a><br> WWW: <a href='http://maz.sf.net'>http://maz.sf.net</a>"));
36
QCOMPARE(iconset->creation(), QString("2003-07-08"));
37
QCOMPARE(iconset->description(), QString("Default Psi 0.9.1 iconset"));
40
QCOMPARE(iconset->count(), 19);
45
QStringList iconNames;
46
QListIterator<PsiIcon *> it = iconset->iterator();
47
while ( it.hasNext() ) {
48
PsiIcon *icon = it.next();
49
iconNames << icon->name();
51
QCOMPARE(iconNames.count(), iconset->count());
54
void testHeadlineIcon()
56
const PsiIcon *messageHeadline = IconsetFactory::iconPtr("psi/headline");
57
QVERIFY(messageHeadline != 0);
58
QCOMPARE(messageHeadline->name(), QString("psi/headline"));
59
QCOMPARE(messageHeadline->isAnimated(), false);
60
QCOMPARE(messageHeadline->frameNumber(), 0);
61
QCOMPARE(messageHeadline->anim(), (const Anim *)0);
62
QCOMPARE(messageHeadline->pixmap().width(), 16);
63
QCOMPARE(messageHeadline->pixmap().height(), 16);
68
const PsiIcon *chat = IconsetFactory::iconPtr("psi/chat");
69
QVERIFY(chat->anim() != 0);
71
const Anim *anim = chat->anim();
72
Anim *copy1 = new Anim(*anim);
73
Anim *copy2 = new Anim(*copy1);
74
Anim *copy3 = new Anim(*copy2);
76
// at first, all animations should contain 15 frames
77
QCOMPARE(copy3->numFrames(), 15);
79
copy3->stripFirstFrame();
80
QCOMPARE(copy3->numFrames(), 14);
81
QCOMPARE(copy2->numFrames(), 15);
82
QCOMPARE(copy1->numFrames(), 15);
83
QCOMPARE(anim->numFrames(), 15);
86
for (i = 0; i < 2; i++)
87
copy2->stripFirstFrame();
88
QCOMPARE(copy3->numFrames(), 14);
89
QCOMPARE(copy2->numFrames(), 13);
90
QCOMPARE(copy1->numFrames(), 15);
91
QCOMPARE(anim->numFrames(), 15);
93
for (i = 0; i < 5; i++)
94
copy1->stripFirstFrame();
95
QCOMPARE(copy3->numFrames(), 14);
96
QCOMPARE(copy2->numFrames(), 13);
97
QCOMPARE(copy1->numFrames(), 10);
98
QCOMPARE(anim->numFrames(), 15);
105
void testIconStripping()
107
const PsiIcon *chat = IconsetFactory::iconPtr("psi/chat");
110
QVERIFY(chat->isAnimated() == true);
111
QCOMPARE(chat->anim()->numFrames(), 15);
113
PsiIcon *stripping = new PsiIcon(*chat);
114
QCOMPARE(chat->name(), QString("psi/chat"));
115
QCOMPARE(stripping->name(), QString("psi/chat"));
117
stripping->stripFirstAnimFrame();
118
QCOMPARE(stripping->anim()->numFrames(), 14);
119
QCOMPARE(chat->anim()->numFrames(), 15);
121
stripping->setName("yohimbo");
122
QCOMPARE(chat->name(), QString("psi/chat"));
123
QCOMPARE(stripping->name(), QString("yohimbo"));
128
void testIconsetFactory()
130
QCOMPARE(IconsetFactory::icons().count(), 19);
131
QVERIFY(IconsetFactory::iconPtr("psi/message"));
134
void testCombineIconsets()
136
Iconset *is = new Iconset();
137
QVERIFY(is->load("iconsets/roster/small.jisp"));
139
Iconset *combined = new Iconset(*is);
140
QCOMPARE(combined->count(), is->count());
143
QCOMPARE(combined->count(), is->count());
145
QListIterator<PsiIcon*> it = is->iterator();
146
while (it.hasNext()) {
147
PsiIcon *icon = new PsiIcon(*it.next());
148
icon->setName(icon->name() + "2");
149
combined->setIcon(icon->name(), *icon);
152
QCOMPARE(combined->count(), 4);
155
QCOMPARE(combined->count(), 0);
156
QCOMPARE(is->count(), 2);
162
void testLoadGifIconset()
164
Iconset *is = new Iconset();
165
QVERIFY(is->load("iconsets/emoticons/puz.jisp"));
166
QVERIFY(is->count() > 0);
170
void testMultipleIconTextStrings()
172
// all puz iconset icons contain multiple
173
// text strings. we need to verify that.
174
Iconset *is = new Iconset();
175
QVERIFY(is->load("iconsets/emoticons/puz.jisp"));
176
QVERIFY(is->count() > 0);
178
QListIterator<PsiIcon*> it = is->iterator();
179
while (it.hasNext()) {
180
const QHash<QString, QString> text = it.next()->text();
181
QVERIFY(text.count() > 1);
187
void testCreateQIcon()
189
const PsiIcon *chat = IconsetFactory::iconPtr("psi/chat");
192
QIcon icon = chat->iconSet();
193
QVERIFY(!icon.isNull());
197
QTEST_MAIN(TestIconset)
198
#include "testiconset.moc"