diff options
Diffstat (limited to 'Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp')
| -rw-r--r-- | Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp | 20 | 
1 files changed, 15 insertions, 5 deletions
| diff --git a/Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp b/Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp index 01b10a2..c29a763 100644 --- a/Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp +++ b/Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp @@ -72,19 +72,21 @@ class VCardUpdateAvatarManagerTest : public CppUnit::TestFixture {  		}  		void testUpdate_NewHashStoresAvatarAndEmitsNotificationOnVCardReceive() {  			boost::shared_ptr<VCardUpdateAvatarManager> testling = createManager();  			stanzaChannel->onPresenceReceived(createPresenceWithPhotoHash(user1, avatar1Hash));  			stanzaChannel->onIQReceived(createVCardResult(avatar1));  			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(changes.size()));  			CPPUNIT_ASSERT_EQUAL(user1.toBare(), changes[0]); -			CPPUNIT_ASSERT_EQUAL(avatar1Hash, testling->getAvatarHash(user1.toBare())); +			boost::optional<std::string> hash = testling->getAvatarHash(user1.toBare()); +			CPPUNIT_ASSERT(hash); +			CPPUNIT_ASSERT_EQUAL(avatar1Hash, *hash);  			CPPUNIT_ASSERT(avatarStorage->hasAvatar(avatar1Hash));  			CPPUNIT_ASSERT_EQUAL(avatar1, avatarStorage->getAvatar(avatar1Hash));  		}  		void testUpdate_KnownHash() {  			boost::shared_ptr<VCardUpdateAvatarManager> testling = createManager();  			stanzaChannel->onPresenceReceived(createPresenceWithPhotoHash(user1, avatar1Hash));  			stanzaChannel->onIQReceived(createVCardResult(avatar1));  			changes.clear(); @@ -102,59 +104,67 @@ class VCardUpdateAvatarManagerTest : public CppUnit::TestFixture {  			stanzaChannel->onIQReceived(createVCardResult(avatar1));  			changes.clear();  			stanzaChannel->sentStanzas.clear();  			stanzaChannel->onPresenceReceived(createPresenceWithPhotoHash(user2, avatar1Hash));  			CPPUNIT_ASSERT_EQUAL(0, static_cast<int>(stanzaChannel->sentStanzas.size()));  			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(changes.size()));  			CPPUNIT_ASSERT_EQUAL(user2.toBare(), changes[0]); -			CPPUNIT_ASSERT_EQUAL(avatar1Hash, testling->getAvatarHash(user2.toBare())); +			boost::optional<std::string> hash = testling->getAvatarHash(user2.toBare()); +			CPPUNIT_ASSERT(hash); +			CPPUNIT_ASSERT_EQUAL(avatar1Hash, *hash);  		}  		void testVCardWithEmptyPhoto() {  			boost::shared_ptr<VCardUpdateAvatarManager> testling = createManager();  			vcardManager->requestVCard(JID("foo@bar.com"));  			stanzaChannel->onIQReceived(createVCardResult(ByteArray()));  			CPPUNIT_ASSERT(!avatarStorage->hasAvatar(Hexify::hexify(crypto->getSHA1Hash(ByteArray())))); -			CPPUNIT_ASSERT_EQUAL(std::string(), testling->getAvatarHash(JID("foo@bar.com"))); +			boost::optional<std::string> hash = testling->getAvatarHash(JID("foo@bar.com")); +			CPPUNIT_ASSERT(hash); +			CPPUNIT_ASSERT_EQUAL(std::string(), *hash);  		}  		void testStanzaChannelReset_ClearsHash() {  			boost::shared_ptr<VCardUpdateAvatarManager> testling = createManager();  			stanzaChannel->onPresenceReceived(createPresenceWithPhotoHash(user1, avatar1Hash));  			stanzaChannel->onIQReceived(createVCardResult(avatar1));  			changes.clear();  			stanzaChannel->sentStanzas.clear();  			stanzaChannel->setAvailable(false);  			stanzaChannel->setAvailable(true);  			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(changes.size()));  			CPPUNIT_ASSERT_EQUAL(user1.toBare(), changes[0]); -			CPPUNIT_ASSERT_EQUAL(std::string(""), testling->getAvatarHash(user1.toBare())); +			boost::optional<std::string> hash = testling->getAvatarHash(user1.toBare()); +			CPPUNIT_ASSERT(!hash); +			//CPPUNIT_ASSERT_EQUAL(std::string(""), *hash);  		}  		void testStanzaChannelReset_ReceiveHashAfterResetUpdatesHash() {  			boost::shared_ptr<VCardUpdateAvatarManager> testling = createManager();  			stanzaChannel->onPresenceReceived(createPresenceWithPhotoHash(user1, avatar1Hash));  			stanzaChannel->onIQReceived(createVCardResult(avatar1));  			changes.clear();  			stanzaChannel->sentStanzas.clear();  			stanzaChannel->setAvailable(false);  			stanzaChannel->setAvailable(true);  			stanzaChannel->onPresenceReceived(createPresenceWithPhotoHash(user1, avatar1Hash));  			CPPUNIT_ASSERT_EQUAL(2, static_cast<int>(changes.size()));  			CPPUNIT_ASSERT_EQUAL(user1.toBare(), changes[1]); -			CPPUNIT_ASSERT_EQUAL(avatar1Hash, testling->getAvatarHash(user1.toBare())); +			boost::optional<std::string> hash = testling->getAvatarHash(user1.toBare()); +			CPPUNIT_ASSERT(hash); +			CPPUNIT_ASSERT_EQUAL(avatar1Hash, *hash);  		}  	private:  		boost::shared_ptr<VCardUpdateAvatarManager> createManager() {  			boost::shared_ptr<VCardUpdateAvatarManager> result(new VCardUpdateAvatarManager(vcardManager, stanzaChannel, avatarStorage, crypto.get(), mucRegistry));  			result->onAvatarChanged.connect(boost::bind(&VCardUpdateAvatarManagerTest::handleAvatarChanged, this, _1));  			return result;  		} | 
 Swift
 Swift