From 857ec105c16c6adbbebb87c340745a83e909c0e4 Mon Sep 17 00:00:00 2001 From: Chris Adams Date: Fri, 10 Jun 2016 12:39:49 +1000 Subject: Fix QtVersit encoding of Gender details The Gender detail API was tweaked slightly for consistency with the rest of the API, but the Versit encoder was not updated at the same time. This commit ensures that the Versit encoder treats default-constructed QContactGender details as "Unspecified" gender values, and updates the unit test to enforce that semantic. Change-Id: I9f6a75888fbe8497b66ff7ec2104cacd7575fa50 Reviewed-by: Matthew Vogt --- src/versit/qversitcontactexporter_p.cpp | 3 --- .../versit/qversitcontactexporter/tst_qversitcontactexporter.cpp | 8 +++++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/versit/qversitcontactexporter_p.cpp b/src/versit/qversitcontactexporter_p.cpp index 673086751..39be29794 100644 --- a/src/versit/qversitcontactexporter_p.cpp +++ b/src/versit/qversitcontactexporter_p.cpp @@ -671,9 +671,6 @@ void QVersitContactExporterPrivate::encodeGender( QSet* processedFields) { const QContactGender &gender = static_cast(detail); - if (!gender.gender()) - return; - QVersitProperty property; property.setName(mPropertyMappings.value(detail.type()).second); switch (gender.gender()) { diff --git a/tests/auto/versit/qversitcontactexporter/tst_qversitcontactexporter.cpp b/tests/auto/versit/qversitcontactexporter/tst_qversitcontactexporter.cpp index a42e6f62c..3d78a8b35 100644 --- a/tests/auto/versit/qversitcontactexporter/tst_qversitcontactexporter.cpp +++ b/tests/auto/versit/qversitcontactexporter/tst_qversitcontactexporter.cpp @@ -988,14 +988,16 @@ void tst_QVersitContactExporter::testEncodeGender() { QContact contact(createContactWithName(QStringLiteral("asdf"))); - // Check that empty gender detail is not encoded. + // Check that empty gender detail is encoded as Unspecified QContactGender gender; contact.saveDetail(&gender); QVERIFY(mExporter->exportContacts(QList() << contact, QVersitDocument::VCard30Type)); QVersitDocument document = mExporter->documents().first(); - QCOMPARE(countProperties(document), 0); + QCOMPARE(countProperties(document), 1); QVersitProperty property = findPropertyByName(document, QStringLiteral("X-GENDER")); - QVERIFY(property.isEmpty()); + QVERIFY(!property.isEmpty()); + QCOMPARE(property.parameters().count(), 0); + QCOMPARE(property.value(), QStringLiteral("Unspecified")); // Check that all valid values are encoded properly. gender.setGender(QContactGender::GenderMale); -- cgit v1.2.3