diff options
Diffstat (limited to 'Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp')
| -rw-r--r-- | Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp b/Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp index ce100ee..5a98a0e 100644 --- a/Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp +++ b/Swiften/Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp | |||
| @@ -25,10 +25,11 @@ class VCardUpdateAvatarManagerTest : public CppUnit::TestFixture { | |||
| 25 | CPPUNIT_TEST_SUITE(VCardUpdateAvatarManagerTest); | 25 | CPPUNIT_TEST_SUITE(VCardUpdateAvatarManagerTest); |
| 26 | CPPUNIT_TEST(testUpdate_NewHashNewVCardRequestsVCard); | 26 | CPPUNIT_TEST(testUpdate_NewHashNewVCardRequestsVCard); |
| 27 | CPPUNIT_TEST(testUpdate_NewHashStoresAvatarAndEmitsNotificationOnVCardReceive); | 27 | CPPUNIT_TEST(testUpdate_NewHashStoresAvatarAndEmitsNotificationOnVCardReceive); |
| 28 | CPPUNIT_TEST(testUpdate_KnownHash); | 28 | CPPUNIT_TEST(testUpdate_KnownHash); |
| 29 | CPPUNIT_TEST(testUpdate_KnownHashFromDifferentUserDoesNotRequestVCardButTriggersNotification); | 29 | CPPUNIT_TEST(testUpdate_KnownHashFromDifferentUserDoesNotRequestVCardButTriggersNotification); |
| 30 | CPPUNIT_TEST(testVCardWithEmptyPhoto); | ||
| 30 | CPPUNIT_TEST(testStanzaChannelReset); | 31 | CPPUNIT_TEST(testStanzaChannelReset); |
| 31 | CPPUNIT_TEST_SUITE_END(); | 32 | CPPUNIT_TEST_SUITE_END(); |
| 32 | 33 | ||
| 33 | public: | 34 | public: |
| 34 | void setUp() { | 35 | void setUp() { |
| @@ -101,10 +102,19 @@ class VCardUpdateAvatarManagerTest : public CppUnit::TestFixture { | |||
| 101 | CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(changes.size())); | 102 | CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(changes.size())); |
| 102 | CPPUNIT_ASSERT_EQUAL(user2.toBare(), changes[0].first); | 103 | CPPUNIT_ASSERT_EQUAL(user2.toBare(), changes[0].first); |
| 103 | CPPUNIT_ASSERT_EQUAL(avatar1Hash, changes[0].second); | 104 | CPPUNIT_ASSERT_EQUAL(avatar1Hash, changes[0].second); |
| 104 | } | 105 | } |
| 105 | 106 | ||
| 107 | void testVCardWithEmptyPhoto() { | ||
| 108 | std::auto_ptr<VCardUpdateAvatarManager> testling = createManager(); | ||
| 109 | vcardManager->requestVCard(JID("foo@bar.com")); | ||
| 110 | stanzaChannel->onIQReceived(createVCardResult(ByteArray())); | ||
| 111 | |||
| 112 | CPPUNIT_ASSERT(!avatarStorage->hasAvatar(Hexify::hexify(SHA1::getHash(ByteArray())))); | ||
| 113 | CPPUNIT_ASSERT_EQUAL(boost::filesystem::path(), testling->getAvatarPath(JID("foo@bar.com"))); | ||
| 114 | } | ||
| 115 | |||
| 106 | void testStanzaChannelReset() { | 116 | void testStanzaChannelReset() { |
| 107 | std::auto_ptr<VCardUpdateAvatarManager> testling = createManager(); | 117 | std::auto_ptr<VCardUpdateAvatarManager> testling = createManager(); |
| 108 | stanzaChannel->onPresenceReceived(createPresenceWithPhotoHash(user1, avatar1Hash)); | 118 | stanzaChannel->onPresenceReceived(createPresenceWithPhotoHash(user1, avatar1Hash)); |
| 109 | stanzaChannel->onIQReceived(createVCardResult(avatar1)); | 119 | stanzaChannel->onIQReceived(createVCardResult(avatar1)); |
| 110 | changes.clear(); | 120 | changes.clear(); |
| @@ -133,11 +143,13 @@ class VCardUpdateAvatarManagerTest : public CppUnit::TestFixture { | |||
| 133 | return presence; | 143 | return presence; |
| 134 | } | 144 | } |
| 135 | 145 | ||
| 136 | IQ::ref createVCardResult(const ByteArray& avatar) { | 146 | IQ::ref createVCardResult(const ByteArray& avatar) { |
| 137 | VCard::ref vcard(new VCard()); | 147 | VCard::ref vcard(new VCard()); |
| 138 | vcard->setPhoto(avatar); | 148 | if (!avatar.isEmpty()) { |
| 149 | vcard->setPhoto(avatar); | ||
| 150 | } | ||
| 139 | return IQ::createResult(JID("baz@fum.com"), stanzaChannel->sentStanzas[0]->getID(), vcard); | 151 | return IQ::createResult(JID("baz@fum.com"), stanzaChannel->sentStanzas[0]->getID(), vcard); |
| 140 | } | 152 | } |
| 141 | 153 | ||
| 142 | void handleAvatarChanged(const JID& jid, const String& hash) { | 154 | void handleAvatarChanged(const JID& jid, const String& hash) { |
| 143 | changes.push_back(std::pair<JID,String>(jid, hash)); | 155 | changes.push_back(std::pair<JID,String>(jid, hash)); |
Swift