File indexing completed on 2024-04-21 05:18:09

0001 /*
0002     SPDX-FileCopyrightText: 2015 Albert Astals Cid <aacid@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "parsedatetimetest.h"
0008 
0009 #include <QTest>
0010 
0011 #include "kmime_header_parsing.h"
0012 
0013 using namespace KMime;
0014 
0015 QTEST_MAIN(ParseDateTimeTest)
0016 
0017 void ParseDateTimeTest::testParseDateTime_data()
0018 {
0019     QTest::addColumn<QByteArray>("input");
0020     QTest::addColumn<QDateTime>("expResult");
0021 
0022     QTest::newRow("1")
0023         << QByteArray("Sat, 25 Apr 2015 12:10:48 +0000")
0024         << QDateTime(QDateTime::fromString(QStringLiteral("2015-04-25T12:10:48+00:00"), Qt::ISODate));
0025     QTest::newRow("2")
0026         << QByteArray("Fri, 24 Apr 2015 10:22:42 +0200")
0027         << QDateTime(QDateTime::fromString(QStringLiteral("2015-04-24T10:22:42+02:00"), Qt::ISODate));
0028     QTest::newRow("3")
0029         << QByteArray("Thu, 23 Apr 2015 21:43:32 -0300")
0030         << QDateTime(QDateTime::fromString(QStringLiteral("2015-04-23T21:43:32-03:00"), Qt::ISODate));
0031     QTest::newRow("4")
0032         << QByteArray("Fri 24 Apr 2015 10:39:15 +0200")
0033         << QDateTime(QDateTime::fromString(QStringLiteral("2015-04-24T10:39:15+02:00"), Qt::ISODate));
0034     QTest::newRow("5")
0035         << QByteArray("Fri 24 Apr 2015 10:39:15 +02:00")
0036         << QDateTime(QDateTime::fromString(QStringLiteral("2015-04-24T10:39:15+02:00"), Qt::ISODate));
0037     QTest::newRow("6")
0038         << QByteArray("Fri 24 Apr 2015 10:39:15 +02:23")
0039         << QDateTime(QDateTime::fromString(QStringLiteral("2015-04-24T10:39:15+02:23"), Qt::ISODate));
0040     QTest::newRow("7")
0041         << QByteArray("Fri 24 Apr 2015 10:39:15 +02a")
0042         << QDateTime();
0043     QTest::newRow("8")
0044         << QByteArray("Fri 24 Apr 2015 10:39:15 +02:")
0045         << QDateTime();
0046     QTest::newRow("9")
0047         << QByteArray("Fri 24 Apr 2015 10:39:15 +02:af")
0048         << QDateTime();
0049     QTest::newRow("10")
0050         << QByteArray("Fri 24 Apr 2015 10:39:15 +in:af")
0051         << QDateTime();
0052 }
0053 
0054 void ParseDateTimeTest::testParseDateTime()
0055 {
0056     QFETCH(QByteArray, input);
0057     QFETCH(QDateTime, expResult);
0058 
0059     QDateTime result;
0060     const char *scursor = input.constData();
0061     const char *send = input.constData() + input.length();
0062 
0063     const bool success = KMime::HeaderParsing::parseDateTime(scursor, send, result, false);
0064     QCOMPARE(success, !result.isNull());
0065     QCOMPARE(result, expResult);
0066 }
0067 
0068 
0069 #include "moc_parsedatetimetest.cpp"