diff options
Diffstat (limited to 'Swiften/Disco')
-rw-r--r-- | Swiften/Disco/CapsInfoGenerator.cpp | 10 | ||||
-rw-r--r-- | Swiften/Disco/CapsInfoGenerator.h | 7 | ||||
-rw-r--r-- | Swiften/Disco/CapsManager.cpp | 6 | ||||
-rw-r--r-- | Swiften/Disco/CapsManager.h | 9 | ||||
-rw-r--r-- | Swiften/Disco/CapsStorage.h | 5 | ||||
-rw-r--r-- | Swiften/Disco/ClientDiscoManager.cpp | 6 | ||||
-rw-r--r-- | Swiften/Disco/ClientDiscoManager.h | 9 | ||||
-rw-r--r-- | Swiften/Disco/DiscoInfoResponder.h | 3 | ||||
-rw-r--r-- | Swiften/Disco/DiscoServiceWalker.cpp | 1 | ||||
-rw-r--r-- | Swiften/Disco/DiscoServiceWalker.h | 6 | ||||
-rw-r--r-- | Swiften/Disco/DummyEntityCapsProvider.h | 3 | ||||
-rw-r--r-- | Swiften/Disco/EntityCapsManager.h | 3 | ||||
-rw-r--r-- | Swiften/Disco/EntityCapsProvider.h | 3 | ||||
-rw-r--r-- | Swiften/Disco/JIDDiscoInfoResponder.h | 3 | ||||
-rw-r--r-- | Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp | 38 | ||||
-rw-r--r-- | Swiften/Disco/UnitTest/CapsManagerTest.cpp | 14 | ||||
-rw-r--r-- | Swiften/Disco/UnitTest/EntityCapsManagerTest.cpp | 13 |
17 files changed, 84 insertions, 55 deletions
diff --git a/Swiften/Disco/CapsInfoGenerator.cpp b/Swiften/Disco/CapsInfoGenerator.cpp index 6d84984..4332f76 100644 --- a/Swiften/Disco/CapsInfoGenerator.cpp +++ b/Swiften/Disco/CapsInfoGenerator.cpp @@ -1,4 +1,4 @@ /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2013 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. @@ -12,5 +12,5 @@ #include <Swiften/Elements/DiscoInfo.h> #include <Swiften/Elements/FormField.h> -#include <Swiften/StringCodecs/SHA1.h> +#include <Swiften/Crypto/CryptoProvider.h> #include <Swiften/StringCodecs/Base64.h> @@ -23,5 +23,5 @@ namespace { namespace Swift { -CapsInfoGenerator::CapsInfoGenerator(const std::string& node) : node_(node) { +CapsInfoGenerator::CapsInfoGenerator(const std::string& node, CryptoProvider* crypto) : node_(node), crypto_(crypto) { } @@ -50,5 +50,5 @@ CapsInfo CapsInfoGenerator::generateCapsInfo(const DiscoInfo& discoInfo) const { } serializedCaps += field->getName() + "<"; - std::vector<std::string> values(field->getRawValues()); + std::vector<std::string> values(field->getValues()); std::sort(values.begin(), values.end()); foreach(const std::string& value, values) { @@ -58,5 +58,5 @@ CapsInfo CapsInfoGenerator::generateCapsInfo(const DiscoInfo& discoInfo) const { } - std::string version(Base64::encode(SHA1::getHash(createByteArray(serializedCaps)))); + std::string version(Base64::encode(crypto_->getSHA1Hash(createByteArray(serializedCaps)))); return CapsInfo(node_, version, "sha-1"); } diff --git a/Swiften/Disco/CapsInfoGenerator.h b/Swiften/Disco/CapsInfoGenerator.h index d1b2663..17a01dd 100644 --- a/Swiften/Disco/CapsInfoGenerator.h +++ b/Swiften/Disco/CapsInfoGenerator.h @@ -8,12 +8,14 @@ #include <string> +#include <Swiften/Base/API.h> #include <Swiften/Elements/CapsInfo.h> namespace Swift { class DiscoInfo; + class CryptoProvider; - class CapsInfoGenerator { + class SWIFTEN_API CapsInfoGenerator { public: - CapsInfoGenerator(const std::string& node); + CapsInfoGenerator(const std::string& node, CryptoProvider* crypto); CapsInfo generateCapsInfo(const DiscoInfo& discoInfo) const; @@ -21,4 +23,5 @@ namespace Swift { private: std::string node_; + CryptoProvider* crypto_; }; } diff --git a/Swiften/Disco/CapsManager.cpp b/Swiften/Disco/CapsManager.cpp index 66eb47e..18f8745 100644 --- a/Swiften/Disco/CapsManager.cpp +++ b/Swiften/Disco/CapsManager.cpp @@ -1,4 +1,4 @@ /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2013 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. @@ -18,5 +18,5 @@ namespace Swift { -CapsManager::CapsManager(CapsStorage* capsStorage, StanzaChannel* stanzaChannel, IQRouter* iqRouter) : iqRouter(iqRouter), capsStorage(capsStorage), warnOnInvalidHash(true) { +CapsManager::CapsManager(CapsStorage* capsStorage, StanzaChannel* stanzaChannel, IQRouter* iqRouter, CryptoProvider* crypto) : iqRouter(iqRouter), crypto(crypto), capsStorage(capsStorage), warnOnInvalidHash(true) { stanzaChannel->onPresenceReceived.connect(boost::bind(&CapsManager::handlePresenceReceived, this, _1)); stanzaChannel->onAvailableChanged.connect(boost::bind(&CapsManager::handleStanzaChannelAvailableChanged, this, _1)); @@ -52,5 +52,5 @@ void CapsManager::handleStanzaChannelAvailableChanged(bool available) { void CapsManager::handleDiscoInfoReceived(const JID& from, const std::string& hash, DiscoInfo::ref discoInfo, ErrorPayload::ref error) { requestedDiscoInfos.erase(hash); - if (error || !discoInfo || CapsInfoGenerator("").generateCapsInfo(*discoInfo.get()).getVersion() != hash) { + if (error || !discoInfo || CapsInfoGenerator("", crypto).generateCapsInfo(*discoInfo.get()).getVersion() != hash) { if (warnOnInvalidHash && !error && discoInfo) { std::cerr << "Warning: Caps from " << from.toString() << " do not verify" << std::endl; diff --git a/Swiften/Disco/CapsManager.h b/Swiften/Disco/CapsManager.h index ddc7997..3529812 100644 --- a/Swiften/Disco/CapsManager.h +++ b/Swiften/Disco/CapsManager.h @@ -1,4 +1,4 @@ /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2013 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. @@ -10,4 +10,5 @@ #include <map> +#include <Swiften/Base/API.h> #include <Swiften/Base/boost_bsignals.h> #include <Swiften/Elements/Presence.h> @@ -22,8 +23,9 @@ namespace Swift { class JID; class CapsStorage; + class CryptoProvider; - class CapsManager : public CapsProvider, public boost::bsignals::trackable { + class SWIFTEN_API CapsManager : public CapsProvider, public boost::bsignals::trackable { public: - CapsManager(CapsStorage*, StanzaChannel*, IQRouter*); + CapsManager(CapsStorage*, StanzaChannel*, IQRouter*, CryptoProvider*); DiscoInfo::ref getCaps(const std::string&) const; @@ -42,4 +44,5 @@ namespace Swift { private: IQRouter* iqRouter; + CryptoProvider* crypto; CapsStorage* capsStorage; bool warnOnInvalidHash; diff --git a/Swiften/Disco/CapsStorage.h b/Swiften/Disco/CapsStorage.h index fb6e442..7420c28 100644 --- a/Swiften/Disco/CapsStorage.h +++ b/Swiften/Disco/CapsStorage.h @@ -10,9 +10,8 @@ #include <Swiften/Elements/DiscoInfo.h> +#include <Swiften/Base/API.h> namespace Swift { - - - class CapsStorage { + class SWIFTEN_API CapsStorage { public: virtual ~CapsStorage(); diff --git a/Swiften/Disco/ClientDiscoManager.cpp b/Swiften/Disco/ClientDiscoManager.cpp index cca0144..f6683a8 100644 --- a/Swiften/Disco/ClientDiscoManager.cpp +++ b/Swiften/Disco/ClientDiscoManager.cpp @@ -1,4 +1,4 @@ /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2013 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. @@ -13,5 +13,5 @@ namespace Swift { -ClientDiscoManager::ClientDiscoManager(IQRouter* iqRouter, PresenceSender* presenceSender) { +ClientDiscoManager::ClientDiscoManager(IQRouter* iqRouter, PresenceSender* presenceSender, CryptoProvider* crypto) : crypto(crypto) { discoInfoResponder = new DiscoInfoResponder(iqRouter); discoInfoResponder->start(); @@ -30,5 +30,5 @@ void ClientDiscoManager::setCapsNode(const std::string& node) { void ClientDiscoManager::setDiscoInfo(const DiscoInfo& discoInfo) { - capsInfo = CapsInfo::ref(new CapsInfo(CapsInfoGenerator(capsNode).generateCapsInfo(discoInfo))); + capsInfo = CapsInfo::ref(new CapsInfo(CapsInfoGenerator(capsNode, crypto).generateCapsInfo(discoInfo))); discoInfoResponder->clearDiscoInfo(); discoInfoResponder->setDiscoInfo(discoInfo); diff --git a/Swiften/Disco/ClientDiscoManager.h b/Swiften/Disco/ClientDiscoManager.h index 6f126eb..a9ed10a 100644 --- a/Swiften/Disco/ClientDiscoManager.h +++ b/Swiften/Disco/ClientDiscoManager.h @@ -1,4 +1,4 @@ /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2013 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. @@ -7,4 +7,5 @@ #pragma once +#include <Swiften/Base/API.h> #include <Swiften/Elements/CapsInfo.h> #include <Swiften/Elements/DiscoInfo.h> @@ -16,4 +17,5 @@ namespace Swift { class PayloadAddingPresenceSender; class PresenceSender; + class CryptoProvider; /** @@ -27,5 +29,5 @@ namespace Swift { * called whenever the capabilities change. */ - class ClientDiscoManager { + class SWIFTEN_API ClientDiscoManager { public: /** @@ -36,5 +38,5 @@ namespace Swift { * (with caps information) will be sent. */ - ClientDiscoManager(IQRouter* iqRouter, PresenceSender* presenceSender); + ClientDiscoManager(IQRouter* iqRouter, PresenceSender* presenceSender, CryptoProvider* crypto); ~ClientDiscoManager(); @@ -68,4 +70,5 @@ namespace Swift { private: PayloadAddingPresenceSender* presenceSender; + CryptoProvider* crypto; DiscoInfoResponder* discoInfoResponder; std::string capsNode; diff --git a/Swiften/Disco/DiscoInfoResponder.h b/Swiften/Disco/DiscoInfoResponder.h index af9f48f..cfe4d06 100644 --- a/Swiften/Disco/DiscoInfoResponder.h +++ b/Swiften/Disco/DiscoInfoResponder.h @@ -9,4 +9,5 @@ #include <map> +#include <Swiften/Base/API.h> #include <Swiften/Queries/GetResponder.h> #include <Swiften/Elements/DiscoInfo.h> @@ -15,5 +16,5 @@ namespace Swift { class IQRouter; - class DiscoInfoResponder : public GetResponder<DiscoInfo> { + class SWIFTEN_API DiscoInfoResponder : public GetResponder<DiscoInfo> { public: DiscoInfoResponder(IQRouter* router); diff --git a/Swiften/Disco/DiscoServiceWalker.cpp b/Swiften/Disco/DiscoServiceWalker.cpp index c8c3e1b..0f27111 100644 --- a/Swiften/Disco/DiscoServiceWalker.cpp +++ b/Swiften/Disco/DiscoServiceWalker.cpp @@ -36,4 +36,5 @@ void DiscoServiceWalker::endWalk() { } active_ = false; + onWalkAborted(); } } diff --git a/Swiften/Disco/DiscoServiceWalker.h b/Swiften/Disco/DiscoServiceWalker.h index fd749fc..ea55a78 100644 --- a/Swiften/Disco/DiscoServiceWalker.h +++ b/Swiften/Disco/DiscoServiceWalker.h @@ -10,4 +10,5 @@ #include <set> +#include <Swiften/Base/API.h> #include <boost/shared_ptr.hpp> #include <Swiften/Base/boost_bsignals.h> @@ -26,5 +27,5 @@ namespace Swift { * This stops on any disco item that's not reporting itself as a server. */ - class DiscoServiceWalker { + class SWIFTEN_API DiscoServiceWalker { public: DiscoServiceWalker(const JID& service, IQRouter* iqRouter, size_t maxSteps = 200); @@ -49,4 +50,7 @@ namespace Swift { boost::signal<void(const JID&, boost::shared_ptr<DiscoInfo>)> onServiceFound; + /** Emitted when walking is aborted. */ + boost::signal<void()> onWalkAborted; + /** Emitted when walking is complete.*/ boost::signal<void()> onWalkComplete; diff --git a/Swiften/Disco/DummyEntityCapsProvider.h b/Swiften/Disco/DummyEntityCapsProvider.h index a1e3db6..713e21a 100644 --- a/Swiften/Disco/DummyEntityCapsProvider.h +++ b/Swiften/Disco/DummyEntityCapsProvider.h @@ -9,8 +9,9 @@ #include <map> +#include <Swiften/Base/API.h> #include <Swiften/Disco/EntityCapsProvider.h> namespace Swift { - class DummyEntityCapsProvider : public EntityCapsProvider { + class SWIFTEN_API DummyEntityCapsProvider : public EntityCapsProvider { public: DummyEntityCapsProvider() { diff --git a/Swiften/Disco/EntityCapsManager.h b/Swiften/Disco/EntityCapsManager.h index e41c15f..4472ba5 100644 --- a/Swiften/Disco/EntityCapsManager.h +++ b/Swiften/Disco/EntityCapsManager.h @@ -9,4 +9,5 @@ #include <map> +#include <Swiften/Base/API.h> #include <Swiften/Base/boost_bsignals.h> #include <Swiften/Elements/Presence.h> @@ -25,5 +26,5 @@ namespace Swift { * information. */ - class EntityCapsManager : public EntityCapsProvider, public boost::bsignals::trackable { + class SWIFTEN_API EntityCapsManager : public EntityCapsProvider, public boost::bsignals::trackable { public: EntityCapsManager(CapsProvider*, StanzaChannel*); diff --git a/Swiften/Disco/EntityCapsProvider.h b/Swiften/Disco/EntityCapsProvider.h index b38992c..54b090b 100644 --- a/Swiften/Disco/EntityCapsProvider.h +++ b/Swiften/Disco/EntityCapsProvider.h @@ -7,4 +7,5 @@ #pragma once +#include <Swiften/Base/API.h> #include <Swiften/Base/boost_bsignals.h> #include <Swiften/JID/JID.h> @@ -17,5 +18,5 @@ namespace Swift { * information. */ - class EntityCapsProvider { + class SWIFTEN_API EntityCapsProvider { public: virtual ~EntityCapsProvider(); diff --git a/Swiften/Disco/JIDDiscoInfoResponder.h b/Swiften/Disco/JIDDiscoInfoResponder.h index ebc1452..df529c6 100644 --- a/Swiften/Disco/JIDDiscoInfoResponder.h +++ b/Swiften/Disco/JIDDiscoInfoResponder.h @@ -9,4 +9,5 @@ #include <map> +#include <Swiften/Base/API.h> #include <Swiften/Queries/GetResponder.h> #include <Swiften/Elements/DiscoInfo.h> @@ -16,5 +17,5 @@ namespace Swift { class IQRouter; - class JIDDiscoInfoResponder : public GetResponder<DiscoInfo> { + class SWIFTEN_API JIDDiscoInfoResponder : public GetResponder<DiscoInfo> { public: JIDDiscoInfoResponder(IQRouter* router); diff --git a/Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp b/Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp index 52fdbaa..67d27c0 100644 --- a/Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp +++ b/Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp @@ -1,4 +1,4 @@ /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2013 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. @@ -10,4 +10,6 @@ #include <Swiften/Elements/DiscoInfo.h> #include <Swiften/Disco/CapsInfoGenerator.h> +#include <Swiften/Crypto/CryptoProvider.h> +#include <Swiften/Crypto/PlatformCryptoProvider.h> using namespace Swift; @@ -20,4 +22,8 @@ class CapsInfoGeneratorTest : public CppUnit::TestFixture { public: + void setUp() { + crypto = boost::shared_ptr<CryptoProvider>(PlatformCryptoProvider::create()); + } + void testGenerate_XEP0115SimpleExample() { DiscoInfo discoInfo; @@ -28,5 +34,5 @@ class CapsInfoGeneratorTest : public CppUnit::TestFixture { discoInfo.addFeature("http://jabber.org/protocol/muc"); - CapsInfoGenerator testling("http://code.google.com/p/exodus"); + CapsInfoGenerator testling("http://code.google.com/p/exodus", crypto.get()); CapsInfo result = testling.generateCapsInfo(discoInfo); @@ -46,38 +52,34 @@ class CapsInfoGeneratorTest : public CppUnit::TestFixture { Form::ref extension(new Form(Form::ResultType)); - FormField::ref field = HiddenFormField::create("urn:xmpp:dataforms:softwareinfo"); + FormField::ref field = boost::make_shared<FormField>(FormField::HiddenType, "urn:xmpp:dataforms:softwareinfo"); field->setName("FORM_TYPE"); extension->addField(field); - std::vector<std::string> ipVersions; - ipVersions.push_back("ipv6"); - ipVersions.push_back("ipv4"); - field = ListMultiFormField::create(ipVersions); - field->addRawValue("ipv6"); - field->addRawValue("ipv4"); + field = boost::make_shared<FormField>(FormField::ListMultiType); + field->addValue("ipv6"); + field->addValue("ipv4"); field->setName("ip_version"); extension->addField(field); - field = TextSingleFormField::create("Psi"); - field->addRawValue("Psi"); + field = boost::make_shared<FormField>(FormField::TextSingleType, "Psi"); field->setName("software"); extension->addField(field); - field = TextSingleFormField::create("0.11"); - field->addRawValue("0.11"); + field = boost::make_shared<FormField>(FormField::TextSingleType, "0.11"); field->setName("software_version"); extension->addField(field); - field = TextSingleFormField::create("Mac"); + field = boost::make_shared<FormField>(FormField::TextSingleType, "Mac"); field->setName("os"); - field->addRawValue("Mac"); extension->addField(field); - field = TextSingleFormField::create("10.5.1"); + field = boost::make_shared<FormField>(FormField::TextSingleType, "10.5.1"); field->setName("os_version"); - field->addRawValue("10.5.1"); extension->addField(field); discoInfo.addExtension(extension); - CapsInfoGenerator testling("http://psi-im.org"); + CapsInfoGenerator testling("http://psi-im.org", crypto.get()); CapsInfo result = testling.generateCapsInfo(discoInfo); CPPUNIT_ASSERT_EQUAL(std::string("q07IKJEyjvHSyhy//CH0CxmKi8w="), result.getVersion()); } + + private: + boost::shared_ptr<CryptoProvider> crypto; }; diff --git a/Swiften/Disco/UnitTest/CapsManagerTest.cpp b/Swiften/Disco/UnitTest/CapsManagerTest.cpp index ca55c48..303fd78 100644 --- a/Swiften/Disco/UnitTest/CapsManagerTest.cpp +++ b/Swiften/Disco/UnitTest/CapsManagerTest.cpp @@ -1,4 +1,4 @@ /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2013 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. @@ -17,4 +17,6 @@ #include <Swiften/Elements/DiscoInfo.h> #include <Swiften/Client/DummyStanzaChannel.h> +#include <Swiften/Crypto/CryptoProvider.h> +#include <Swiften/Crypto/PlatformCryptoProvider.h> using namespace Swift; @@ -42,4 +44,5 @@ class CapsManagerTest : public CppUnit::TestFixture { public: void setUp() { + crypto = boost::shared_ptr<CryptoProvider>(PlatformCryptoProvider::create()); stanzaChannel = new DummyStanzaChannel(); iqRouter = new IQRouter(stanzaChannel); @@ -48,10 +51,10 @@ class CapsManagerTest : public CppUnit::TestFixture { discoInfo1 = boost::make_shared<DiscoInfo>(); discoInfo1->addFeature("http://swift.im/feature1"); - capsInfo1 = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node1.im").generateCapsInfo(*discoInfo1.get())); - capsInfo1alt = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node2.im").generateCapsInfo(*discoInfo1.get())); + capsInfo1 = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node1.im", crypto.get()).generateCapsInfo(*discoInfo1.get())); + capsInfo1alt = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node2.im", crypto.get()).generateCapsInfo(*discoInfo1.get())); user2 = JID("user2@foo.com/baz"); discoInfo2 = boost::make_shared<DiscoInfo>(); discoInfo2->addFeature("http://swift.im/feature2"); - capsInfo2 = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node2.im").generateCapsInfo(*discoInfo2.get())); + capsInfo2 = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node2.im", crypto.get()).generateCapsInfo(*discoInfo2.get())); user3 = JID("user3@foo.com/baz"); legacyCapsInfo = boost::make_shared<CapsInfo>("http://swift.im", "ver1", ""); @@ -247,5 +250,5 @@ class CapsManagerTest : public CppUnit::TestFixture { private: boost::shared_ptr<CapsManager> createManager() { - boost::shared_ptr<CapsManager> manager(new CapsManager(storage, stanzaChannel, iqRouter)); + boost::shared_ptr<CapsManager> manager(new CapsManager(storage, stanzaChannel, iqRouter, crypto.get())); manager->setWarnOnInvalidHash(false); //manager->onCapsChanged.connect(boost::bind(&CapsManagerTest::handleCapsChanged, this, _1)); @@ -282,4 +285,5 @@ class CapsManagerTest : public CppUnit::TestFixture { boost::shared_ptr<CapsInfo> legacyCapsInfo; JID user3; + boost::shared_ptr<CryptoProvider> crypto; }; diff --git a/Swiften/Disco/UnitTest/EntityCapsManagerTest.cpp b/Swiften/Disco/UnitTest/EntityCapsManagerTest.cpp index 0fd966d..940f043 100644 --- a/Swiften/Disco/UnitTest/EntityCapsManagerTest.cpp +++ b/Swiften/Disco/UnitTest/EntityCapsManagerTest.cpp @@ -1,4 +1,4 @@ /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2013 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. @@ -15,4 +15,6 @@ #include <Swiften/Client/DummyStanzaChannel.h> #include <Swiften/Disco/CapsInfoGenerator.h> +#include <Swiften/Crypto/CryptoProvider.h> +#include <Swiften/Crypto/PlatformCryptoProvider.h> using namespace Swift; @@ -31,4 +33,6 @@ class EntityCapsManagerTest : public CppUnit::TestFixture { public: void setUp() { + crypto = boost::shared_ptr<CryptoProvider>(PlatformCryptoProvider::create()); + stanzaChannel = new DummyStanzaChannel(); capsProvider = new DummyCapsProvider(); @@ -37,10 +41,10 @@ class EntityCapsManagerTest : public CppUnit::TestFixture { discoInfo1 = boost::make_shared<DiscoInfo>(); discoInfo1->addFeature("http://swift.im/feature1"); - capsInfo1 = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node1.im").generateCapsInfo(*discoInfo1.get())); - capsInfo1alt = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node2.im").generateCapsInfo(*discoInfo1.get())); + capsInfo1 = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node1.im", crypto.get()).generateCapsInfo(*discoInfo1.get())); + capsInfo1alt = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node2.im", crypto.get()).generateCapsInfo(*discoInfo1.get())); user2 = JID("user2@foo.com/baz"); discoInfo2 = boost::make_shared<DiscoInfo>(); discoInfo2->addFeature("http://swift.im/feature2"); - capsInfo2 = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node2.im").generateCapsInfo(*discoInfo2.get())); + capsInfo2 = boost::make_shared<CapsInfo>(CapsInfoGenerator("http://node2.im", crypto.get()).generateCapsInfo(*discoInfo2.get())); user3 = JID("user3@foo.com/baz"); legacyCapsInfo = boost::make_shared<CapsInfo>("http://swift.im", "ver1", ""); @@ -184,4 +188,5 @@ class EntityCapsManagerTest : public CppUnit::TestFixture { JID user3; std::vector<JID> changes; + boost::shared_ptr<CryptoProvider> crypto; }; |