File indexing completed on 2024-04-14 03:50:37
0001 /* 0002 * SPDX-FileCopyrightText: 2012 Christian Mollekopf <mollekopf@kolabsys.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-3.0-or-later 0005 */ 0006 0007 #include "testreadrecurrenceid.h" 0008 #include "exceptions.h" 0009 #include "icalformat.h" 0010 #include "memorycalendar.h" 0011 0012 #include <QDebug> 0013 #include <QTest> 0014 #include <QTimeZone> 0015 0016 QTEST_MAIN(TestReadRecurrenceId) 0017 0018 void TestReadRecurrenceId::testReadSingleException() 0019 { 0020 KCalendarCore::ICalFormat format; 0021 QFile file(QLatin1String(ICALTESTDATADIR) + QLatin1String("test_recurrenceid_single.ics")); 0022 QVERIFY(file.open(QIODevice::ReadOnly)); 0023 // qDebug() << file.readAll(); 0024 0025 KCalendarCore::Incidence::Ptr i = format.fromString(QString::fromUtf8(file.readAll())); 0026 if (!i) { 0027 qWarning() << "Failed to parse incidence!"; 0028 if (format.exception()) { 0029 qWarning() << format.exception()->arguments(); 0030 } 0031 } 0032 QVERIFY(i); 0033 QVERIFY(i->hasRecurrenceId()); 0034 } 0035 0036 void TestReadRecurrenceId::testReadSingleExceptionWithThisAndFuture() 0037 { 0038 KCalendarCore::ICalFormat format; 0039 QFile file(QLatin1String(ICALTESTDATADIR) + QLatin1String("test_recurrenceid_thisandfuture.ics")); 0040 QVERIFY(file.open(QIODevice::ReadOnly)); 0041 KCalendarCore::Incidence::Ptr i = format.fromString(QString::fromUtf8(file.readAll())); 0042 QVERIFY(i); 0043 QVERIFY(i->hasRecurrenceId()); 0044 QVERIFY(i->thisAndFuture()); 0045 } 0046 0047 void TestReadRecurrenceId::testReadWriteSingleExceptionWithThisAndFuture() 0048 { 0049 KCalendarCore::MemoryCalendar::Ptr cal(new KCalendarCore::MemoryCalendar(QTimeZone::utc())); 0050 KCalendarCore::ICalFormat format; 0051 KCalendarCore::Incidence::Ptr inc(new KCalendarCore::Event); 0052 QTimeZone tz("Europe/Berlin"); 0053 QDateTime startDate(QDate(2015, 1, 2), QTime(3, 4, 5), tz); 0054 inc->setDtStart(startDate); 0055 inc->setRecurrenceId(startDate); 0056 inc->setThisAndFuture(true); 0057 cal->addIncidence(inc); 0058 const QString result = format.toString(cal); 0059 qDebug() << result; 0060 0061 KCalendarCore::Incidence::Ptr i = format.fromString(result); 0062 QVERIFY(i); 0063 QVERIFY(i->hasRecurrenceId()); 0064 QVERIFY(i->thisAndFuture()); 0065 QCOMPARE(i->recurrenceId(), startDate); 0066 } 0067 0068 void TestReadRecurrenceId::testReadExceptionWithMainEvent() 0069 { 0070 KCalendarCore::MemoryCalendar::Ptr calendar(new KCalendarCore::MemoryCalendar(QTimeZone::utc())); 0071 KCalendarCore::ICalFormat format; 0072 QFile file(QLatin1String(ICALTESTDATADIR) + QLatin1String("test_recurrenceid.ics")); 0073 QVERIFY(file.open(QIODevice::ReadOnly)); 0074 format.fromString(calendar, QString::fromUtf8(file.readAll())); 0075 QCOMPARE(calendar->rawEvents().size(), 2); 0076 } 0077 0078 #include "moc_testreadrecurrenceid.cpp"