summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Disco')
-rw-r--r--Swiften/Disco/CapsInfoGenerator.cpp10
-rw-r--r--Swiften/Disco/CapsInfoGenerator.h7
-rw-r--r--Swiften/Disco/CapsManager.cpp6
-rw-r--r--Swiften/Disco/CapsManager.h9
-rw-r--r--Swiften/Disco/CapsStorage.h5
-rw-r--r--Swiften/Disco/ClientDiscoManager.cpp6
-rw-r--r--Swiften/Disco/ClientDiscoManager.h9
-rw-r--r--Swiften/Disco/DiscoInfoResponder.h3
-rw-r--r--Swiften/Disco/DiscoServiceWalker.cpp1
-rw-r--r--Swiften/Disco/DiscoServiceWalker.h6
-rw-r--r--Swiften/Disco/DummyEntityCapsProvider.h3
-rw-r--r--Swiften/Disco/EntityCapsManager.h3
-rw-r--r--Swiften/Disco/EntityCapsProvider.h3
-rw-r--r--Swiften/Disco/JIDDiscoInfoResponder.h3
-rw-r--r--Swiften/Disco/UnitTest/CapsInfoGeneratorTest.cpp38
-rw-r--r--Swiften/Disco/UnitTest/CapsManagerTest.cpp14
-rw-r--r--Swiften/Disco/UnitTest/EntityCapsManagerTest.cpp13
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;
};