Git commit fcb434de7c855731ee9a9ec8091e9687d64a80a4 by Montel Laurent. Committed on 31/03/2015 at 20:59. Pushed by mlaurent into branch 'master'. Backport unit test + export multi emails M +50 -0 autotests/ldifconvertertest.cpp M +2 -0 autotests/ldifconvertertest.h M +10 -3 src/converter/ldifconverter.cpp http://commits.kde.org/kcontacts/fcb434de7c855731ee9a9ec8091e9687d64a80a4 diff --git a/autotests/ldifconvertertest.cpp b/autotests/ldifconvertertest.= cpp index ceb420b..6fb135e 100644 --- a/autotests/ldifconvertertest.cpp +++ b/autotests/ldifconvertertest.cpp @@ -120,6 +120,31 @@ void LDifConverterTest::shouldImportTheBatsBirthday() QCOMPARE(contactGroup.count(), 0); } = +void LDifConverterTest::shouldImportTheBatsEmails() +{ + QString str =3D QLatin1String("dn: cn=3Dlaurent,mail=3Dfoo@kde.org\n" + "sn: laurent\n" + "cn: laurent\n" + "uid: d1d5cdd4-7d5d-484b-828d-58864d8efe74= \n" + "mail: foo@kde.org\n" + "othermailbox: foo2@kde.org\n" + "othermailbox: foo3@kde.org\n" + "objectclass: top_n" + "objectclass: person\n" + "objectclass: organizationalPerson"); + AddresseeList lst; + ContactGroup::List contactGroup; + bool result =3D LDIFConverter::LDIFToAddressee(str, lst, contactGroup); + QVERIFY(result); + QCOMPARE(lst.count(), 1); + QCOMPARE(lst.at(0).emails().count(), 3); + QCOMPARE(lst.at(0).emails().at(0), QLatin1String("foo@kde.org")); + QCOMPARE(lst.at(0).emails().at(1), QLatin1String("foo2@kde.org")); + QCOMPARE(lst.at(0).emails().at(2), QLatin1String("foo3@kde.org")); + QCOMPARE(contactGroup.count(), 0); +} + + void LDifConverterTest::shouldImportTitle() { QString str =3D QLatin1String("dn: cn=3Dlaurent,mail=3Dfoo@kde.org\n" @@ -267,6 +292,31 @@ void LDifConverterTest::shouldExportEmail() QCOMPARE(str, expected); } = +void LDifConverterTest::shouldExportMultiEmails() +{ + AddresseeList lst; + ContactGroup::List contactGroup; + Addressee addr; + addr.setEmails(QStringList() << QLatin1String("foo@kde.org") << QLatin= 1String("foo2@kde.org") << QLatin1String("foo3@kde.org")); + addr.setUid(QLatin1String("testuid")); + lst << addr; + QString str; + bool result =3D LDIFConverter::addresseeAndContactGroupToLDIF(lst, con= tactGroup, str); + QVERIFY(result); + QString expected =3D QLatin1String("dn: cn=3D,mail=3Dfoo@kde.org\n" + "objectclass: top\n" + "objectclass: person\n" + "objectclass: organizationalPerson\n" + "uid: testuid\n" + "mail: foo@kde.org\n" + "mozillasecondemail: foo2@kde.org\n" + "othermailbox: foo3@kde.org\n" + "\n"); + + QCOMPARE(str, expected); + +} + void LDifConverterTest::shouldExportBirthday() { AddresseeList lst; diff --git a/autotests/ldifconvertertest.h b/autotests/ldifconvertertest.h index 10c3422..5739b03 100644 --- a/autotests/ldifconvertertest.h +++ b/autotests/ldifconvertertest.h @@ -36,6 +36,7 @@ private Q_SLOTS: void shouldImportMultiEmails(); void shouldImportStandardBirthday(); void shouldImportTheBatsBirthday(); + void shouldImportTheBatsEmails(); void shouldImportTitle(); void shouldImportWorkStreet(); void shouldImportContactGroup(); @@ -49,6 +50,7 @@ private Q_SLOTS: void shouldExportMultiEntries(); void shouldExportGroup(); void shouldExportWorkStreet(); + void shouldExportMultiEmails(); }; = #endif // LDIFCONVERTERTEST_H diff --git a/src/converter/ldifconverter.cpp b/src/converter/ldifconverter.= cpp index 5fa6734..d5565f3 100644 --- a/src/converter/ldifconverter.cpp +++ b/src/converter/ldifconverter.cpp @@ -162,11 +162,18 @@ bool LDIFConverter::addresseeToLDIF(const Addressee &= addr, QString &str) ldif_out(t, QLatin1String("xmozillanickname"), addr.nickName()); ldif_out(t, QLatin1String("mozillanickname"), addr.nickName()); = + ldif_out(t, QLatin1String("mail"), addr.preferredEmail()); - if (addr.emails().count() > 1) { - ldif_out(t, QLatin1String("mozillasecondemail"), addr.emails().at(= 1)); + for (int i =3D 1; i < addr.emails().count(); ++i) { + if (i =3D=3D 0) { + //nothing + } else if (i =3D=3D 1) { + ldif_out( t, QLatin1String( "mozillasecondemail" ), addr.email= s()[ 1 ] ); + } else { + ldif_out( t, QLatin1String( "othermailbox" ), addr.emails()[ i= ] ); + } } -//ldif_out( t, "mozilla_AIMScreenName: %1\n", "screen_name" ); + //ldif_out( t, "mozilla_AIMScreenName: %1\n", "screen_name" ); = ldif_out(t, QLatin1String("telephonenumber"), addr.phoneNumber(PhoneNumber::Work).number());