File indexing completed on 2024-05-05 13:52:21
0001 /* 0002 SPDX-FileCopyrightText: 2015 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "kmime_dateformatter.h" 0008 0009 #include <QTest> 0010 #include <QObject> 0011 #include <QDateTime> 0012 #include <QTimeZone> 0013 0014 using namespace KMime; 0015 0016 class DateFormatterTest : public QObject 0017 { 0018 Q_OBJECT 0019 private Q_SLOTS: 0020 0021 void testFancyFormat() 0022 { 0023 DateFormatter f(DateFormatter::Fancy); 0024 0025 auto dt = QDateTime::currentDateTime(); 0026 dt.setTime(QTime(12, 34, 56)); 0027 QCOMPARE(f.dateString(dt), u"Today 12:34 PM"); 0028 0029 dt.setDate(dt.date().addDays(-1)); 0030 QCOMPARE(f.dateString(dt), u"Yesterday 12:34 PM"); 0031 0032 dt.setDate(dt.date().addDays(-1)); 0033 QVERIFY(f.dateString(dt).startsWith( 0034 QLocale::c().toString(dt, QLatin1StringView("dddd")))); 0035 } 0036 0037 void testLocalizedFormat() 0038 { 0039 DateFormatter f(DateFormatter::Localized); 0040 0041 auto dt = QDateTime(QDate(2015, 5, 26), QTime(12, 34, 56)); 0042 QCOMPARE(f.dateString(dt, QLatin1StringView("de")), 0043 QString::fromLatin1("26.05.15 12:34")); 0044 } 0045 0046 void testFormat_data() 0047 { 0048 QTest::addColumn<KMime::DateFormatter::FormatType>("format"); 0049 QTest::addColumn<QDateTime>("dt"); 0050 QTest::addColumn<QString>("output"); 0051 0052 QTest::newRow("ctime") << DateFormatter::CTime << QDateTime(QDate(2023, 11, 18), QTime(17, 34, 56)) << QStringLiteral("Sat Nov 18 17:34:56 2023"); 0053 } 0054 0055 void testFormat() 0056 { 0057 QFETCH(KMime::DateFormatter::FormatType, format); 0058 QFETCH(QDateTime, dt); 0059 QFETCH(QString, output); 0060 0061 KMime::DateFormatter formatter(format); 0062 QCOMPARE(formatter.dateString(dt), output); 0063 } 0064 0065 void testCustomFormat() 0066 { 0067 DateFormatter f(DateFormatter::Custom); 0068 f.setCustomFormat(QStringLiteral("hh:mm Z")); 0069 auto dt = QDateTime(QDate(2023, 11, 18), QTime(17, 34, 56), QTimeZone("Europe/Brussels")); 0070 QCOMPARE(f.dateString(dt), QLatin1StringView("17:34 +0100")); 0071 } 0072 }; 0073 0074 QTEST_MAIN(DateFormatterTest) 0075 0076 #include "dateformattertest.moc"