Warning, file /frameworks/kcontacts/autotests/emailtest.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 This file is part of the KContacts framework. 0003 SPDX-FileCopyrightText: 2015-2019 Laurent Montel <montel@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 #include "emailtest.h" 0008 #include "email.h" 0009 #include "parametermap_p.h" 0010 #include "vcardtool_p.h" 0011 #include <QTest> 0012 0013 EmailTest::EmailTest(QObject *parent) 0014 : QObject(parent) 0015 { 0016 } 0017 0018 EmailTest::~EmailTest() 0019 { 0020 } 0021 0022 void EmailTest::shouldHaveDefaultValue() 0023 { 0024 KContacts::Email email; 0025 QVERIFY(!email.isValid()); 0026 QVERIFY(email.mail().isEmpty()); 0027 QVERIFY(email.params().empty()); 0028 } 0029 0030 void EmailTest::shouldAssignValue() 0031 { 0032 const QString mail(QStringLiteral("foo@kde.org")); 0033 KContacts::ParameterMap params; 0034 params.push_back({QStringLiteral("Foo1"), {QStringLiteral("bla1"), QStringLiteral("blo1")}}); 0035 params.push_back({QStringLiteral("Foo2"), {QStringLiteral("bla2"), QStringLiteral("blo2")}}); 0036 KContacts::Email email(mail); 0037 email.setParams(params); 0038 QVERIFY(email.isValid()); 0039 QVERIFY(!email.mail().isEmpty()); 0040 QCOMPARE(email.mail(), mail); 0041 QVERIFY(!email.params().empty()); 0042 QCOMPARE(email.params(), params); 0043 } 0044 0045 void EmailTest::shouldAssignExternal() 0046 { 0047 KContacts::Email email; 0048 const QString mail(QStringLiteral("foo@kde.org")); 0049 email.setEmail(mail); 0050 QVERIFY(email.isValid()); 0051 QVERIFY(!email.mail().isEmpty()); 0052 QCOMPARE(email.mail(), mail); 0053 } 0054 0055 void EmailTest::shouldSerialized() 0056 { 0057 KContacts::Email email; 0058 KContacts::Email result; 0059 const QString mail(QStringLiteral("foo@kde.org")); 0060 email.setEmail(mail); 0061 KContacts::ParameterMap params; 0062 params.push_back({QStringLiteral("Foo1"), {QStringLiteral("bla1"), QStringLiteral("blo1")}}); 0063 params.push_back({QStringLiteral("Foo2"), {QStringLiteral("bla2"), QStringLiteral("blo2")}}); 0064 email.setParams(params); 0065 0066 QByteArray data; 0067 QDataStream s(&data, QIODevice::WriteOnly); 0068 s << email; 0069 0070 QDataStream t(&data, QIODevice::ReadOnly); 0071 t >> result; 0072 0073 QVERIFY(email == result); 0074 } 0075 0076 void EmailTest::shouldEqualEmail() 0077 { 0078 KContacts::Email email; 0079 KContacts::Email result; 0080 const QString mail(QStringLiteral("foo@kde.org")); 0081 email.setEmail(mail); 0082 KContacts::ParameterMap params; 0083 params.push_back({QStringLiteral("Foo1"), {QStringLiteral("bla1"), QStringLiteral("blo1")}}); 0084 params.push_back({QStringLiteral("Foo2"), {QStringLiteral("bla2"), QStringLiteral("blo2")}}); 0085 email.setParams(params); 0086 0087 result = email; 0088 QVERIFY(email == result); 0089 } 0090 0091 void EmailTest::shouldParseEmailVCard() 0092 { 0093 QByteArray vcarddata( 0094 "BEGIN:VCARD\n" 0095 "VERSION:3.0\n" 0096 "EMAIL;TYPE=HOME,PREF;X-EVOLUTION-UI-SLOT=2:foo@foo.com\n" 0097 "N:LastName;FirstName;;;\n" 0098 "UID:c80cf296-0825-4eb0-ab16-1fac1d522a33@xxxxxx.xx\n" 0099 "REV:2015-03-14T09:24:45+00:00\n" 0100 "FN:FirstName LastName\n" 0101 "END:VCARD\n"); 0102 0103 KContacts::VCardTool vcard; 0104 const KContacts::AddresseeList lst = vcard.parseVCards(vcarddata); 0105 QCOMPARE(lst.count(), 1); 0106 QVERIFY(!lst.at(0).emailList().isEmpty()); 0107 QCOMPARE(lst.at(0).emailList().count(), 1); 0108 KContacts::Email email = lst.at(0).emailList().at(0); 0109 QCOMPARE(email.mail(), QStringLiteral("foo@foo.com")); 0110 QCOMPARE(email.params().size(), 2); 0111 } 0112 0113 void EmailTest::shouldParseEmailVCardWithMultiEmails() 0114 { 0115 QByteArray vcarddata( 0116 "BEGIN:VCARD\n" 0117 "VERSION:3.0\n" 0118 "EMAIL;TYPE=WORK;X-EVOLUTION-UI-SLOT=2:foo@foo.com\n" 0119 "EMAIL;TYPE=HOME,PREF;X-EVOLUTION-UI-SLOT=2:bla@bla.com\n" 0120 "N:LastName;FirstName;;;\n" 0121 "UID:c80cf296-0825-4eb0-ab16-1fac1d522a33@xxxxxx.xx\n" 0122 "REV:2015-03-14T09:24:45+00:00\n" 0123 "FN:FirstName LastName\n" 0124 "END:VCARD\n"); 0125 0126 KContacts::VCardTool vcard; 0127 const KContacts::AddresseeList lst = vcard.parseVCards(vcarddata); 0128 QCOMPARE(lst.count(), 1); 0129 QVERIFY(!lst.at(0).emailList().isEmpty()); 0130 QCOMPARE(lst.at(0).emailList().count(), 2); 0131 KContacts::Email email = lst.at(0).emailList().at(0); 0132 QCOMPARE(email.mail(), QStringLiteral("bla@bla.com")); 0133 QCOMPARE(email.type(), KContacts::Email::Home); 0134 QVERIFY(email.isPreferred()); 0135 email = lst.at(0).emailList().at(1); 0136 QCOMPARE(email.mail(), QStringLiteral("foo@foo.com")); 0137 QCOMPARE(email.type(), KContacts::Email::Work); 0138 QVERIFY(!email.isPreferred()); 0139 0140 QCOMPARE(email.params().size(), 2); 0141 } 0142 0143 void EmailTest::shouldParseEmailVCardWithoutEmail() 0144 { 0145 QByteArray vcarddata( 0146 "BEGIN:VCARD\n" 0147 "VERSION:3.0\n" 0148 "N:LastName;FirstName;;;\n" 0149 "UID:c80cf296-0825-4eb0-ab16-1fac1d522a33@xxxxxx.xx\n" 0150 "REV:2015-03-14T09:24:45+00:00\n" 0151 "FN:FirstName LastName\n" 0152 "END:VCARD\n"); 0153 0154 KContacts::VCardTool vcard; 0155 const KContacts::AddresseeList lst = vcard.parseVCards(vcarddata); 0156 QCOMPARE(lst.count(), 1); 0157 QVERIFY(lst.at(0).emailList().isEmpty()); 0158 } 0159 0160 void EmailTest::shouldExportVcard() 0161 { 0162 KContacts::AddresseeList lst; 0163 KContacts::Addressee addr; 0164 addr.setEmails(QStringList() << QStringLiteral("foo@kde.org") << QStringLiteral("bla@kde.org")); 0165 addr.setUid(QStringLiteral("testuid")); 0166 lst << addr; 0167 KContacts::VCardTool vcard; 0168 QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v4_0); 0169 QByteArray expected( 0170 "BEGIN:VCARD\r\n" 0171 "VERSION:4.0\r\n" 0172 "EMAIL:foo@kde.org\r\n" 0173 "EMAIL:bla@kde.org\r\n" 0174 "N:;;;;\r\n" 0175 "UID:testuid\r\n" 0176 "END:VCARD\r\n\r\n"); 0177 0178 QCOMPARE(ba, expected); 0179 0180 KContacts::Addressee addr2; 0181 addr2.setUid(QStringLiteral("testuid")); 0182 KContacts::Email email1; 0183 KContacts::Email email2; 0184 email1.setEmail(QStringLiteral("foo@kde.org")); 0185 email1.setType(KContacts::Email::Work); 0186 email1.setPreferred(true); 0187 email2.setEmail(QStringLiteral("bla@kde.org")); 0188 email2.setType(KContacts::Email::Home); 0189 addr2.setEmailList({email1, email2}); 0190 ba = vcard.exportVCards({addr2}, KContacts::VCard::v4_0); 0191 QByteArray expected2( 0192 "BEGIN:VCARD\r\n" 0193 "VERSION:4.0\r\n" 0194 "EMAIL;TYPE=WORK,PREF:foo@kde.org\r\n" 0195 "EMAIL;TYPE=HOME:bla@kde.org\r\n" 0196 "N:;;;;\r\n" 0197 "UID:testuid\r\n" 0198 "END:VCARD\r\n\r\n"); 0199 0200 QCOMPARE(ba, expected2); 0201 } 0202 0203 QTEST_MAIN(EmailTest)