File indexing completed on 2024-04-21 03:52:41
0001 /* 0002 This file is part of the kcalcore library. 0003 0004 SPDX-FileCopyrightText: 2007-2008 Allen Winter <winter@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 #include "testjournal.h" 0009 #include "journal.h" 0010 0011 #include <QTest> 0012 QTEST_MAIN(JournalTest) 0013 0014 using namespace KCalendarCore; 0015 0016 void JournalTest::testValidity() 0017 { 0018 QDate dt = QDate::currentDate(); 0019 Journal journal; 0020 journal.setDtStart(QDateTime(dt, {})); 0021 journal.setAllDay(true); 0022 journal.setSummary(QStringLiteral("Journal Summary")); 0023 journal.setDescription(QStringLiteral("This is a description of my journal")); 0024 journal.setLocation(QStringLiteral("the place")); 0025 QCOMPARE(journal.typeStr(), QByteArray("Journal")); 0026 QVERIFY(journal.summary() == QLatin1String("Journal Summary")); 0027 QVERIFY(journal.location() == QLatin1String("the place")); 0028 } 0029 0030 void JournalTest::testCompare() 0031 { 0032 QDate dt = QDate::currentDate(); 0033 Journal journal1; 0034 journal1.setDtStart(QDateTime(dt, {})); 0035 journal1.setAllDay(true); 0036 journal1.setSummary(QStringLiteral("Journal Summary")); 0037 journal1.setDescription(QStringLiteral("This is a description of my journal")); 0038 journal1.setLocation(QStringLiteral("the place")); 0039 0040 Journal journal2; 0041 journal2.setDtStart(QDateTime(dt, {}).addDays(1)); 0042 journal2.setAllDay(true); 0043 journal2.setSummary(QStringLiteral("Journal2 Summary")); 0044 journal2.setDescription(QStringLiteral("This is a description of another journal")); 0045 journal2.setLocation(QStringLiteral("the other place")); 0046 0047 QVERIFY(!(journal1 == journal2)); 0048 QVERIFY(journal2.summary() == QLatin1String("Journal2 Summary")); 0049 } 0050 0051 void JournalTest::testClone() 0052 { 0053 QDate dt = QDate::currentDate(); 0054 Journal journal1; 0055 journal1.setDtStart(QDateTime(dt, {})); 0056 journal1.setAllDay(true); 0057 journal1.setSummary(QStringLiteral("Journal1 Summary")); 0058 journal1.setDescription(QStringLiteral("This is a description of the first journal")); 0059 journal1.setLocation(QStringLiteral("the place")); 0060 0061 Journal *journal2 = journal1.clone(); 0062 QVERIFY(journal1.summary() == journal2->summary()); 0063 QVERIFY(journal1.dtStart() == journal2->dtStart()); 0064 QVERIFY(journal1.description() == journal2->description()); 0065 QVERIFY(journal1.location() == journal2->location()); 0066 delete journal2; 0067 } 0068 0069 void JournalTest::testRich() 0070 { 0071 QDate dt = QDate::currentDate(); 0072 Journal journal1; 0073 journal1.setDtStart(QDateTime(dt, {})); 0074 journal1.setAllDay(true); 0075 journal1.setSummary(QStringLiteral("<html><b><i>Journal1 Summary</i></b></html>"), true); 0076 journal1.setDescription(QStringLiteral("<html>This is a of the <b>first</b> journal</html>"), true); 0077 journal1.setLocation(QStringLiteral("<qt><h1>the place</h1></qt>"), true); 0078 QVERIFY(journal1.summaryIsRich()); 0079 QVERIFY(journal1.descriptionIsRich()); 0080 QVERIFY(journal1.locationIsRich()); 0081 } 0082 0083 void JournalTest::testCopyConstructor() 0084 { 0085 QDate dt = QDate::currentDate(); 0086 Journal journal1; 0087 journal1.setDtStart(QDateTime(dt, {})); 0088 journal1.setAllDay(true); 0089 journal1.setSummary(QStringLiteral("Journal1 Summary")); 0090 journal1.setDescription(QStringLiteral("This is a description of the first journal"), true); 0091 journal1.setLocation(QStringLiteral("the place")); 0092 0093 Journal journal2 {journal1}; 0094 QVERIFY(journal2.descriptionIsRich()); 0095 QVERIFY(journal1 == journal2); 0096 } 0097 0098 void JournalTest::testAssign() 0099 { 0100 QDate dt = QDate::currentDate(); 0101 Journal journal1; 0102 journal1.setDtStart(QDateTime(dt, {})); 0103 journal1.setAllDay(true); 0104 journal1.setSummary(QStringLiteral("Journal1 Summary")); 0105 journal1.setDescription(QStringLiteral("This is a description of the first journal"), true); 0106 journal1.setLocation(QStringLiteral("the place")); 0107 0108 Journal journal2; 0109 IncidenceBase *ib2 = & journal2; 0110 *ib2 = journal1; // Use IncidenceBase's virtual assignment. 0111 QVERIFY(journal2.descriptionIsRich()); 0112 QVERIFY(journal1 == journal2); 0113 } 0114 0115 void JournalTest::testSerializer_data() 0116 { 0117 QTest::addColumn<KCalendarCore::Journal::Ptr>("journal"); 0118 0119 Journal::Ptr journal1 = Journal::Ptr(new Journal()); 0120 0121 QTest::newRow("journal") << journal1; 0122 } 0123 0124 void JournalTest::testSerializer() 0125 { 0126 QFETCH(KCalendarCore::Journal::Ptr, journal); 0127 IncidenceBase::Ptr incidenceBase = journal.staticCast<KCalendarCore::IncidenceBase>(); 0128 0129 QByteArray array; 0130 QDataStream stream(&array, QIODevice::WriteOnly); 0131 stream << incidenceBase; 0132 0133 Journal::Ptr journal2 = Journal::Ptr(new Journal()); 0134 IncidenceBase::Ptr incidenceBase2 = journal2.staticCast<KCalendarCore::IncidenceBase>(); 0135 QVERIFY(*journal != *journal2); 0136 QDataStream stream2(&array, QIODevice::ReadOnly); 0137 stream2 >> incidenceBase2; 0138 QVERIFY(*journal == *journal2); 0139 } 0140 0141 #include "moc_testjournal.cpp"