1
#include <QtTest/QtTest>
3
Q_DECLARE_METATYPE(QDate)
4
Q_DECLARE_METATYPE(QTime)
6
#include <poppler-qt4.h>
8
class TestDateConv: public QObject
13
void checkDates_data();
15
void checkInvalidDates_data();
16
void checkInvalidDates();
19
void TestDateConv::initTestCase()
21
qRegisterMetaType<QDate>("QDate");
22
qRegisterMetaType<QTime>("QTime");
25
void TestDateConv::checkDates_data()
27
QTest::addColumn<QByteArray>("input");
28
QTest::addColumn<QDate>("day");
29
QTest::addColumn<QTime>("time");
31
// This is a typical case - all data provided
32
QTest::newRow("D:20040101121110")
33
<< QByteArray("D:20040101121110Z")
35
<< QTime( 12, 11, 10);
37
// The D: is strongly recommended, but optional
38
QTest::newRow("20040101121110")
39
<< QByteArray("20040101121110Z")
41
<< QTime( 12, 11, 10);
43
// Only the year is actually required
44
QTest::newRow("D:2006")
45
<< QByteArray("D:2006")
49
QTest::newRow("D:200602")
50
<< QByteArray("D:200602")
54
QTest::newRow("D:20060304")
55
<< QByteArray("D:20060304")
59
QTest::newRow("D:2006030405")
60
<< QByteArray("D:2006030405")
64
QTest::newRow("D:200603040512")
65
<< QByteArray("D:200603040512")
69
// If the timezone isn't specified, I assume UTC
70
QTest::newRow("D:20060304051226")
71
<< QByteArray("D:20060304051226")
75
// Check for real timezone conversions
76
QTest::newRow("D:20030131115258-04'00'")
77
<< QByteArray("D:20030131115258-04'00'")
78
<< QDate( 2003, 1, 31)
79
<< QTime( 15, 52, 58);
81
QTest::newRow("D:20030131115258+05'00'")
82
<< QByteArray("D:20030131115258+05'00'")
83
<< QDate( 2003, 1, 31)
86
// There are places that have non-hour offsets
87
// Yep, that means you Adelaide.
88
QTest::newRow("D:20030131115258+08'30'")
89
<< QByteArray("D:20030131115258+08'30'")
90
<< QDate( 2003, 1, 31)
93
QTest::newRow("D:20030131115258-08'30'")
94
<< QByteArray("D:20030131115258-08'30'")
95
<< QDate( 2003, 1, 31)
96
<< QTime( 20, 22, 58);
99
void TestDateConv::checkDates()
101
QFETCH(QByteArray, input);
105
QCOMPARE( Poppler::convertDate(input.data()), QDateTime(day, time, Qt::UTC) );
108
void TestDateConv::checkInvalidDates_data()
110
QTest::addColumn<QByteArray>("input");
113
QTest::newRow("Null data")
117
QTest::newRow("Empty data")
121
QTest::newRow("One character")
125
QTest::newRow("'D:'")
129
QTest::newRow("Not a date")
130
<< QByteArray("D:IAmNotAValidDate");
133
void TestDateConv::checkInvalidDates()
135
QFETCH(QByteArray, input);
137
QCOMPARE(Poppler::convertDate(input.data()), QDateTime());
140
QTEST_MAIN(TestDateConv)
142
#include "check_dateConversion.moc"