diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-09-14 16:17:30 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-09-14 19:48:53 (GMT) |
commit | ef5a4dc3a5b0224628a225ef0dccc679287478be (patch) | |
tree | 126d8f752f18d3d5891cd32cacf2a21734ab0b92 /Swiften/Disco/UnitTest | |
parent | 9ecba612d790c1f613dc959888f62e5d3575faae (diff) | |
download | swift-contrib-ef5a4dc3a5b0224628a225ef0dccc679287478be.zip swift-contrib-ef5a4dc3a5b0224628a225ef0dccc679287478be.tar.bz2 |
Add extended disco support to caps verifier.
Diffstat (limited to 'Swiften/Disco/UnitTest')
-rw-r--r-- | Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp b/Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp index a8fe5b7..aec3a92 100644 --- a/Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp +++ b/Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp @@ -12,15 +12,13 @@ using namespace Swift; -class CapsInfoGeneratorTest : public CppUnit::TestFixture -{ +class CapsInfoGeneratorTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(CapsInfoGeneratorTest); CPPUNIT_TEST(testGenerate_XEP0115SimpleExample); + CPPUNIT_TEST(testGenerate_XEP0115ComplexExample); CPPUNIT_TEST_SUITE_END(); public: - CapsInfoGeneratorTest() {} - void testGenerate_XEP0115SimpleExample() { DiscoInfo discoInfo; discoInfo.addIdentity(DiscoInfo::Identity("Exodus 0.9.1", "client", "pc")); @@ -36,6 +34,51 @@ class CapsInfoGeneratorTest : public CppUnit::TestFixture CPPUNIT_ASSERT_EQUAL(String("sha-1"), result.getHash()); CPPUNIT_ASSERT_EQUAL(String("QgayPKawpkPSDYmwT/WM94uAlu0="), result.getVersion()); } + + void testGenerate_XEP0115ComplexExample() { + DiscoInfo discoInfo; + discoInfo.addIdentity(DiscoInfo::Identity("Psi 0.11", "client", "pc", "en")); + discoInfo.addIdentity(DiscoInfo::Identity("\xce\xa8 0.11", "client", "pc", "el")); + discoInfo.addFeature("http://jabber.org/protocol/disco#items"); + discoInfo.addFeature("http://jabber.org/protocol/caps"); + discoInfo.addFeature("http://jabber.org/protocol/disco#info"); + discoInfo.addFeature("http://jabber.org/protocol/muc"); + + Form::ref extension(new Form(Form::ResultType)); + FormField::ref field = HiddenFormField::create("urn:xmpp:dataforms:softwareinfo"); + field->setName("FORM_TYPE"); + extension->addField(field); + std::vector<String> ipVersions; + ipVersions.push_back("ipv6"); + ipVersions.push_back("ipv4"); + field = ListMultiFormField::create(ipVersions); + field->addRawValue("ipv6"); + field->addRawValue("ipv4"); + field->setName("ip_version"); + extension->addField(field); + field = TextSingleFormField::create("Psi"); + field->addRawValue("Psi"); + field->setName("software"); + extension->addField(field); + field = TextSingleFormField::create("0.11"); + field->addRawValue("0.11"); + field->setName("software_version"); + extension->addField(field); + field = TextSingleFormField::create("Mac"); + field->setName("os"); + field->addRawValue("Mac"); + extension->addField(field); + field = TextSingleFormField::create("10.5.1"); + field->setName("os_version"); + field->addRawValue("10.5.1"); + extension->addField(field); + discoInfo.addExtension(extension); + + CapsInfoGenerator testling("http://psi-im.org"); + CapsInfo result = testling.generateCapsInfo(discoInfo); + + CPPUNIT_ASSERT_EQUAL(String("q07IKJEyjvHSyhy//CH0CxmKi8w="), result.getVersion()); + } }; CPPUNIT_TEST_SUITE_REGISTRATION(CapsInfoGeneratorTest); |