File indexing completed on 2024-05-12 05:13:44

0001 /*
0002     SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org>
0003     SPDX-License-Identifier: LGPL-2.0-or-later
0004 */
0005 
0006 #include "calendarhelper.h"
0007 #include "transfer.h"
0008 
0009 #include <KPublicTransport/Journey>
0010 
0011 #include <KCalendarCore/ICalFormat>
0012 
0013 #include <QtTest/qtest.h>
0014 #include <QStandardPaths>
0015 
0016 class CalendarHelperTest : public QObject
0017 {
0018     Q_OBJECT
0019 private Q_SLOTS:
0020     void initTestCase()
0021     {
0022         qputenv("TZ", "UTC");
0023         QStandardPaths::setTestModeEnabled(true);
0024     }
0025 
0026     void testFillPreTransfer()
0027     {
0028         KCalendarCore::Event::Ptr event(new KCalendarCore::Event);
0029         event->setDtStart(QDateTime({2017, 9, 10}, {6, 30}, QTimeZone("Europe/Berlin")));
0030 
0031         Transfer transfer;
0032         transfer.setAlignment(Transfer::Before);
0033         transfer.setState(Transfer::Selected);
0034         transfer.setAnchorTimeDelta(60 * 60);
0035         transfer.setAnchorTime(QDateTime({2017, 9, 10}, {6, 30}, QTimeZone("Europe/Berlin")));
0036         transfer.setToName(QStringLiteral("Berlin Airport"));
0037 
0038         KPublicTransport::Journey jny;
0039         KPublicTransport::JourneySection section;
0040         section.setScheduledDepartureTime(QDateTime({2017, 9, 10}, {5, 0}, QTimeZone("Europe/Berlin")));
0041         section.setScheduledArrivalTime(QDateTime({2017, 9, 10}, {5, 30}, QTimeZone("Europe/Berlin")));
0042         jny.setSections({section});
0043         transfer.setJourney(jny);
0044 
0045         CalendarHelper::fillPreTransfer(event, transfer);
0046         KCalendarCore::ICalFormat format;
0047         qDebug().noquote() << format.toString(event);
0048 
0049         QCOMPARE(event->nonKDECustomProperty("X-APPLE-TRAVEL-DURATION"), QLatin1StringView("PT1H30M"));
0050         QCOMPARE(event->alarms().size(), 1);
0051         const auto alarm = event->alarms().at(0);
0052         QCOMPARE(alarm->startOffset().asSeconds(), -5700);
0053     }
0054 };
0055 
0056 QTEST_GUILESS_MAIN(CalendarHelperTest)
0057 
0058 #include "calendarhelpertest.moc"