File indexing completed on 2024-05-12 05:17:32
0001 /* 0002 SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #include <text/terminalfinder.cpp> 0007 0008 #include <KItinerary/Flight> 0009 #include <KItinerary/Place> 0010 0011 #include <QTest> 0012 0013 using namespace KItinerary; 0014 0015 #define s(x) QStringLiteral(x) 0016 0017 class TerminalFinderTest : public QObject 0018 { 0019 Q_OBJECT 0020 private Q_SLOTS: 0021 void testTerminalFindingAtStart_data() 0022 { 0023 QTest::addColumn<QString>("input"); 0024 QTest::addColumn<int>("len"); 0025 QTest::addColumn<QString>("terminalName"); 0026 0027 QTest::newRow("empty") << QString() << -1 << QString(); 0028 QTest::newRow("no terminal") << s("Paris Charles de Gaulle") << -1 << QString(); 0029 QTest::newRow("CDG 1") << s("PARIS, FR (CHARLES DE GAULLE), TERMINAL 2E") << -1 << QString(); 0030 QTest::newRow("CDG 2") << s(" (Terminal 2D)") << 14 << s("2D"); 0031 QTest::newRow("CDG 3") << s(" - AEROGARE 2") << 13 << s("2"); 0032 QTest::newRow("LHR") << s("-Terminal 2") << 11 << s("2"); 0033 QTest::newRow("MAD") << s(", TERMINAL 4S") << 13 << s("4S"); 0034 QTest::newRow("DTW") << s(" TERMINAL EM") << 12 << s("EM"); 0035 QTest::newRow("MRS1") << s(" - TERMINAL 1A") << 14 << s("1A"); 0036 QTest::newRow("MRS2") << s(" - TERMINAL 1A\nmore data") << 14 << s("1A"); 0037 QTest::newRow("GTW EN") << s(" (North Terminal)") << 17 << s("North"); 0038 QTest::newRow("GTW DE") << s(" (Terminal Nord)") << 16 << s("Nord"); 0039 QTest::newRow("TXL1") << s("(Terminal C)") << 12 << s("C"); 0040 QTest::newRow("TXL2") << s("(Terminal C) something else") << 12 << s("C"); 0041 QTest::newRow("DEL1") << s(" T2") << 3 << s("2"); 0042 QTest::newRow("DEL2") << s(" (T3)") << 5 << s("3"); 0043 QTest::newRow("DEL3") << s(" T2 some other text") << 3 << s("2"); 0044 QTest::newRow("DEL4") << s(" (T3) more information") << 5 << s("3"); 0045 QTest::newRow("DEL5") << s(" (T1C) ") << 6 << s("1C"); 0046 QTest::newRow("DEL6") << s(" T-3 (DEL)") << 4 << s("3"); 0047 QTest::newRow("FRA") << s(", Terminal 2 (FRA)\nMadrid (MAD)") << 12 << s("2"); 0048 } 0049 0050 void testTerminalFindingAtStart() 0051 { 0052 QFETCH(QString, input); 0053 QFETCH(int, len); 0054 QFETCH(QString, terminalName); 0055 0056 TerminalFinder f(u"^", u"(?=\\b|\\s|$)"); 0057 const auto res = f.find(input); 0058 QCOMPARE(res.name, terminalName); 0059 QCOMPARE(res.start, len == -1 ? -1 : 0); 0060 QCOMPARE(res.end, len); 0061 } 0062 }; 0063 0064 QTEST_GUILESS_MAIN(TerminalFinderTest) 0065 0066 #include "terminalfindertest.moc"