File indexing completed on 2024-05-05 09:36:08
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(QLocale::c().toString(dt, QLatin1String("dddd")))); 0034 } 0035 0036 void testLocalizedFormat() 0037 { 0038 DateFormatter f(DateFormatter::Localized); 0039 0040 auto dt = QDateTime(QDate(2015, 5, 26), QTime(12, 34, 56)); 0041 QCOMPARE(f.dateString(dt, QLatin1String("de")), QString::fromLatin1("26.05.15 12:34")); 0042 } 0043 0044 void testFormat_data() 0045 { 0046 QTest::addColumn<KMime::DateFormatter::FormatType>("format"); 0047 QTest::addColumn<QDateTime>("dt"); 0048 QTest::addColumn<QString>("output"); 0049 0050 QTest::newRow("ctime") << DateFormatter::CTime << QDateTime(QDate(2023, 11, 18), QTime(17, 34, 56)) << QStringLiteral("Sat Nov 18 17:34:56 2023"); 0051 } 0052 0053 void testFormat() 0054 { 0055 QFETCH(KMime::DateFormatter::FormatType, format); 0056 QFETCH(QDateTime, dt); 0057 QFETCH(QString, output); 0058 0059 KMime::DateFormatter formatter(format); 0060 QCOMPARE(formatter.dateString(dt), output); 0061 } 0062 0063 void testCustomFormat() 0064 { 0065 DateFormatter f(DateFormatter::Custom); 0066 f.setCustomFormat(QStringLiteral("hh:mm Z")); 0067 auto dt = QDateTime(QDate(2023, 11, 18), QTime(17, 34, 56), QTimeZone("Europe/Brussels")); 0068 QCOMPARE(f.dateString(dt), QLatin1String("17:34 +0100")); 0069 } 0070 }; 0071 0072 QTEST_MAIN(DateFormatterTest) 0073 0074 #include "dateformattertest.moc"