~ubuntu-branches/ubuntu/utopic/psi/utopic

« back to all changes in this revision

Viewing changes to src/privacy/unittest/privacylistitemtest.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jan Niehusmann
  • Date: 2008-08-28 18:46:52 UTC
  • mfrom: (1.2.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20080828184652-iiik12dl91nq7cdi
Tags: 0.12-2
Uploading to unstable (Closes: Bug#494352)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * Copyright (C) 2007, Remko Troncon
 
3
 */
 
4
 
 
5
#include <QList>
 
6
#include <QStringList>
 
7
 
 
8
#include <cppunit/extensions/HelperMacros.h>
 
9
#include <cppunit/extensions/TestFactoryRegistry.h>
 
10
 
 
11
#include "unittestutil.h"
 
12
#include "privacylistitem.h"
 
13
 
 
14
class PrivacyListItemTest : public CppUnit::TestFixture
 
15
{
 
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);
 
30
 
 
31
        CPPUNIT_TEST(testToXml);
 
32
 
 
33
        CPPUNIT_TEST(testIsBlock);
 
34
        CPPUNIT_TEST(testIsBlock_NoBlock);
 
35
 
 
36
        CPPUNIT_TEST(testBlockItem);
 
37
 
 
38
        CPPUNIT_TEST_SUITE_END();
 
39
 
 
40
public:
 
41
        PrivacyListItemTest();
 
42
        virtual ~PrivacyListItemTest();
 
43
 
 
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();
 
57
 
 
58
        void testToXml();
 
59
 
 
60
        void testIsBlock();
 
61
        void testIsBlock_NoBlock();
 
62
 
 
63
        void testBlockItem();
 
64
 
 
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);
 
72
};
 
73
 
 
74
CPPUNIT_TEST_SUITE_REGISTRATION(PrivacyListItemTest);
 
75
 
 
76
// -----------------------------------------------------------------------------
 
77
 
 
78
PrivacyListItemTest::PrivacyListItemTest()
 
79
{
 
80
}
 
81
 
 
82
PrivacyListItemTest::~PrivacyListItemTest()
 
83
{
 
84
}
 
85
 
 
86
PrivacyListItem PrivacyListItemTest::createItemFromXml(const QString& xml)
 
87
{
 
88
        QDomElement e = UnitTestUtil::createElement(xml);
 
89
        PrivacyListItem item;
 
90
        item.fromXml(e);
 
91
        return item;
 
92
}
 
93
 
 
94
PrivacyListItem PrivacyListItemTest::createItem()
 
95
{
 
96
        return createItemFromXml("<item type='jid' value='me@example.com' order='1' action='allow'><presence-in/><presence-out/></item>");
 
97
}
 
98
 
 
99
PrivacyListItem PrivacyListItemTest::createItemFromXmlWithTypeValue(const QString& type, const QString& value)
 
100
{
 
101
        return createItemFromXml(QString("<item type='%1' value='%2' order='1' action='allow' />").arg(type).arg(value));
 
102
}
 
103
 
 
104
PrivacyListItem PrivacyListItemTest::createItemFromXmlWithAction(const QString& action)
 
105
{
 
106
        return createItemFromXml(QString("<item order='1' action='%1' />").arg(action));
 
107
}
 
108
 
 
109
PrivacyListItem PrivacyListItemTest::createItemFromXmlWithOrder(const QString& order)
 
110
{
 
111
        return createItemFromXml(QString("<item order='%1' action='allow' />").arg(order));
 
112
}
 
113
 
 
114
PrivacyListItem PrivacyListItemTest::createItemFromXmlWithoutType()
 
115
{
 
116
        return createItemFromXml("<item order='1' action='allow' />");
 
117
}
 
118
 
 
119
PrivacyListItem PrivacyListItemTest::createItemFromXmlWithChildren(const QStringList& children)
 
120
{
 
121
        QString xml("<item order='1' action='allow'>");
 
122
        foreach(QString child, children) {
 
123
                xml += "<" + child + "/>";
 
124
        }
 
125
        xml += "</item>";
 
126
        return createItemFromXml(xml);
 
127
}
 
128
 
 
129
// -----------------------------------------------------------------------------
 
130
 
 
131
void PrivacyListItemTest::testFromXml_JidType()
 
132
{
 
133
        PrivacyListItem item = createItemFromXmlWithTypeValue("jid", "user@example.com");
 
134
 
 
135
        CPPUNIT_ASSERT_EQUAL(PrivacyListItem::JidType, item.type());
 
136
        CPPUNIT_ASSERT(QString("user@example.com") == item.value());
 
137
}
 
138
 
 
139
void PrivacyListItemTest::testFromXml_GroupType()
 
140
{
 
141
        PrivacyListItem item = createItemFromXmlWithTypeValue("group", "mygroup");
 
142
 
 
143
        CPPUNIT_ASSERT_EQUAL(PrivacyListItem::GroupType, item.type());
 
144
        CPPUNIT_ASSERT(QString("mygroup") == item.value());
 
145
}
 
146
 
 
147
void PrivacyListItemTest::testFromXml_SubscriptionType()
 
148
{
 
149
        PrivacyListItem item = createItemFromXmlWithTypeValue("subscription", "to");
 
150
 
 
151
        CPPUNIT_ASSERT_EQUAL(PrivacyListItem::SubscriptionType, item.type());
 
152
        CPPUNIT_ASSERT(QString("to") == item.value());
 
153
}
 
