2
* Copyright (C) 2007, Remko Troncon
8
#include <cppunit/extensions/HelperMacros.h>
9
#include <cppunit/extensions/TestFactoryRegistry.h>
11
#include "unittestutil.h"
12
#include "privacylistitem.h"
14
class PrivacyListItemTest : public CppUnit::TestFixture
16
CPPUNIT_TEST_SUITE(PrivacyListItemTest);
17
CPPUNIT_TEST(testFromXml_JidType);
18
CPPUNIT_TEST(testFromXml_GroupType);
19
CPPUNIT_TEST(testFromXml_SubscriptionType);
20
CPPUNIT_TEST(testFromXml_NoType);
21
CPPUNIT_TEST(testFromXml_AllowAction);
22
CPPUNIT_TEST(testFromXml_DenyAction);
23
CPPUNIT_TEST(testFromXml_Order);
24
CPPUNIT_TEST(testFromXml_MessageChild);
25
CPPUNIT_TEST(testFromXml_PresenceInChild);
26
CPPUNIT_TEST(testFromXml_PresenceOutChild);
27
CPPUNIT_TEST(testFromXml_IQChild);
28
CPPUNIT_TEST(testFromXml_AllChildren);
29
CPPUNIT_TEST(testFromXml_NoChildren);
31
CPPUNIT_TEST(testToXml);
33
CPPUNIT_TEST(testIsBlock);
34
CPPUNIT_TEST(testIsBlock_NoBlock);
36
CPPUNIT_TEST(testBlockItem);
38
CPPUNIT_TEST_SUITE_END();
41
PrivacyListItemTest();
42
virtual ~PrivacyListItemTest();
44
void testFromXml_JidType();
45
void testFromXml_GroupType();
46
void testFromXml_SubscriptionType();
47
void testFromXml_NoType();
48
void testFromXml_AllowAction();
49
void testFromXml_DenyAction();
50
void testFromXml_Order();
51
void testFromXml_MessageChild();
52
void testFromXml_PresenceInChild();
53
void testFromXml_PresenceOutChild();
54
void testFromXml_IQChild();
55
void testFromXml_AllChildren();
56
void testFromXml_NoChildren();
61
void testIsBlock_NoBlock();
65
PrivacyListItem createItem();
66
PrivacyListItem createItemFromXml(const QString&);
67
PrivacyListItem createItemFromXmlWithTypeValue(const QString& type, const QString& value);
68
PrivacyListItem createItemFromXmlWithoutType();
69
PrivacyListItem createItemFromXmlWithAction(const QString&);
70
PrivacyListItem createItemFromXmlWithOrder(const QString&);
71
PrivacyListItem createItemFromXmlWithChildren(const QStringList& children);
74
CPPUNIT_TEST_SUITE_REGISTRATION(PrivacyListItemTest);
76
// -----------------------------------------------------------------------------
78
PrivacyListItemTest::PrivacyListItemTest()
82
PrivacyListItemTest::~PrivacyListItemTest()
86
PrivacyListItem PrivacyListItemTest::createItemFromXml(const QString& xml)
88
QDomElement e = UnitTestUtil::createElement(xml);
94
PrivacyListItem PrivacyListItemTest::createItem()
96
return createItemFromXml("<item type='jid' value='me@example.com' order='1' action='allow'><presence-in/><presence-out/></item>");
99
PrivacyListItem PrivacyListItemTest::createItemFromXmlWithTypeValue(const QString& type, const QString& value)
101
return createItemFromXml(QString("<item type='%1' value='%2' order='1' action='allow' />").arg(type).arg(value));
104
PrivacyListItem PrivacyListItemTest::createItemFromXmlWithAction(const QString& action)
106
return createItemFromXml(QString("<item order='1' action='%1' />").arg(action));
109
PrivacyListItem PrivacyListItemTest::createItemFromXmlWithOrder(const QString& order)
111
return createItemFromXml(QString("<item order='%1' action='allow' />").arg(order));
114
PrivacyListItem PrivacyListItemTest::createItemFromXmlWithoutType()
116
return createItemFromXml("<item order='1' action='allow' />");
119
PrivacyListItem PrivacyListItemTest::createItemFromXmlWithChildren(const QStringList& children)
121
QString xml("<item order='1' action='allow'>");
122
foreach(QString child, children) {
123
xml += "<" + child + "/>";
126
return createItemFromXml(xml);
129
// -----------------------------------------------------------------------------
131
void PrivacyListItemTest::testFromXml_JidType()
133
PrivacyListItem item = createItemFromXmlWithTypeValue("jid", "user@example.com");
135
CPPUNIT_ASSERT_EQUAL(PrivacyListItem::JidType, item.type());
136
CPPUNIT_ASSERT(QString("user@example.com") == item.value());
139
void PrivacyListItemTest::testFromXml_GroupType()
141
PrivacyListItem item = createItemFromXmlWithTypeValue("group", "mygroup");
143
CPPUNIT_ASSERT_EQUAL(PrivacyListItem::GroupType, item.type());
144
CPPUNIT_ASSERT(QString("mygroup") == item.value());
147
void PrivacyListItemTest::testFromXml_SubscriptionType()
149
PrivacyListItem item = createItemFromXmlWithTypeValue("subscription", "to");
151
CPPUNIT_ASSERT_EQUAL(PrivacyListItem::SubscriptionType, item.type());
152
CPPUNIT_ASSERT(QString("to") == item.value());
155
void PrivacyListItemTest::testFromXml_NoType()
157
PrivacyListItem item = createItemFromXmlWithoutType();
159
CPPUNIT_ASSERT_EQUAL(PrivacyListItem::FallthroughType, item.type());
162
void PrivacyListItemTest::testFromXml_AllowAction()
164
PrivacyListItem item = createItemFromXmlWithAction("allow");
166
CPPUNIT_ASSERT_EQUAL(PrivacyListItem::Allow, item.action());
169
void PrivacyListItemTest::testFromXml_DenyAction()
171
PrivacyListItem item = createItemFromXmlWithAction("deny");
173
CPPUNIT_ASSERT_EQUAL(PrivacyListItem::Deny, item.action());
176
void PrivacyListItemTest::testFromXml_Order()
178
PrivacyListItem item = createItemFromXmlWithOrder("13");
180
CPPUNIT_ASSERT_EQUAL(13U, item.order());
183
void PrivacyListItemTest::testFromXml_MessageChild()
185
PrivacyListItem item = createItemFromXmlWithChildren(QStringList("message"));
187
CPPUNIT_ASSERT(item.message());
188
CPPUNIT_ASSERT(!item.presenceIn());
189
CPPUNIT_ASSERT(!item.presenceOut());
190
CPPUNIT_ASSERT(!item.iq());
193
void PrivacyListItemTest::testFromXml_PresenceInChild()
195
PrivacyListItem item = createItemFromXmlWithChildren(QStringList("presence-in"));
197
CPPUNIT_ASSERT(!item.message());
198
CPPUNIT_ASSERT(item.presenceIn());
199
CPPUNIT_ASSERT(!item.presenceOut());
200
CPPUNIT_ASSERT(!item.iq());
203
void PrivacyListItemTest::testFromXml_PresenceOutChild()
205
PrivacyListItem item = createItemFromXmlWithChildren(QStringList("presence-out"));
207
CPPUNIT_ASSERT(!item.message());
208
CPPUNIT_ASSERT(!item.presenceIn());
209
CPPUNIT_ASSERT(item.presenceOut());
210
CPPUNIT_ASSERT(!item.iq());
213
void PrivacyListItemTest::testFromXml_IQChild()
215
PrivacyListItem item = createItemFromXmlWithChildren(QStringList("iq"));
217
CPPUNIT_ASSERT(!item.message());
218
CPPUNIT_ASSERT(!item.presenceIn());
219
CPPUNIT_ASSERT(!item.presenceOut());
220
CPPUNIT_ASSERT(item.iq());
223
void PrivacyListItemTest::testFromXml_AllChildren()
225
QStringList children;
226
children << "message" << "presence-in" << "presence-out" << "iq";
228
PrivacyListItem item = createItemFromXmlWithChildren(children);
230
CPPUNIT_ASSERT(item.all());
231
CPPUNIT_ASSERT(item.message());
232
CPPUNIT_ASSERT(item.presenceIn());
233
CPPUNIT_ASSERT(item.presenceOut());
234
CPPUNIT_ASSERT(item.iq());
237
void PrivacyListItemTest::testFromXml_NoChildren()
239
PrivacyListItem item = createItemFromXmlWithChildren(QStringList());
241
CPPUNIT_ASSERT(item.all());
242
CPPUNIT_ASSERT(item.message());
243
CPPUNIT_ASSERT(item.presenceIn());
244
CPPUNIT_ASSERT(item.presenceOut());
245
CPPUNIT_ASSERT(item.iq());
248
void PrivacyListItemTest::testToXml()
250
PrivacyListItem item1 = createItem();
253
QDomElement e = item1.toXml(doc);
256
PrivacyListItem item2 = createItemFromXml(doc.toString());
257
CPPUNIT_ASSERT(item1 == item2);
260
void PrivacyListItemTest::testIsBlock()
262
PrivacyListItem item = createItemFromXml("<item type='jid' value='me@example.com' order='1' action='deny' />");
264
CPPUNIT_ASSERT(item.isBlock());
267
void PrivacyListItemTest::testIsBlock_NoBlock()
269
PrivacyListItem item = createItemFromXml("<item type='jid' value='me@example.com' order='1' action='deny'><presence-in /></item>");
271
CPPUNIT_ASSERT(!item.isBlock());
274
void PrivacyListItemTest::testBlockItem()
276
PrivacyListItem item = PrivacyListItem::blockItem("me@example.com");
278
CPPUNIT_ASSERT(item.isBlock());
279
CPPUNIT_ASSERT("me@example.com" == item.value());