File indexing completed on 2024-04-14 14:18:53

0001 /*
0002     This file is part of the KContacts framework.
0003     SPDX-FileCopyrightText: 2007 Tobias Koenig <tokoe@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include "addresstest.h"
0009 #include "addresseelist.h"
0010 #include "kcontacts/address.h"
0011 #include "vcardtool_p.h"
0012 #include <KConfig>
0013 #include <KConfigGroup>
0014 #include <QStandardPaths>
0015 #include <QTest>
0016 
0017 QTEST_MAIN(AddressTest)
0018 void initLocale()
0019 {
0020     qputenv("LANG", "it_CH");
0021     QLocale::setDefault(QLocale(QLocale::Italian, QLocale::Switzerland));
0022 }
0023 
0024 Q_CONSTRUCTOR_FUNCTION(initLocale)
0025 
0026 void AddressTest::initTestCase()
0027 {
0028 }
0029 
0030 void AddressTest::emptyTest()
0031 {
0032     KContacts::Address address;
0033 
0034     QVERIFY(address.isEmpty());
0035 }
0036 
0037 void AddressTest::storeTest()
0038 {
0039     KContacts::Address address;
0040 
0041     address.setId(QStringLiteral("My Id"));
0042     address.setType(KContacts::Address::Home);
0043     address.setPostOfficeBox(QStringLiteral("1234"));
0044     address.setExtended(QStringLiteral("My Extended Label"));
0045     address.setStreet(QStringLiteral("My Street"));
0046     address.setLocality(QStringLiteral("My Locality"));
0047     address.setRegion(QStringLiteral("My Region"));
0048     address.setPostalCode(QStringLiteral("My PostalCode"));
0049     address.setCountry(QStringLiteral("My Country"));
0050     address.setLabel(QStringLiteral("My Label"));
0051 
0052     QCOMPARE(address.id(), QStringLiteral("My Id"));
0053     QCOMPARE(address.type(), KContacts::Address::Home);
0054     QCOMPARE(address.postOfficeBox(), QStringLiteral("1234"));
0055     QCOMPARE(address.extended(), QStringLiteral("My Extended Label"));
0056     QCOMPARE(address.street(), QStringLiteral("My Street"));
0057     QCOMPARE(address.locality(), QStringLiteral("My Locality"));
0058     QCOMPARE(address.region(), QStringLiteral("My Region"));
0059     QCOMPARE(address.postalCode(), QStringLiteral("My PostalCode"));
0060     QCOMPARE(address.country(), QStringLiteral("My Country"));
0061     QCOMPARE(address.label(), QStringLiteral("My Label"));
0062     QVERIFY(!address.geo().isValid());
0063 }
0064 
0065 void AddressTest::equalsTest()
0066 {
0067     KContacts::Address address1;
0068     KContacts::Address address2;
0069 
0070     address1.setId(QStringLiteral("My Id"));
0071     address1.setType(KContacts::Address::Home);
0072     address1.setPostOfficeBox(QStringLiteral("1234"));
0073     address1.setExtended(QStringLiteral("My Extended Label"));
0074     address1.setStreet(QStringLiteral("My Street"));
0075     address1.setLocality(QStringLiteral("My Locality"));
0076     address1.setRegion(QStringLiteral("My Region"));
0077     address1.setPostalCode(QStringLiteral("My Postalcode"));
0078     address1.setCountry(QStringLiteral("My country"));
0079     address1.setLabel(QStringLiteral("My Label"));
0080 
0081     address2.setId(QStringLiteral("My Id"));
0082     address2.setType(KContacts::Address::Home);
0083     address2.setPostOfficeBox(QStringLiteral("1234"));
0084     address2.setExtended(QStringLiteral("My Extended Label"));
0085     address2.setStreet(QStringLiteral("My Street"));
0086     address2.setLocality(QStringLiteral("My Locality"));
0087     address2.setRegion(QStringLiteral("My Region"));
0088     address2.setPostalCode(QStringLiteral("My Postalcode"));
0089     address2.setCountry(QStringLiteral("My country"));
0090     address2.setLabel(QStringLiteral("My Label"));
0091 
0092     QVERIFY(address1 == address2);
0093 }
0094 
0095 void AddressTest::differsTest()
0096 {
0097     KContacts::Address address1(KContacts::Address::Home);
0098     KContacts::Address address2(KContacts::Address::Work);
0099 
0100     QVERIFY(address1 != address2);
0101 }
0102 
0103 void AddressTest::assignmentTest()
0104 {
0105     KContacts::Address address1;
0106     KContacts::Address address2;
0107 
0108     address1.setId(QStringLiteral("My Id"));
0109     address1.setType(KContacts::Address::Home);
0110     address1.setPostOfficeBox(QStringLiteral("1234"));
0111     address1.setExtended(QStringLiteral("My Extended Label"));
0112     address1.setStreet(QStringLiteral("My Street"));
0113     address1.setLocality(QStringLiteral("My Locality"));
0114     address1.setRegion(QStringLiteral("My Region"));
0115     address1.setPostalCode(QStringLiteral("My Postalcode"));
0116     address1.setCountry(QStringLiteral("My country"));
0117     address1.setLabel(QStringLiteral("My Label"));
0118 
0119     address2 = address1;
0120 
0121     QVERIFY(address1 == address2);
0122 }
0123 
0124 void AddressTest::serializeTest()
0125 {
0126     KContacts::Address address1;
0127     KContacts::Address address2;
0128 
0129     address1.setType(KContacts::Address::Work);
0130     address1.setPostOfficeBox(QStringLiteral("1234"));
0131     address1.setExtended(QStringLiteral("My Extended Label"));
0132     address1.setStreet(QStringLiteral("My Street"));
0133     address1.setLocality(QStringLiteral("My Locality"));
0134     address1.setRegion(QStringLiteral("My Region"));
0135     address1.setPostalCode(QStringLiteral("My Postalcode"));
0136     address1.setCountry(QStringLiteral("My country"));
0137     address1.setLabel(QStringLiteral("My Label"));
0138 
0139     QByteArray data;
0140     QDataStream s(&data, QIODevice::WriteOnly);
0141     s << address1;
0142 
0143     QDataStream t(&data, QIODevice::ReadOnly);
0144     t >> address2;
0145 
0146     QVERIFY(address1 == address2);
0147 }
0148 
0149 void AddressTest::formatTest()
0150 {
0151     {
0152         KContacts::Address address;
0153         address.setStreet(QStringLiteral("Lummerlandstr. 1"));
0154         address.setPostalCode(QStringLiteral("12345"));
0155         address.setLocality(QStringLiteral("Lummerstadt"));
0156         address.setCountry(QStringLiteral("Germany"));
0157 
0158         const QString result(
0159             QStringLiteral("Jim Knopf\nLummerlandstr. 1\n"
0160                            "12345 Lummerstadt\n\nGERMANIA"));
0161 
0162         QCOMPARE(address.formatted(KContacts::AddressFormatStyle::Postal, QStringLiteral("Jim Knopf")), result);
0163 #if KCONTACTS_BUILD_DEPRECATED_SINCE(5, 92)
0164         QCOMPARE(address.formattedAddress(QStringLiteral("Jim Knopf")), result);
0165 #endif
0166     }
0167 
0168     {
0169         KContacts::Address address;
0170         address.setStreet(QStringLiteral("457 Foobar Ave"));
0171         address.setPostalCode(QStringLiteral("1A2B3C"));
0172         address.setLocality(QStringLiteral("Nervousbreaktown"));
0173         address.setRegion(QStringLiteral("DC"));
0174         address.setCountry(QStringLiteral("United States of America"));
0175 
0176         const QString result(
0177             QStringLiteral("Huck Finn\n457 Foobar Ave\nNERVOUSBREAKTOWN,"
0178                            " DC 1A2B3C\n\nSTATI UNITI"));
0179         QCOMPARE(address.formatted(KContacts::AddressFormatStyle::Postal, QStringLiteral("Huck Finn")), result);
0180     }
0181 
0182     {
0183         KContacts::Address address;
0184         address.setStreet(QStringLiteral("Lummerlandstr. 1"));
0185         address.setPostalCode(QStringLiteral("12345"));
0186         address.setLocality(QStringLiteral("Lummerstadt"));
0187         address.setCountry(QStringLiteral("Deutschland"));
0188 
0189         const QString result(
0190             QStringLiteral("Jim Knopf\nLummerlandstr. 1\n"
0191                            "12345 Lummerstadt\n\nGERMANIA"));
0192 
0193         QCOMPARE(address.formatted(KContacts::AddressFormatStyle::Postal, QStringLiteral("Jim Knopf")), result);
0194     }
0195 
0196     {
0197         KContacts::Address address;
0198         address.setStreet(QStringLiteral("Lummerlandstr. 1"));
0199         address.setPostalCode(QStringLiteral("12345"));
0200         address.setLocality(QStringLiteral("Lummerstadt"));
0201         address.setCountry(QString());
0202 
0203         const QString result(QStringLiteral("Jim Knopf\nLummerlandstr. 1\n12345 Lummerstadt"));
0204 
0205         QCOMPARE(address.formatted(KContacts::AddressFormatStyle::Postal, QStringLiteral("Jim Knopf")), result);
0206     }
0207 
0208     {
0209         KContacts::Address address;
0210         address.setStreet(QStringLiteral("Haus Randa"));
0211         address.setPostalCode(QStringLiteral("1234"));
0212         address.setLocality(QStringLiteral("Randa"));
0213         address.setPostOfficeBox(QStringLiteral("5678"));
0214         address.setCountry(QStringLiteral("Schweiz"));
0215 
0216         // we want the Italian variant of the Swiss format for it_CH
0217         const QString result(QStringLiteral("Dr. Konqui\nCasella postale 5678\nHaus Randa\n1234 Randa\n\nSVIZZERA"));
0218 
0219         QCOMPARE(address.formatted(KContacts::AddressFormatStyle::Postal, QStringLiteral("Dr. Konqui")), result);
0220     }
0221 
0222     {
0223         KContacts::Address address;
0224         address.setStreet(QStringLiteral("Haus Randa"));
0225         address.setPostalCode(QStringLiteral("1234"));
0226         address.setLocality(QStringLiteral("Randa"));
0227         address.setPostOfficeBox(QStringLiteral("5678"));
0228         address.setCountry(QStringLiteral("CH"));
0229 
0230         // we want the Italian variant of the Swiss format for it_CH
0231         const QString result(QStringLiteral("Dr. Konqui\nCasella postale 5678\nHaus Randa\n1234 Randa\n\nSVIZZERA"));
0232         QCOMPARE(address.formatted(KContacts::AddressFormatStyle::Postal, QStringLiteral("Dr. Konqui")), result);
0233     }
0234 
0235     {
0236         KContacts::Address address;
0237         address.setCountry(QStringLiteral("CH"));
0238         QCOMPARE(address.formatted(KContacts::AddressFormatStyle::Postal, QString()), QLatin1String("SVIZZERA"));
0239     }
0240 
0241     {
0242         // business format for postal style
0243         KContacts::Address address;
0244         address.setCountry(QStringLiteral("AT"));
0245         address.setLocality(QStringLiteral("Berlin"));
0246         address.setPostalCode(QStringLiteral("10969"));
0247         address.setStreet(QStringLiteral("Prinzenstraße 85 F"));
0248         const auto result = QString::fromUtf8("KDE e.V.\nz.Hd. Dr. Konqi\nPrinzenstraße 85 F\n10969 Berlin\n\nAUSTRIA");
0249         QCOMPARE(address.formatted(KContacts::AddressFormatStyle::Postal, QStringLiteral("Dr. Konqi"), QStringLiteral("KDE e.V.")), result);
0250     }
0251 
0252     {
0253         // local vs latin script formats
0254         KContacts::Address address;
0255         address.setCountry(QStringLiteral("JP"));
0256         address.setRegion(QStringLiteral("Tokyo"));
0257         address.setLocality(QStringLiteral("Minato-ku"));
0258         address.setPostalCode(QStringLiteral("106-0047"));
0259         address.setStreet(QStringLiteral("4-6-28 Minami-Azabu"));
0260         auto result = QString::fromUtf8("4-6-28 Minami-Azabu, Minato-ku\nTOKYO 106-0047\n\nGIAPPONE");
0261         QCOMPARE(address.formatted(KContacts::AddressFormatStyle::Postal), result);
0262 
0263         address.setRegion(QStringLiteral("東京"));
0264         address.setLocality(QStringLiteral("都港区"));
0265         address.setPostalCode(QStringLiteral("106-0047"));
0266         address.setStreet(QStringLiteral("南麻布 4-6-28"));
0267         result = QString::fromUtf8("〒106-0047\n東京都港区南麻布 4-6-28\n\nGIAPPONE");
0268         QCOMPARE(address.formatted(KContacts::AddressFormatStyle::Postal), result);
0269     }
0270 }
0271 
0272 void AddressTest::shouldExportVcard3()
0273 {
0274     KContacts::Address address;
0275 
0276     address.setId(QStringLiteral("My Id"));
0277     address.setType(KContacts::Address::Home);
0278     address.setPostOfficeBox(QStringLiteral("1234"));
0279     address.setExtended(QStringLiteral("My Extended Label"));
0280     address.setStreet(QStringLiteral("My Street"));
0281     address.setLocality(QStringLiteral("My Locality"));
0282     address.setRegion(QStringLiteral("My Region"));
0283     address.setPostalCode(QStringLiteral("My Postalcode"));
0284     address.setCountry(QStringLiteral("My country"));
0285     address.setLabel(QStringLiteral("My Label"));
0286 
0287     KContacts::AddresseeList lst;
0288     KContacts::Addressee addr;
0289     addr.setEmails(QStringList() << QStringLiteral("foo@kde.org"));
0290     addr.setUid(QStringLiteral("testuid"));
0291     addr.insertAddress(address);
0292     lst << addr;
0293 
0294     KContacts::VCardTool vcard;
0295     const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v3_0);
0296     QByteArray expected(
0297         "BEGIN:VCARD\r\n"
0298         "VERSION:3.0\r\n"
0299         "ADR;TYPE=home:1234;My Extended Label;My Street;My Locality;My Region;My Pos\r\n"
0300         " talcode;My country\r\n"
0301         "EMAIL:foo@kde.org\r\n"
0302         "LABEL;TYPE=home:My Label\r\n"
0303         "N:;;;;\r\n"
0304         "UID:testuid\r\n"
0305         "END:VCARD\r\n\r\n");
0306     QCOMPARE(ba, expected);
0307 }
0308 
0309 void AddressTest::shouldParseAddressVCard3()
0310 {
0311     QByteArray vcarddata(
0312         "BEGIN:VCARD\n"
0313         "VERSION:3.0\n"
0314         "N:LastName;FirstName;;;\n"
0315         "ADR;TYPE=home:1234;My Extended Label;My Street;My Locality;My Region;My Pos\r\n"
0316         " talcode;My country\r\n"
0317         "UID:c80cf296-0825-4eb0-ab16-1fac1d522a33@xxxxxx.xx\n"
0318         "LABEL;TYPE=home:My Label\r\n"
0319         "REV:2015-03-14T09:24:45+00:00\n"
0320         "FN:FirstName LastName\n"
0321         "END:VCARD\n");
0322 
0323     KContacts::VCardTool vcard;
0324     const KContacts::AddresseeList lst = vcard.parseVCards(vcarddata);
0325     QCOMPARE(lst.count(), 1);
0326     QCOMPARE(lst.at(0).addresses().count(), 1);
0327     KContacts::Address address = lst.at(0).addresses().at(0);
0328     QCOMPARE(address.type(), KContacts::Address::Home);
0329     QCOMPARE(address.postOfficeBox(), QStringLiteral("1234"));
0330     QCOMPARE(address.extended(), QStringLiteral("My Extended Label"));
0331     QCOMPARE(address.region(), QStringLiteral("My Region"));
0332     QCOMPARE(address.street(), QStringLiteral("My Street"));
0333     QCOMPARE(address.country(), QStringLiteral("My country"));
0334     QCOMPARE(address.postalCode(), QStringLiteral("My Postalcode"));
0335     QCOMPARE(address.label(), QStringLiteral("My Label"));
0336 }
0337 
0338 void AddressTest::shouldParseAddressVCard4()
0339 {
0340     QByteArray vcarddata(
0341         "BEGIN:VCARD\r\n"
0342         "VERSION:4.0\r\n"
0343         "ADR;LABEL=\"My Label\";TYPE=home:1234;My Extended Label;My Street;My Locality\r\n"
0344         " ;My Region;My Postalcode;My country\r\nEMAIL:foo@kde.org\r\n"
0345         "N:;;;;\r\n"
0346         "UID:testuid\r\n"
0347         "END:VCARD\r\n\r\n");
0348     KContacts::VCardTool vcard;
0349     const KContacts::AddresseeList lst = vcard.parseVCards(vcarddata);
0350     QCOMPARE(lst.count(), 1);
0351     QCOMPARE(lst.at(0).addresses().count(), 1);
0352     KContacts::Address address = lst.at(0).addresses().at(0);
0353     QCOMPARE(address.type(), KContacts::Address::Home);
0354     QCOMPARE(address.postOfficeBox(), QStringLiteral("1234"));
0355     QCOMPARE(address.extended(), QStringLiteral("My Extended Label"));
0356     QCOMPARE(address.region(), QStringLiteral("My Region"));
0357     QCOMPARE(address.street(), QStringLiteral("My Street"));
0358     QCOMPARE(address.country(), QStringLiteral("My country"));
0359     QCOMPARE(address.postalCode(), QStringLiteral("My Postalcode"));
0360     QCOMPARE(address.label(), QStringLiteral("My Label"));
0361 }
0362 
0363 void AddressTest::shouldParseAddressVCard4WithGeoPosition()
0364 {
0365     QByteArray vcarddata(
0366         "BEGIN:VCARD\r\n"
0367         "VERSION:4.0\r\n"
0368         "ADR;GEO=\"geo:22.500000,45.099998\";LABEL=\"My Label\";TYPE=home:1234;My Extend\r\n"
0369         " ed Label;My Street;My Locality;My Region;My Postalcode;My country\r\n"
0370         "EMAIL:foo@kde.org\r\n"
0371         "N:;;;;\r\n"
0372         "UID:testuid\r\n"
0373         "END:VCARD\r\n\r\n");
0374     KContacts::VCardTool vcard;
0375     const KContacts::AddresseeList lst = vcard.parseVCards(vcarddata);
0376     QCOMPARE(lst.count(), 1);
0377     QCOMPARE(lst.at(0).addresses().count(), 1);
0378     KContacts::Address address = lst.at(0).addresses().at(0);
0379     QCOMPARE(address.type(), KContacts::Address::Home);
0380     QCOMPARE(address.postOfficeBox(), QStringLiteral("1234"));
0381     QCOMPARE(address.extended(), QStringLiteral("My Extended Label"));
0382     QCOMPARE(address.region(), QStringLiteral("My Region"));
0383     QCOMPARE(address.street(), QStringLiteral("My Street"));
0384     QCOMPARE(address.country(), QStringLiteral("My country"));
0385     QCOMPARE(address.postalCode(), QStringLiteral("My Postalcode"));
0386     QCOMPARE(address.label(), QStringLiteral("My Label"));
0387     KContacts::Geo geo = address.geo();
0388     QVERIFY(geo.isValid());
0389     QCOMPARE(geo.latitude(), 22.5f);
0390     QCOMPARE(geo.longitude(), 45.1f);
0391 }
0392 
0393 void AddressTest::shouldExportVCard4WithGeoPosition()
0394 {
0395     KContacts::Address address;
0396 
0397     address.setId(QStringLiteral("My Id"));
0398     address.setType(KContacts::Address::Home);
0399     address.setPostOfficeBox(QStringLiteral("1234"));
0400     address.setExtended(QStringLiteral("My Extended Label"));
0401     address.setStreet(QStringLiteral("My Street"));
0402     address.setLocality(QStringLiteral("My Locality"));
0403     address.setRegion(QStringLiteral("My Region"));
0404     address.setPostalCode(QStringLiteral("My Postalcode"));
0405     address.setCountry(QStringLiteral("My country"));
0406     address.setLabel(QStringLiteral("My Label"));
0407 
0408     KContacts::Geo geo;
0409 
0410     geo.setLatitude(22.5f);
0411     geo.setLongitude(45.1f);
0412     address.setGeo(geo);
0413 
0414     KContacts::AddresseeList lst;
0415     KContacts::Addressee addr;
0416     addr.setEmails(QStringList() << QStringLiteral("foo@kde.org"));
0417     addr.setUid(QStringLiteral("testuid"));
0418     addr.insertAddress(address);
0419     lst << addr;
0420 
0421     KContacts::VCardTool vcard;
0422     const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v4_0);
0423     QByteArray expected(
0424         "BEGIN:VCARD\r\n"
0425         "VERSION:4.0\r\n"
0426         "ADR;GEO=\"geo:22.500000,45.099998\";LABEL=\"My Label\";TYPE=home:1234;My Extend\r\n"
0427         " ed Label;My Street;My Locality;My Region;My Postalcode;My country\r\n"
0428         "EMAIL:foo@kde.org\r\n"
0429         "N:;;;;\r\n"
0430         "UID:testuid\r\n"
0431         "END:VCARD\r\n\r\n");
0432     QCOMPARE(ba, expected);
0433 }
0434 
0435 void AddressTest::shouldExportVcard4()
0436 {
0437     KContacts::Address address;
0438 
0439     address.setId(QStringLiteral("My Id"));
0440     address.setType(KContacts::Address::Home);
0441     address.setPostOfficeBox(QStringLiteral("1234"));
0442     address.setExtended(QStringLiteral("My Extended Label"));
0443     address.setStreet(QStringLiteral("My Street"));
0444     address.setLocality(QStringLiteral("My Locality"));
0445     address.setRegion(QStringLiteral("My Region"));
0446     address.setPostalCode(QStringLiteral("My Postalcode"));
0447     address.setCountry(QStringLiteral("My country"));
0448     address.setLabel(QStringLiteral("My Label"));
0449 
0450     KContacts::AddresseeList lst;
0451     KContacts::Addressee addr;
0452     addr.setEmails(QStringList() << QStringLiteral("foo@kde.org"));
0453     addr.setUid(QStringLiteral("testuid"));
0454     addr.insertAddress(address);
0455     lst << addr;
0456 
0457     KContacts::VCardTool vcard;
0458     const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v4_0);
0459     QByteArray expected(
0460         "BEGIN:VCARD\r\n"
0461         "VERSION:4.0\r\n"
0462         "ADR;LABEL=\"My Label\";TYPE=home:1234;My Extended Label;My Street;My Locality\r\n"
0463         " ;My Region;My Postalcode;My country\r\nEMAIL:foo@kde.org\r\n"
0464         "N:;;;;\r\n"
0465         "UID:testuid\r\n"
0466         "END:VCARD\r\n\r\n");
0467     QCOMPARE(ba, expected);
0468 }
0469 
0470 void AddressTest::countryToISOTest()
0471 {
0472     using namespace KContacts;
0473 #if KCONTACTS_BUILD_DEPRECATED_SINCE(5, 89)
0474     QCOMPARE(Address::countryToISO(QStringLiteral("France")), QLatin1String("fr"));
0475     QCOMPARE(Address::countryToISO(QStringLiteral("Frankreich")), QLatin1String("fr"));
0476     QCOMPARE(Address::countryToISO(QStringLiteral("Germany")), QLatin1String("de"));
0477     QCOMPARE(Address::countryToISO(QStringLiteral("Österreich")), QLatin1String("at"));
0478     QCOMPARE(Address::countryToISO(QStringLiteral("Disneyland")), QString());
0479     QCOMPARE(Address::countryToISO(QStringLiteral("Østrig")), QLatin1String("at"));
0480     QCOMPARE(Address::countryToISO(QStringLiteral("Den Demokratiske Republik Congo")), QLatin1String("cd"));
0481     QCOMPARE(Address::countryToISO(QStringLiteral("South Sudan")), QLatin1String("ss"));
0482     QCOMPARE(Address::countryToISO(QStringLiteral("United States")), QLatin1String("us"));
0483     QCOMPARE(Address::countryToISO(QStringLiteral("United States Of America")), QLatin1String("us"));
0484     QCOMPARE(Address::countryToISO(QStringLiteral("United")), QString());
0485     QCOMPARE(Address::countryToISO(QStringLiteral("대한민국")), QLatin1String("kr"));
0486 
0487     QCOMPARE(Address::countryToISO(QStringLiteral("Osterreich")), QLatin1String("at"));
0488     QCOMPARE(Address::countryToISO(QStringLiteral("Ünited  States\nOf America")), QLatin1String("us"));
0489 #endif
0490 }
0491 
0492 void AddressTest::isoToCountryTest()
0493 {
0494     qunsetenv("LC_ALL");
0495     qputenv("LANGUAGE", "en");
0496 
0497     using namespace KContacts;
0498 #if KCONTACTS_BUILD_DEPRECATED_SINCE(5, 89)
0499     QCOMPARE(Address::ISOtoCountry(QStringLiteral("FR")), QLatin1String("France"));
0500     QCOMPARE(Address::ISOtoCountry(QStringLiteral("de")), QLatin1String("Germany"));
0501 
0502     // invalid
0503     QCOMPARE(Address::ISOtoCountry(QStringLiteral("EU")), QLatin1String("EU"));
0504     QCOMPARE(Address::ISOtoCountry(QStringLiteral("zz")), QLatin1String("zz"));
0505     QCOMPARE(Address::ISOtoCountry(QStringLiteral("0")), QLatin1String("0"));
0506 #endif
0507 }
0508 
0509 void AddressTest::testGeoUri()
0510 {
0511     KContacts::Address addr;
0512     addr.setCountry(QStringLiteral("DE"));
0513     addr.setRegion(QStringLiteral("BE"));
0514     addr.setLocality(QStringLiteral("Berlin"));
0515     addr.setPostalCode(QStringLiteral("10969"));
0516     addr.setStreet(QStringLiteral("Prinzenstraße 85 F"));
0517     addr.setExtended(QStringLiteral("East wing"));
0518 
0519     QCOMPARE(addr.geoUri(), QUrl(QStringLiteral("geo:0,0?q=Prinzenstraße 85 F,10969 Berlin,DE")));
0520 
0521     addr.setGeo({52.503, 13.41});
0522     QCOMPARE(addr.geoUri(), QUrl(QStringLiteral("geo:52.503,13.41")));
0523 }
0524 
0525 #include "moc_addresstest.cpp"