Warning, file /frameworks/kcontacts/autotests/fieldgrouptest.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: 2016-2019 Laurent Montel <montel@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "fieldgrouptest.h" 0009 #include "fieldgroup.h" 0010 #include "parametermap_p.h" 0011 #include "vcardtool_p.h" 0012 #include <QTest> 0013 0014 FieldGroupTest::FieldGroupTest(QObject *parent) 0015 : QObject(parent) 0016 { 0017 } 0018 0019 FieldGroupTest::~FieldGroupTest() 0020 { 0021 } 0022 0023 void FieldGroupTest::shouldHaveDefaultValue() 0024 { 0025 KContacts::FieldGroup fieldgroup; 0026 QVERIFY(!fieldgroup.isValid()); 0027 QVERIFY(fieldgroup.fieldGroupName().isEmpty()); 0028 QVERIFY(fieldgroup.params().empty()); 0029 QVERIFY(fieldgroup.value().isEmpty()); 0030 } 0031 0032 void FieldGroupTest::shouldAssignValue() 0033 { 0034 const QString fielgroundname(QStringLiteral("fr")); 0035 const QString value(QStringLiteral("bla")); 0036 KContacts::ParameterMap params; 0037 params.push_back({QStringLiteral("Foo1"), {QStringLiteral("bla1"), QStringLiteral("blo1")}}); 0038 params.push_back({QStringLiteral("Foo2"), {QStringLiteral("bla2"), QStringLiteral("blo2")}}); 0039 KContacts::FieldGroup fieldGroup(fielgroundname); 0040 fieldGroup.setParams(params); 0041 fieldGroup.setValue(value); 0042 QVERIFY(fieldGroup.isValid()); 0043 QVERIFY(!fieldGroup.fieldGroupName().isEmpty()); 0044 QCOMPARE(fieldGroup.fieldGroupName(), fielgroundname); 0045 QVERIFY(!fieldGroup.params().empty()); 0046 QCOMPARE(fieldGroup.params(), params); 0047 QCOMPARE(fieldGroup.value(), value); 0048 } 0049 0050 void FieldGroupTest::shouldAssignExternal() 0051 { 0052 KContacts::FieldGroup fieldgroup; 0053 const QString fieldgroundname(QStringLiteral("fr")); 0054 const QString value(QStringLiteral("bla")); 0055 fieldgroup.setValue(value); 0056 fieldgroup.setFieldGroupName(fieldgroundname); 0057 QVERIFY(fieldgroup.isValid()); 0058 QCOMPARE(fieldgroup.fieldGroupName(), fieldgroundname); 0059 QCOMPARE(fieldgroup.value(), value); 0060 } 0061 0062 void FieldGroupTest::shouldSerialized() 0063 { 0064 KContacts::FieldGroup fieldGroup; 0065 KContacts::FieldGroup result; 0066 const QString lang(QStringLiteral("fr")); 0067 fieldGroup.setFieldGroupName(lang); 0068 const QString value(QStringLiteral("bla")); 0069 fieldGroup.setValue(value); 0070 0071 KContacts::ParameterMap params; 0072 params.push_back({QStringLiteral("Foo1"), {QStringLiteral("bla1"), QStringLiteral("blo1")}}); 0073 params.push_back({QStringLiteral("Foo2"), {QStringLiteral("bla2"), QStringLiteral("blo2")}}); 0074 fieldGroup.setParams(params); 0075 0076 QByteArray data; 0077 QDataStream s(&data, QIODevice::WriteOnly); 0078 s << fieldGroup; 0079 0080 QDataStream t(&data, QIODevice::ReadOnly); 0081 t >> result; 0082 0083 QVERIFY(fieldGroup == result); 0084 } 0085 0086 void FieldGroupTest::shouldEqualFieldGroup() 0087 { 0088 KContacts::FieldGroup fieldGroup; 0089 KContacts::FieldGroup result; 0090 const QString lang(QStringLiteral("fr")); 0091 const QString value(QStringLiteral("bla")); 0092 fieldGroup.setValue(value); 0093 fieldGroup.setFieldGroupName(lang); 0094 KContacts::ParameterMap params; 0095 params.push_back({QStringLiteral("Foo1"), {QStringLiteral("bla1"), QStringLiteral("blo1")}}); 0096 params.push_back({QStringLiteral("Foo2"), {QStringLiteral("bla2"), QStringLiteral("blo2")}}); 0097 fieldGroup.setParams(params); 0098 0099 result = fieldGroup; 0100 QVERIFY(fieldGroup == result); 0101 } 0102 0103 void FieldGroupTest::shouldParseFieldGroup() 0104 { 0105 QByteArray vcarddata( 0106 "BEGIN:VCARD\n" 0107 "VERSION:3.0\n" 0108 "N:LastName;FirstName;;;\n" 0109 "UID:c80cf296-0825-4eb0-ab16-1fac1d522a33@xxxxxx.xx\n" 0110 "REV:2015-03-14T09:24:45+00:00\n" 0111 "FN:FirstName LastName\n" 0112 "fr.foo:bla\n" 0113 "fr2.foo:bla\n" 0114 "END:VCARD\n"); 0115 0116 KContacts::VCardTool vcard; 0117 const KContacts::AddresseeList lst = vcard.parseVCards(vcarddata); 0118 QCOMPARE(lst.count(), 1); 0119 QCOMPARE(lst.at(0).fieldGroupList().count(), 2); 0120 } 0121 0122 void FieldGroupTest::shouldParseWithoutFieldGroup() 0123 { 0124 QByteArray vcarddata( 0125 "BEGIN:VCARD\n" 0126 "VERSION:3.0\n" 0127 "N:LastName;FirstName;;;\n" 0128 "UID:c80cf296-0825-4eb0-ab16-1fac1d522a33@xxxxxx.xx\n" 0129 "REV:2015-03-14T09:24:45+00:00\n" 0130 "FN:FirstName LastName\n" 0131 "END:VCARD\n"); 0132 0133 KContacts::VCardTool vcard; 0134 const KContacts::AddresseeList lst = vcard.parseVCards(vcarddata); 0135 QCOMPARE(lst.count(), 1); 0136 QCOMPARE(lst.at(0).fieldGroupList().count(), 0); 0137 } 0138 0139 void FieldGroupTest::shouldCreateVCard() 0140 { 0141 KContacts::AddresseeList lst; 0142 KContacts::Addressee addr; 0143 addr.setEmails(QStringList() << QStringLiteral("foo@kde.org")); 0144 addr.setUid(QStringLiteral("testuid")); 0145 KContacts::FieldGroup::List lstFieldGroup; 0146 KContacts::FieldGroup fieldGroup(QStringLiteral("fr")); 0147 const QString value(QStringLiteral("bla")); 0148 fieldGroup.setValue(value); 0149 lstFieldGroup << fieldGroup; 0150 addr.setFieldGroupList(lstFieldGroup); 0151 lst << addr; 0152 KContacts::VCardTool vcard; 0153 const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v4_0); 0154 QByteArray expected( 0155 "BEGIN:VCARD\r\n" 0156 "VERSION:4.0\r\n" 0157 "EMAIL:foo@kde.org\r\n" 0158 "N:;;;;\r\n" 0159 "UID:testuid\r\n" 0160 "fr:bla\r\n" 0161 "END:VCARD\r\n\r\n"); 0162 0163 QCOMPARE(ba, expected); 0164 } 0165 0166 void FieldGroupTest::shouldCreateVCardWithTwoLang() 0167 { 0168 KContacts::AddresseeList lst; 0169 KContacts::Addressee addr; 0170 addr.setEmails(QStringList() << QStringLiteral("foo@kde.org")); 0171 addr.setUid(QStringLiteral("testuid")); 0172 KContacts::FieldGroup::List lstFieldGroup; 0173 KContacts::FieldGroup fieldGroup1(QStringLiteral("fr")); 0174 const QString value(QStringLiteral("bla")); 0175 fieldGroup1.setValue(value); 0176 0177 KContacts::FieldGroup fieldGroup2(QStringLiteral("fr2")); 0178 fieldGroup2.setValue(value); 0179 lstFieldGroup << fieldGroup1 << fieldGroup2; 0180 addr.setFieldGroupList(lstFieldGroup); 0181 lst << addr; 0182 KContacts::VCardTool vcard; 0183 const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v4_0); 0184 QByteArray expected( 0185 "BEGIN:VCARD\r\n" 0186 "VERSION:4.0\r\n" 0187 "EMAIL:foo@kde.org\r\n" 0188 "N:;;;;\r\n" 0189 "UID:testuid\r\n" 0190 "fr:bla\r\n" 0191 "fr2:bla\r\n" 0192 "END:VCARD\r\n\r\n"); 0193 0194 QCOMPARE(ba, expected); 0195 } 0196 0197 void FieldGroupTest::shouldCreateVCardWithParameters() 0198 { 0199 KContacts::AddresseeList lst; 0200 KContacts::Addressee addr; 0201 addr.setEmails(QStringList() << QStringLiteral("foo@kde.org")); 0202 addr.setUid(QStringLiteral("testuid")); 0203 const QString value(QStringLiteral("bla")); 0204 KContacts::FieldGroup::List lstFieldGroup; 0205 KContacts::FieldGroup fieldGroup(QStringLiteral("fr")); 0206 KContacts::ParameterMap params; 0207 params.push_back({QStringLiteral("Foo1"), {QStringLiteral("bla1"), QStringLiteral("blo1")}}); 0208 params.push_back({QStringLiteral("Foo2"), {QStringLiteral("bla2"), QStringLiteral("blo2")}}); 0209 fieldGroup.setParams(params); 0210 fieldGroup.setValue(value); 0211 lstFieldGroup << fieldGroup; 0212 addr.setFieldGroupList(lstFieldGroup); 0213 lst << addr; 0214 KContacts::VCardTool vcard; 0215 const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v4_0); 0216 QByteArray expected( 0217 "BEGIN:VCARD\r\n" 0218 "VERSION:4.0\r\n" 0219 "EMAIL:foo@kde.org\r\n" 0220 "N:;;;;\r\n" 0221 "UID:testuid\r\n" 0222 "fr;FOO1=bla1,blo1;FOO2=bla2,blo2:bla\r\n" 0223 "END:VCARD\r\n\r\n"); 0224 QCOMPARE(ba, expected); 0225 } 0226 0227 void FieldGroupTest::shouldNotGenerateFieldGroupForVCard3() 0228 { 0229 KContacts::AddresseeList lst; 0230 KContacts::Addressee addr; 0231 addr.setEmails(QStringList() << QStringLiteral("foo@kde.org")); 0232 addr.setUid(QStringLiteral("testuid")); 0233 KContacts::FieldGroup::List lstFieldGroup; 0234 KContacts::FieldGroup fieldGroup(QStringLiteral("fr")); 0235 KContacts::ParameterMap params; 0236 params.push_back({QStringLiteral("Foo1"), {QStringLiteral("bla1"), QStringLiteral("blo1")}}); 0237 params.push_back({QStringLiteral("Foo2"), {QStringLiteral("bla2"), QStringLiteral("blo2")}}); 0238 fieldGroup.setParams(params); 0239 const QString value(QStringLiteral("bla")); 0240 fieldGroup.setValue(value); 0241 lstFieldGroup << fieldGroup; 0242 addr.setFieldGroupList(lstFieldGroup); 0243 lst << addr; 0244 KContacts::VCardTool vcard; 0245 const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v3_0); 0246 QByteArray expected( 0247 "BEGIN:VCARD\r\n" 0248 "VERSION:3.0\r\n" 0249 "EMAIL:foo@kde.org\r\n" 0250 "N:;;;;\r\n" 0251 "UID:testuid\r\n" 0252 "fr;FOO1=bla1,blo1;FOO2=bla2,blo2:bla\r\n" 0253 "END:VCARD\r\n\r\n"); 0254 QCOMPARE(ba, expected); 0255 } 0256 0257 QTEST_MAIN(FieldGroupTest)