58
59
// -----------------------------------------------------------------------------
60
class CapsManagerTest : public CppUnit::TestFixture
61
class CapsManagerTest : public QObject
62
CPPUNIT_TEST_SUITE(CapsManagerTest);
64
CPPUNIT_TEST(testUpdateCaps);
66
CPPUNIT_TEST(testCapsEnabled);
67
CPPUNIT_TEST(testCapsEnabled_NoCaps);
69
CPPUNIT_TEST(testDisableCaps);
71
CPPUNIT_TEST_SUITE_END();
79
void addContact(const QString& jid, const QString& client, const QString& version, const QStringList& capabilities);
80
CapsManager* createManager(const QString& jid);
82
void testUpdateCaps();
83
void testCapsEnabled();
84
void testCapsEnabled_NoCaps();
85
void testDisableCaps();
88
CapsRegistry registry_;
89
TestDiscoInfoQuerier* querier_;
90
CapsManager* manager_;
68
querier_ = new TestDiscoInfoQuerier();
71
void cleanupTestCase() {
77
QStringList capabilities;
78
capabilities << "c1" << "c2" << "c3";
79
addContact("you@example.com/a", "myclient", "myversion", capabilities);
80
CapsManager* manager = createManager("me@example.com");
82
manager->updateCaps("you@example.com/a", "myclient", "myversion", "c1 c2");
83
XMPP::Features features(manager->features("you@example.com/a"));
85
QCOMPARE(querier_->nb_getdiscoinfo_called_, 3U);
86
QVERIFY(features.test(QStringList("myversion_f1")));
87
QVERIFY(features.test(QStringList("c1_f1")));
88
QVERIFY(features.test(QStringList("c1_f2")));
89
QVERIFY(features.test(QStringList("c2_f1")));
90
QVERIFY(features.test(QStringList("c2_f2")));
93
void testCapsEnabled() {
94
QStringList capabilities;
95
capabilities << "c1" << "c2";
96
addContact("you@example.com/a", "myclient", "myversion", capabilities);
97
CapsManager* manager = createManager("me@example.com");
99
manager->updateCaps("you@example.com/a", "myclient", "myversion", "c1 c2");
101
QVERIFY(manager->capsEnabled("you@example.com/a"));
104
void testCapsEnabled_NoCaps() {
105
CapsManager* manager = createManager("me@example.com/a");
107
QVERIFY(!manager->capsEnabled("you@example.com/b"));
110
void testDisableCaps() {
111
QStringList capabilities;
112
capabilities << "c1" << "c2";
113
addContact("you@example.com/a", "myclient", "myversion", capabilities);
114
CapsManager* manager = createManager("me@example.com");
115
manager->updateCaps("you@example.com/a", "myclient", "myversion", "c1 c2");
117
manager->disableCaps("you@example.com/a");
119
QVERIFY(!manager->capsEnabled("you@example.com/a"));
123
void addContact(const QString& jid, const QString& client, const QString& version, const QStringList& capabilities) {
125
i.setFeatures(XMPP::Features(version + "_f1"));
126
querier_->addInfo(jid, client + '#' + version, i);
128
foreach(QString s, capabilities) {
131
f << s + "_f1" << s + "_f2";
132
i2.setFeatures(XMPP::Features(f));
133
querier_->addInfo(jid, client + '#' + s, i2);
137
CapsManager* createManager(const QString& jid) {
138
manager_ = new CapsManager(jid, ®istry_, querier_);
143
CapsRegistry registry_;
144
TestDiscoInfoQuerier* querier_;
145
CapsManager* manager_;
93
CPPUNIT_TEST_SUITE_REGISTRATION(CapsManagerTest);
95
// -----------------------------------------------------------------------------
97
CapsManagerTest::CapsManagerTest()
101
void CapsManagerTest::setUp()
104
querier_ = new TestDiscoInfoQuerier();
107
void CapsManagerTest::tearDown()
112
CapsManager* CapsManagerTest::createManager(const QString& jid)
114
manager_ = new CapsManager(jid, ®istry_, querier_);
118
void CapsManagerTest::addContact(const QString& jid, const QString& client,
119
const QString& version, const QStringList& capabilities)
122
i.setFeatures(XMPP::Features(version + "_f1"));
123
querier_->addInfo(jid, client + "#" + version, i);
125
foreach(QString s, capabilities) {
128
f << s + "_f1" << s + "_f2";
129
i2.setFeatures(XMPP::Features(f));
130
querier_->addInfo(jid, client + "#" + s, i2);
135
void CapsManagerTest::testUpdateCaps()
137
QStringList capabilities;
138
capabilities << "c1" << "c2" << "c3";
139
addContact("you@example.com/a", "myclient", "myversion", capabilities);
140
CapsManager* manager = createManager("me@example.com");
142
manager->updateCaps("you@example.com/a", "myclient", "myversion", "c1 c2");
143
XMPP::Features features(manager->features("you@example.com/a"));
145
CPPUNIT_ASSERT_EQUAL(3U, querier_->nb_getdiscoinfo_called_);
146
CPPUNIT_ASSERT(features.test(QStringList("myversion_f1")));
147
CPPUNIT_ASSERT(features.test(QStringList("c1_f1")));
148
CPPUNIT_ASSERT(features.test(QStringList("c1_f2")));
149
CPPUNIT_ASSERT(features.test(QStringList("c2_f1")));
150
CPPUNIT_ASSERT(features.test(QStringList("c2_f2")));
153
void CapsManagerTest::testCapsEnabled()
155
QStringList capabilities;
156
capabilities << "c1" << "c2";
157
addContact("you@example.com/a", "myclient", "myversion", capabilities);
158
CapsManager* manager = createManager("me@example.com");
160
manager->updateCaps("you@example.com/a", "myclient", "myversion", "c1 c2");
162
CPPUNIT_ASSERT(manager->capsEnabled("you@example.com/a"));
165
void CapsManagerTest::testCapsEnabled_NoCaps()
167
CapsManager* manager = createManager("me@example.com/a");
169
CPPUNIT_ASSERT(!manager->capsEnabled("you@example.com/b"));
172
void CapsManagerTest::testDisableCaps()
174
QStringList capabilities;
175
capabilities << "c1" << "c2";
176
addContact("you@example.com/a", "myclient", "myversion", capabilities);
177
CapsManager* manager = createManager("me@example.com");
178
manager->updateCaps("you@example.com/a", "myclient", "myversion", "c1 c2");
180
manager->disableCaps("you@example.com/a");
182
CPPUNIT_ASSERT(!manager->capsEnabled("you@example.com/a"));
148
QTTESTUTIL_REGISTER_TEST(CapsManagerTest);
149
#include "capsmanagertest.moc"