Warning, file /frameworks/kcontacts/autotests/datetimetest.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 This file is part of kcontacts. 0003 SPDX-FileCopyrightText: 2016 Benjamin Löwe <benni@mytum.de> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "datetimetest.h" 0009 #include <QTest> 0010 #include <vcardtool_p.h> 0011 0012 DateTimeTest::DateTimeTest(QObject *parent) 0013 : QObject(parent) 0014 { 0015 } 0016 0017 DateTimeTest::~DateTimeTest() 0018 { 0019 } 0020 0021 void DateTimeTest::shouldParseDateTime() 0022 { 0023 using namespace KContacts; 0024 0025 QDateTime expected; 0026 QDateTime dt; 0027 bool timeIsValid; 0028 0029 dt = VCardTool::parseDateTime(QStringLiteral("2016-01-20T12:33:30+0200")); 0030 expected = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 30), Qt::OffsetFromUTC, 2 * 3600); 0031 QCOMPARE(dt, expected); 0032 QVERIFY(dt.isValid()); 0033 0034 dt = VCardTool::parseDateTime(QStringLiteral("2016-01-20T12:33:30+02")); 0035 QCOMPARE(dt, expected); 0036 QVERIFY(dt.isValid()); 0037 0038 dt = VCardTool::parseDateTime(QStringLiteral("20160120T123330+0200")); 0039 QCOMPARE(dt, expected); 0040 QVERIFY(dt.isValid()); 0041 0042 dt = VCardTool::parseDateTime(QStringLiteral("2016-01-20T12:33Z")); 0043 expected = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 0), Qt::UTC); 0044 QCOMPARE(dt, expected); 0045 QVERIFY(dt.isValid()); 0046 0047 dt = VCardTool::parseDateTime(QStringLiteral("2016-01-20T12:33-0300")); 0048 expected = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 0), Qt::OffsetFromUTC, -3 * 3600); 0049 QCOMPARE(dt, expected); 0050 QVERIFY(dt.isValid()); 0051 0052 dt = VCardTool::parseDateTime(QStringLiteral("2016-01-20T12:33"), &timeIsValid); 0053 expected = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 0), Qt::LocalTime); 0054 QCOMPARE(dt, expected); 0055 QVERIFY(timeIsValid); 0056 QVERIFY(dt.isValid()); 0057 0058 dt = VCardTool::parseDateTime(QStringLiteral("2016-01-20"), &timeIsValid); 0059 expected = QDateTime(QDate(2016, 1, 20), QTime(), Qt::LocalTime); 0060 QCOMPARE(dt, expected); 0061 QVERIFY(dt.isValid()); 0062 QVERIFY(!timeIsValid); 0063 QCOMPARE(dt.time(), QTime(0, 0)); 0064 0065 dt = VCardTool::parseDateTime(QStringLiteral("T1233Z"), &timeIsValid); 0066 QVERIFY(!dt.isValid()); 0067 QVERIFY(timeIsValid); 0068 QCOMPARE(dt.time(), QTime(12, 33)); 0069 0070 dt = VCardTool::parseDateTime(QStringLiteral("--0120")); 0071 expected = QDateTime(QDate(-1, 1, 20).startOfDay()); 0072 QCOMPARE(dt, expected); 0073 QVERIFY(dt.isValid()); 0074 0075 dt = VCardTool::parseDateTime(QStringLiteral("--01-20")); 0076 expected = QDateTime(QDate(-1, 1, 20).startOfDay()); 0077 QCOMPARE(dt, expected); 0078 QVERIFY(dt.isValid()); 0079 } 0080 0081 void DateTimeTest::shouldCreateDateTime() 0082 { 0083 using namespace KContacts; 0084 0085 QDateTime dt; 0086 QString str; 0087 QString expected; 0088 0089 dt = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 30), Qt::UTC); 0090 str = VCardTool::createDateTime(dt, VCard::v4_0); 0091 expected = QStringLiteral("20160120T123330Z"); 0092 QCOMPARE(str, expected); 0093 0094 dt = QDateTime(QDate(2016, 1, 20), QTime(), Qt::UTC); 0095 str = VCardTool::createDateTime(dt, VCard::v4_0); 0096 expected = QStringLiteral("20160120T000000Z"); 0097 QCOMPARE(str, expected); 0098 0099 dt = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 30), Qt::LocalTime); 0100 str = VCardTool::createDateTime(dt, VCard::v4_0); 0101 expected = QStringLiteral("20160120T123330"); 0102 QCOMPARE(str, expected); 0103 0104 dt = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 30), Qt::OffsetFromUTC, -2 * 3600); 0105 str = VCardTool::createDateTime(dt, VCard::v4_0); 0106 expected = QStringLiteral("20160120T123330-0200"); 0107 QCOMPARE(str, expected); 0108 0109 dt = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 30), Qt::OffsetFromUTC, +2.5 * 3600); 0110 str = VCardTool::createDateTime(dt, VCard::v4_0); 0111 expected = QStringLiteral("20160120T123330+0230"); 0112 QCOMPARE(str, expected); 0113 0114 dt = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 30), Qt::OffsetFromUTC, -2 * 3600); 0115 str = VCardTool::createDateTime(dt, VCard::v3_0); 0116 expected = QStringLiteral("2016-01-20T12:33:30-02:00"); 0117 QCOMPARE(str, expected); 0118 0119 dt = QDateTime(QDate(), QTime(12, 33, 30), Qt::OffsetFromUTC, -2 * 3600); 0120 str = VCardTool::createDateTime(dt, VCard::v3_0); 0121 expected = QString(); 0122 QCOMPARE(str, expected); 0123 0124 dt = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 30)); 0125 str = VCardTool::createDateTime(dt, VCard::v3_0, false); 0126 expected = QStringLiteral("2016-01-20"); 0127 QCOMPARE(str, expected); 0128 0129 dt = QDateTime(QDate(2016, 1, 20), QTime(12, 33, 30)); 0130 str = VCardTool::createDateTime(dt, VCard::v4_0, false); 0131 expected = QStringLiteral("20160120"); 0132 QCOMPARE(str, expected); 0133 } 0134 0135 void DateTimeTest::shouldCreateDate() 0136 { 0137 using namespace KContacts; 0138 0139 QDate d; 0140 QString str; 0141 QString expected; 0142 0143 d = QDate(2016, 1, 20); 0144 str = VCardTool::createDate(d, VCard::v3_0); 0145 expected = QStringLiteral("2016-01-20"); 0146 QCOMPARE(str, expected); 0147 0148 d = QDate(2016, 1, 20); 0149 str = VCardTool::createDate(d, VCard::v4_0); 0150 expected = QStringLiteral("20160120"); 0151 QCOMPARE(str, expected); 0152 0153 d = QDate(-1, 1, 20); 0154 str = VCardTool::createDate(d, VCard::v3_0); 0155 expected = QStringLiteral("--01-20"); 0156 QCOMPARE(str, expected); 0157 0158 d = QDate(-1, 1, 20); 0159 str = VCardTool::createDate(d, VCard::v4_0); 0160 expected = QStringLiteral("--0120"); 0161 QCOMPARE(str, expected); 0162 } 0163 0164 QTEST_MAIN(DateTimeTest)