summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Avatars/UnitTest/VCardAvatarManagerTest.cpp')
-rw-r--r--Swiften/Avatars/UnitTest/VCardAvatarManagerTest.cpp81
1 files changed, 27 insertions, 54 deletions
diff --git a/Swiften/Avatars/UnitTest/VCardAvatarManagerTest.cpp b/Swiften/Avatars/UnitTest/VCardAvatarManagerTest.cpp
index 81dc12c..778b001 100644
--- a/Swiften/Avatars/UnitTest/VCardAvatarManagerTest.cpp
+++ b/Swiften/Avatars/UnitTest/VCardAvatarManagerTest.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.
@@ -14,11 +14,12 @@
#include <Swiften/Elements/VCard.h>
#include <Swiften/Avatars/VCardAvatarManager.h>
+#include <Swiften/VCards/VCardMemoryStorage.h>
#include <Swiften/Avatars/AvatarMemoryStorage.h>
#include <Swiften/VCards/VCardManager.h>
-#include <Swiften/VCards/VCardStorage.h>
#include <Swiften/MUC/MUCRegistry.h>
#include <Swiften/Queries/IQRouter.h>
#include <Swiften/Client/DummyStanzaChannel.h>
-#include <Swiften/StringCodecs/SHA1.h>
+#include <Swiften/Crypto/CryptoProvider.h>
+#include <Swiften/Crypto/PlatformCryptoProvider.h>
#include <Swiften/StringCodecs/Hexify.h>
@@ -36,41 +37,6 @@ class VCardAvatarManagerTest : public CppUnit::TestFixture {
public:
- class TestVCardStorage : public VCardStorage {
- public:
- virtual VCard::ref getVCard(const JID& jid) const {
- VCardMap::const_iterator i = vcards.find(jid);
- if (i != vcards.end()) {
- return i->second;
- }
- else {
- return VCard::ref();
- }
- }
-
- virtual void setVCard(const JID& jid, VCard::ref v) {
- vcards[jid] = v;
- }
-
- std::string getPhotoHash(const JID& jid) const {
- if (photoHashes.find(jid) != photoHashes.end()) {
- return photoHashes.find(jid)->second;
- }
- VCard::ref vCard = getVCard(jid);
- if (vCard && !vCard->getPhoto().empty()) {
- return Hexify::hexify(SHA1::getHash(vCard->getPhoto()));
- }
- else {
- return "";
- }
- }
-
- std::map<JID, std::string> photoHashes;
-
- private:
- typedef std::map<JID, VCard::ref> VCardMap;
- VCardMap vcards;
- };
-
void setUp() {
+ crypto = boost::shared_ptr<CryptoProvider>(PlatformCryptoProvider::create());
ownJID = JID("foo@fum.com/bum");
stanzaChannel = new DummyStanzaChannel();
@@ -79,8 +45,8 @@ class VCardAvatarManagerTest : public CppUnit::TestFixture {
mucRegistry = new DummyMUCRegistry();
avatarStorage = new AvatarMemoryStorage();
- vcardStorage = new TestVCardStorage();
+ vcardStorage = new VCardMemoryStorage(crypto.get());
vcardManager = new VCardManager(ownJID, iqRouter, vcardStorage);
avatar1 = createByteArray("abcdefg");
- avatar1Hash = Hexify::hexify(SHA1::getHash(avatar1));
+ avatar1Hash = Hexify::hexify(crypto->getSHA1Hash(avatar1));
user1 = JID("user1@bar.com/bla");
user2 = JID("user2@foo.com/baz");
@@ -101,7 +67,8 @@ class VCardAvatarManagerTest : public CppUnit::TestFixture {
avatarStorage->addAvatar(avatar1Hash, avatar1);
- std::string result = testling->getAvatarHash(user1);
+ boost::optional<std::string> result = testling->getAvatarHash(user1);
- CPPUNIT_ASSERT_EQUAL(avatar1Hash, result);
+ CPPUNIT_ASSERT(result);
+ CPPUNIT_ASSERT_EQUAL(avatar1Hash, *result);
}
@@ -110,7 +77,8 @@ class VCardAvatarManagerTest : public CppUnit::TestFixture {
storeEmptyVCard(user1.toBare());
- std::string result = testling->getAvatarHash(user1);
+ boost::optional<std::string> result = testling->getAvatarHash(user1);
- CPPUNIT_ASSERT_EQUAL(std::string(), result);
+ CPPUNIT_ASSERT(result);
+ CPPUNIT_ASSERT_EQUAL(std::string(), *result);
}
@@ -119,7 +87,8 @@ class VCardAvatarManagerTest : public CppUnit::TestFixture {
storeVCardWithPhoto(user1.toBare(), avatar1);
- std::string result = testling->getAvatarHash(user1);
+ boost::optional<std::string> result = testling->getAvatarHash(user1);
- CPPUNIT_ASSERT_EQUAL(avatar1Hash, result);
+ CPPUNIT_ASSERT(result);
+ CPPUNIT_ASSERT_EQUAL(avatar1Hash, *result);
CPPUNIT_ASSERT(avatarStorage->hasAvatar(avatar1Hash));
CPPUNIT_ASSERT_EQUAL(avatar1, avatarStorage->getAvatar(avatar1Hash));
@@ -129,16 +98,19 @@ class VCardAvatarManagerTest : public CppUnit::TestFixture {
boost::shared_ptr<VCardAvatarManager> testling = createManager();
- std::string result = testling->getAvatarHash(user1);
+ boost::optional<std::string> result = testling->getAvatarHash(user1);
- CPPUNIT_ASSERT_EQUAL(std::string(), result);
+ CPPUNIT_ASSERT(result);
+ CPPUNIT_ASSERT_EQUAL(std::string(), *result);
}
void testGetAvatarHashKnownAvatarUnknownVCard() {
boost::shared_ptr<VCardAvatarManager> testling = createManager();
- vcardStorage->photoHashes[user1.toBare()] = avatar1Hash;
- std::string result = testling->getAvatarHash(user1);
+ avatarStorage->setAvatarForJID(user1, avatar1Hash);
+
+ boost::optional<std::string> result = testling->getAvatarHash(user1);
- CPPUNIT_ASSERT_EQUAL(std::string(), result);
+ CPPUNIT_ASSERT(result);
+ CPPUNIT_ASSERT_EQUAL(std::string(), *result);
}
@@ -154,5 +126,5 @@ class VCardAvatarManagerTest : public CppUnit::TestFixture {
private:
boost::shared_ptr<VCardAvatarManager> createManager() {
- boost::shared_ptr<VCardAvatarManager> result(new VCardAvatarManager(vcardManager, avatarStorage, mucRegistry));
+ boost::shared_ptr<VCardAvatarManager> result(new VCardAvatarManager(vcardManager, avatarStorage, crypto.get(), mucRegistry));
result->onAvatarChanged.connect(boost::bind(&VCardAvatarManagerTest::handleAvatarChanged, this, _1));
return result;
@@ -192,5 +164,5 @@ class VCardAvatarManagerTest : public CppUnit::TestFixture {
AvatarMemoryStorage* avatarStorage;
VCardManager* vcardManager;
- TestVCardStorage* vcardStorage;
+ VCardMemoryStorage* vcardStorage;
ByteArray avatar1;
std::string avatar1Hash;
@@ -198,4 +170,5 @@ class VCardAvatarManagerTest : public CppUnit::TestFixture {
JID user1;
JID user2;
+ boost::shared_ptr<CryptoProvider> crypto;
};