From 5d8e309f46a825fa254bda56fae743ff80cbfe2a Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 31 Jul 2015 13:11:36 +0200 Subject: fix reading/writing phone numbers in vCard (closes #65) The phone numbers were incorrectly read from / written to vCard as a "PHONE" element instead of "TEL". --- CHANGELOG | 6 ++++++ src/base/QXmppVCardIq.cpp | 4 ++-- tests/qxmppvcardiq/tst_qxmppvcardiq.cpp | 32 ++++++++++++++++---------------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index f6143698..60a48efe 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +QXmpp 0.8.4 (UNRELEASED) +------------------------ + + - Fix phone numbers incorrectly read from / written to vCard as "PHONE" + element instead of "TEL" (issue 65). + QXmpp 0.8.3 (Mar 13, 2015) -------------------------- diff --git a/src/base/QXmppVCardIq.cpp b/src/base/QXmppVCardIq.cpp index 4a237200..448a97ca 100644 --- a/src/base/QXmppVCardIq.cpp +++ b/src/base/QXmppVCardIq.cpp @@ -457,7 +457,7 @@ void QXmppVCardPhone::parse(const QDomElement &element) void QXmppVCardPhone::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("PHONE"); + writer->writeStartElement("TEL"); if (d->type & Home) writer->writeEmptyElement("HOME"); if (d->type & Work) @@ -994,7 +994,7 @@ void QXmppVCardIq::parseElementFromChild(const QDomElement& nodeRecv) QXmppVCardEmail email; email.parse(child); d->emails << email; - } else if (child.tagName() == "PHONE") { + } else if (child.tagName() == "TEL") { QXmppVCardPhone phone; phone.parse(child); d->phones << phone; diff --git a/tests/qxmppvcardiq/tst_qxmppvcardiq.cpp b/tests/qxmppvcardiq/tst_qxmppvcardiq.cpp index 5d12c1d1..c070c3be 100644 --- a/tests/qxmppvcardiq/tst_qxmppvcardiq.cpp +++ b/tests/qxmppvcardiq/tst_qxmppvcardiq.cpp @@ -124,20 +124,20 @@ void tst_QXmppVCardIq::testPhone_data() QTest::addColumn("xml"); QTest::addColumn("type"); - QTest::newRow("none") << QByteArray("12345") << int(QXmppVCardPhone::None); - QTest::newRow("HOME") << QByteArray("12345") << int(QXmppVCardPhone::Home); - QTest::newRow("WORK") << QByteArray("12345") << int(QXmppVCardPhone::Work); - QTest::newRow("VOICE") << QByteArray("12345") << int(QXmppVCardPhone::Voice); - QTest::newRow("FAX") << QByteArray("12345") << int(QXmppVCardPhone::Fax); - QTest::newRow("PAGER") << QByteArray("12345") << int(QXmppVCardPhone::Pager); - QTest::newRow("MSG") << QByteArray("12345") << int(QXmppVCardPhone::Messaging); - QTest::newRow("CELL") << QByteArray("12345") << int(QXmppVCardPhone::Cell); - QTest::newRow("VIDEO") << QByteArray("") << int(QXmppVCardPhone::Video); - QTest::newRow("BBS") << QByteArray("12345") << int(QXmppVCardPhone::BBS); - QTest::newRow("MODEM") << QByteArray("12345") << int(QXmppVCardPhone::Modem); - QTest::newRow("IDSN") << QByteArray("12345") << int(QXmppVCardPhone::ISDN); - QTest::newRow("PCS") << QByteArray("12345") << int(QXmppVCardPhone::PCS); - QTest::newRow("PREF") << QByteArray("12345") << int(QXmppVCardPhone::Preferred); + QTest::newRow("none") << QByteArray("12345") << int(QXmppVCardPhone::None); + QTest::newRow("HOME") << QByteArray("12345") << int(QXmppVCardPhone::Home); + QTest::newRow("WORK") << QByteArray("12345") << int(QXmppVCardPhone::Work); + QTest::newRow("VOICE") << QByteArray("12345") << int(QXmppVCardPhone::Voice); + QTest::newRow("FAX") << QByteArray("12345") << int(QXmppVCardPhone::Fax); + QTest::newRow("PAGER") << QByteArray("12345") << int(QXmppVCardPhone::Pager); + QTest::newRow("MSG") << QByteArray("12345") << int(QXmppVCardPhone::Messaging); + QTest::newRow("CELL") << QByteArray("12345") << int(QXmppVCardPhone::Cell); + QTest::newRow("VIDEO") << QByteArray("") << int(QXmppVCardPhone::Video); + QTest::newRow("BBS") << QByteArray("12345") << int(QXmppVCardPhone::BBS); + QTest::newRow("MODEM") << QByteArray("12345") << int(QXmppVCardPhone::Modem); + QTest::newRow("IDSN") << QByteArray("12345") << int(QXmppVCardPhone::ISDN); + QTest::newRow("PCS") << QByteArray("12345") << int(QXmppVCardPhone::PCS); + QTest::newRow("PREF") << QByteArray("12345") << int(QXmppVCardPhone::Preferred); } void tst_QXmppVCardIq::testPhone() @@ -165,8 +165,8 @@ void tst_QXmppVCardIq::testVCard() "Foo Bar!" "FooBar" "FooWizBaz" - "12345" - "67890" + "12345" + "67890" "" "image/png" "" -- cgit v1.2.3