aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-10-11 11:50:16 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-10-11 11:50:16 +0000
commit7e66378dc28da241e633ffb4ee4ece7afe1ee1ce (patch)
tree12cf9d0477e46f60964a367109c30bc5f09ba089
parentd0738485bbcb2de6fd0e78f90437ac6aa27113e7 (diff)
downloadqxmpp-7e66378dc28da241e633ffb4ee4ece7afe1ee1ce.tar.gz
encode / decode presence photo hash to / from base64
-rw-r--r--src/QXmppPresence.cpp6
-rw-r--r--tests/tests.cpp8
2 files changed, 7 insertions, 7 deletions
diff --git a/src/QXmppPresence.cpp b/src/QXmppPresence.cpp
index f6e58b6f..00746fdd 100644
--- a/src/QXmppPresence.cpp
+++ b/src/QXmppPresence.cpp
@@ -84,7 +84,7 @@ void QXmppPresence::parse(const QDomElement &element)
QDomElement photoElement = xElement.firstChildElement("photo");
if(!photoElement.isNull())
{
- m_photoHash = photoElement.text().toUtf8();
+ m_photoHash = QByteArray::fromBase64(photoElement.text().toAscii());
if(m_photoHash.isEmpty())
m_vCardUpdateType = PhotoNotAdvertized;
else
@@ -92,7 +92,7 @@ void QXmppPresence::parse(const QDomElement &element)
}
else
{
- m_photoHash = "";
+ m_photoHash = QByteArray();
m_vCardUpdateType = PhotoNotReady;
}
}
@@ -149,7 +149,7 @@ void QXmppPresence::toXml(QXmlStreamWriter *xmlWriter) const
helperToXmlAddTextElement(xmlWriter, "photo", "");
break;
case PhotoAdvertised:
- helperToXmlAddTextElement(xmlWriter, "photo", m_photoHash);
+ helperToXmlAddTextElement(xmlWriter, "photo", m_photoHash.toBase64());
break;
case PhotoNotReady:
break;
diff --git a/tests/tests.cpp b/tests/tests.cpp
index 67217a81..3270a81f 100644
--- a/tests/tests.cpp
+++ b/tests/tests.cpp
@@ -437,7 +437,7 @@ void TestPackets::testPresenceWithVCardUpdate()
"<status>In a meeting</status>"
"<priority>5</priority>"
"<x xmlns=\"vcard-temp:x:update\">"
- "<photo>sha1-hash-of-image</photo>"
+ "<photo>Ve0tKBkyTOPyZrekN6VJl6ZZZfQ=</photo>"
"</x>"
"</presence>");
@@ -448,7 +448,7 @@ void TestPackets::testPresenceWithVCardUpdate()
QCOMPARE(presence.status().type(), QXmppPresence::Status::Away);
QCOMPARE(presence.status().statusText(), QString("In a meeting"));
QCOMPARE(presence.status().priority(), 5);
- QCOMPARE(presence.photoHash(), QByteArray("sha1-hash-of-image"));
+ QCOMPARE(presence.photoHash(), QByteArray::fromBase64("Ve0tKBkyTOPyZrekN6VJl6ZZZfQ="));
QCOMPARE(presence.vCardUpdateType(), QXmppPresence::PhotoAdvertised);
serializePacket(presence, xml);
}
@@ -461,7 +461,7 @@ void TestPackets::testPresenceWithCapability()
"<status>In a meeting</status>"
"<priority>5</priority>"
"<x xmlns=\"vcard-temp:x:update\">"
- "<photo>sha1-hash-of-image</photo>"
+ "<photo>Ve0tKBkyTOPyZrekN6VJl6ZZZfQ=</photo>"
"</x>"
"<c xmlns=\"http://jabber.org/protocol/caps\" hash=\"sha-1\" node=\"http://code.google.com/p/qxmpp\" ver=\"QgayPKawpkPSDYmwT/WM94uAlu0=\"/>"
"</presence>");
@@ -473,7 +473,7 @@ void TestPackets::testPresenceWithCapability()
QCOMPARE(presence.status().type(), QXmppPresence::Status::Away);
QCOMPARE(presence.status().statusText(), QString("In a meeting"));
QCOMPARE(presence.status().priority(), 5);
- QCOMPARE(presence.photoHash(), QByteArray("sha1-hash-of-image"));
+ QCOMPARE(presence.photoHash(), QByteArray::fromBase64("Ve0tKBkyTOPyZrekN6VJl6ZZZfQ="));
QCOMPARE(presence.vCardUpdateType(), QXmppPresence::PhotoAdvertised);
QCOMPARE(presence.capabilityHash(), QString("sha-1"));
QCOMPARE(presence.capabilityNode(), QString("http://code.google.com/p/qxmpp"));