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

0001 /*
0002     SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "locationinformation.h"
0008 
0009 #include <QtTest/qtest.h>
0010 
0011 class LocationInformationTest : public QObject
0012 {
0013     Q_OBJECT
0014 private Q_SLOTS:
0015     void testTzCompare()
0016     {
0017         LocationInformation lhs;
0018         LocationInformation rhs;
0019         QVERIFY(lhs == rhs);
0020         lhs.setTimeZone(QTimeZone("Europe/Berlin"), {{2020, 02, 29}, {0, 0}});
0021         QVERIFY(lhs == rhs);
0022         QVERIFY(rhs == lhs);
0023 
0024         rhs.setTimeZone(QTimeZone("Europe/Vilnius"), {{2020, 02, 29}, {0, 0}});
0025         QCOMPARE(lhs == rhs, false);
0026         QCOMPARE(rhs == lhs, false);
0027 
0028         rhs.setTimeZone(QTimeZone("Europe/Brussels"), {{2020, 02, 29}, {0, 0}});
0029         QCOMPARE(lhs == rhs, true);
0030         QCOMPARE(rhs == lhs, true);
0031     }
0032 
0033     void testTzDiff()
0034     {
0035         LocationInformation l;
0036         l.setTimeZone(QTimeZone("Europe/Berlin"), {{2020, 02, 29}, {0, 0}});
0037         QCOMPARE(l.timeZoneDiffers(), false);
0038         QCOMPARE(l.timeZoneOffsetDelta(), 0);
0039         l.setTimeZone(QTimeZone("Europe/Vilnius"), {{2020, 02, 29}, {0, 0}});
0040         QCOMPARE(l.timeZoneDiffers(), true);
0041         QCOMPARE(l.timeZoneOffsetDelta(), 3600);
0042         QVERIFY(!l.timeZoneName().isEmpty());
0043         l.setTimeZone(QTimeZone("Europe/Berlin"), {{2020, 02, 29}, {0, 0}});
0044         QCOMPARE(l.timeZoneDiffers(), true);
0045         QCOMPARE(l.timeZoneOffsetDelta(), -3600);
0046         QVERIFY(!l.timeZoneName().isEmpty());
0047     }
0048 
0049     void testBug461438()
0050     {
0051         // UK -> BE transition - https://bugs.kde.org/461438
0052         LocationInformation info;
0053         info.setIsoCode(QStringLiteral("GB"));
0054         info.setIsoCode(QStringLiteral("BE"));
0055         QVERIFY(info.drivingSideDiffers());
0056         QCOMPARE(info.drivingSide(), KItinerary::KnowledgeDb::DrivingSide::Right);
0057         QCOMPARE(info.powerPlugCompatibility(), LocationInformation::Incompatible);
0058         QVERIFY(info.currencyDiffers());
0059         QCOMPARE(info.currencyCode(), QLatin1StringView("EUR"));
0060     }
0061 };
0062 
0063 QTEST_GUILESS_MAIN(LocationInformationTest)
0064 
0065 #include "locationinformationtest.moc"