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"