File indexing completed on 2024-04-14 03:51:21

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 "vcardlinetest.h"
0009 #include "vcardline_p.h"
0010 #include <QTest>
0011 
0012 VCardLineTest::VCardLineTest(QObject *parent)
0013     : QObject(parent)
0014 {
0015 }
0016 
0017 VCardLineTest::~VCardLineTest()
0018 {
0019 }
0020 
0021 void VCardLineTest::shouldHaveDefaultValue()
0022 {
0023     KContacts::VCardLine line;
0024     QVERIFY(line.identifier().isEmpty());
0025     QVERIFY(line.group().isEmpty());
0026     QVERIFY(line.parameterList().isEmpty());
0027     QVERIFY(line.value().isNull());
0028 }
0029 
0030 void VCardLineTest::shouldAssignValues()
0031 {
0032     KContacts::VCardLine line;
0033     const QString identifier(QStringLiteral("foo"));
0034     const QString group(QStringLiteral("bla"));
0035     line.setIdentifier(identifier);
0036     line.setGroup(group);
0037     QMap<QString, QString> map;
0038     for (int i = 0; i < 5; ++i) {
0039         map.insert(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
0040         line.addParameter(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
0041     }
0042     const QVariant valueVariant = QVariant(QStringLiteral("a"));
0043     line.setValue(valueVariant);
0044 
0045     QVERIFY(!line.parameterList().isEmpty());
0046     QCOMPARE(line.parameterList(), QStringList() << map.keys());
0047 
0048     QCOMPARE(line.identifier(), identifier);
0049 
0050     QCOMPARE(line.group(), group);
0051     QCOMPARE(line.value(), valueVariant);
0052 }
0053 
0054 void VCardLineTest::shouldCopyValue()
0055 {
0056     KContacts::VCardLine line;
0057     const QString identifier(QStringLiteral("foo"));
0058     const QString group(QStringLiteral("bla"));
0059     line.setIdentifier(identifier);
0060     line.setGroup(group);
0061     QMap<QString, QString> map;
0062     for (int i = 0; i < 5; ++i) {
0063         map.insert(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
0064         line.addParameter(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
0065     }
0066     const QVariant valueVariant = QVariant(QStringLiteral("a"));
0067     line.setValue(valueVariant);
0068 
0069     QVERIFY(!line.parameterList().isEmpty());
0070     QCOMPARE(line.parameterList(), QStringList() << map.keys());
0071 
0072     QCOMPARE(line.identifier(), identifier);
0073 
0074     QCOMPARE(line.group(), group);
0075     QCOMPARE(line.value(), valueVariant);
0076 
0077     KContacts::VCardLine copyLine(line);
0078     QVERIFY(!copyLine.parameterList().isEmpty());
0079     QCOMPARE(copyLine.parameterList(), QStringList() << map.keys());
0080 
0081     QCOMPARE(copyLine.identifier(), identifier);
0082 
0083     QCOMPARE(copyLine.group(), group);
0084     QCOMPARE(copyLine.value(), valueVariant);
0085 }
0086 
0087 void VCardLineTest::shouldEqualValue()
0088 {
0089     KContacts::VCardLine line;
0090     const QString identifier(QStringLiteral("foo"));
0091     const QString group(QStringLiteral("bla"));
0092     line.setIdentifier(identifier);
0093     line.setGroup(group);
0094     QMap<QString, QString> map;
0095     for (int i = 0; i < 5; ++i) {
0096         map.insert(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
0097         line.addParameter(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
0098     }
0099     const QVariant valueVariant = QVariant(QStringLiteral("a"));
0100     line.setValue(valueVariant);
0101 
0102     QVERIFY(!line.parameterList().isEmpty());
0103     QCOMPARE(line.parameterList(), QStringList() << map.keys());
0104 
0105     QCOMPARE(line.identifier(), identifier);
0106 
0107     QCOMPARE(line.group(), group);
0108     QCOMPARE(line.value(), valueVariant);
0109 
0110     KContacts::VCardLine copyLine(line);
0111     QVERIFY(line == copyLine);
0112 }
0113 
0114 QTEST_MAIN(VCardLineTest)
0115 
0116 #include "moc_vcardlinetest.cpp"