154
 
 
155
void PrivacyListItemTest::testFromXml_NoType()
 
156
{
 
157
        PrivacyListItem item = createItemFromXmlWithoutType();
 
158
 
 
159
        CPPUNIT_ASSERT_EQUAL(PrivacyListItem::FallthroughType, item.type());
 
160
}
 
161
 
 
162
void PrivacyListItemTest::testFromXml_AllowAction()
 
163
{
 
164
        PrivacyListItem item = createItemFromXmlWithAction("allow");
 
165
 
 
166
        CPPUNIT_ASSERT_EQUAL(PrivacyListItem::Allow, item.action());
 
167
}
 
168
 
 
169
void PrivacyListItemTest::testFromXml_DenyAction()
 
170
{
 
171
        PrivacyListItem item = createItemFromXmlWithAction("deny");
 
172
 
 
173
        CPPUNIT_ASSERT_EQUAL(PrivacyListItem::Deny, item.action());
 
174
}
 
175
 
 
176
void PrivacyListItemTest::testFromXml_Order()
 
177
{
 
178
        PrivacyListItem item = createItemFromXmlWithOrder("13");
 
179
 
 
180
        CPPUNIT_ASSERT_EQUAL(13U, item.order());
 
181
}
 
182
 
 
183
void PrivacyListItemTest::testFromXml_MessageChild()
 
184
{
 
185
        PrivacyListItem item = createItemFromXmlWithChildren(QStringList("message"));
 
186
 
 
187
        CPPUNIT_ASSERT(item.message());
 
188
        CPPUNIT_ASSERT(!item.presenceIn());
 
189
        CPPUNIT_ASSERT(!item.presenceOut());
 
190
        CPPUNIT_ASSERT(!item.iq());
 
191
}
 
192
 
 
193
void PrivacyListItemTest::testFromXml_PresenceInChild()
 
194
{
 
195
        PrivacyListItem item = createItemFromXmlWithChildren(QStringList("presence-in"));
 
196
 
 
197
        CPPUNIT_ASSERT(!item.message());
 
198
        CPPUNIT_ASSERT(item.presenceIn());
 
199
        CPPUNIT_ASSERT(!item.presenceOut());
 
200
        CPPUNIT_ASSERT(!item.iq());
 
201
}
 
202
 
 
203
void PrivacyListItemTest::testFromXml_PresenceOutChild()
 
204
{
 
205
        PrivacyListItem item = createItemFromXmlWithChildren(QStringList("presence-out"));
 
206
 
 
207
        CPPUNIT_ASSERT(!item.message());
 
208
        CPPUNIT_ASSERT(!item.presenceIn());
 
209
        CPPUNIT_ASSERT(item.presenceOut());
 
210
        CPPUNIT_ASSERT(!item.iq());
 
211
}
 
212
 
 
213
void PrivacyListItemTest::testFromXml_IQChild()
 
214
{
 
215
        PrivacyListItem item = createItemFromXmlWithChildren(QStringList("iq"));
 
216
 
 
217
        CPPUNIT_ASSERT(!item.message());
 
218
        CPPUNIT_ASSERT(!item.presenceIn());
 
219
        CPPUNIT_ASSERT(!item.presenceOut());
 
220
        CPPUNIT_ASSERT(item.iq());
 
221
}
 
222
 
 
223
void PrivacyListItemTest::testFromXml_AllChildren()
 
224
{
 
225
        QStringList children;
 
226
        children << "message" << "presence-in" << "presence-out" << "iq";
 
227
 
 
228
        PrivacyListItem item = createItemFromXmlWithChildren(children);
 
229
 
 
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());
 
235
}
 
236
 
 
237
void PrivacyListItemTest::testFromXml_NoChildren()
 
238
{
 
239
        PrivacyListItem item = createItemFromXmlWithChildren(QStringList());
 
240
 
 
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());
 
246
}
 
247
 
 
248
void PrivacyListItemTest::testToXml()
 
249
{
 
250
        PrivacyListItem item1 = createItem();
 
251
        QDomDocument doc;
 
252
 
 
253
        QDomElement e = item1.toXml(doc);
 
254
 
 
255
        doc.appendChild(e);
 
256
        PrivacyListItem item2 = createItemFromXml(doc.toString());
 
257
        CPPUNIT_ASSERT(item1 == item2);
 
258
}
 
259
 
 
260
void PrivacyListItemTest::testIsBlock()
 
261
{
 
262
        PrivacyListItem item = createItemFromXml("<item type='jid' value='me@example.com' order='1' action='deny' />");
 
263
 
 
264
        CPPUNIT_ASSERT(item.isBlock());
 
265
}
 
266
 
 
267
void PrivacyListItemTest::testIsBlock_NoBlock()
 
268
{
 
269
        PrivacyListItem item = createItemFromXml("<item type='jid' value='me@example.com' order='1' action='deny'><presence-in /></item>");
 
270
 
 
271
        CPPUNIT_ASSERT(!item.isBlock());
 
272
}
 
273
 
 
274
void PrivacyListItemTest::testBlockItem()
 
275
{
 
276
        PrivacyListItem item = PrivacyListItem::blockItem("me@example.com");
 
277
 
 
278
        CPPUNIT_ASSERT(item.isBlock());
 
279
        CPPUNIT_ASSERT("me@example.com" == item.value());
 
280
}