summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2021-08-20 14:02:42 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2021-09-20 15:05:36 +0200
commit7943480f0f0cf130f4ca104d7e9235bbb2ba6ec2 (patch)
tree2c0e549b57c961472eee92fbee04eb30f8ad60bf /tests
parenta5d501000ea4eb9d282ed0a15e7c5fb1e1837712 (diff)
Fix QDateTimeParser's handling of 't' format to match serialization
This amends commit 68f19fb630dc02463c2d61fc511de7407687795e to only consume one 't' from the format string, to match qlocale.cpp's serialization of time-zone specifiers, which only consumes one, so will repeat the time-zone specifier as many times as unquoted t appears in the format. It's hard to imagine why anyone would want this behavior, but it's what our serialization has always done and parsing should match serialization. Add test-cases for double time-zone specifier. Delete a lie in the process. Task-number: QTBUG-95966 Change-Id: I574896040a74085dee89a4fefd8384be44ad827b Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp
index e03bb995be..cb93439bad 100644
--- a/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp
@@ -212,7 +212,6 @@ tst_QDateTime::tst_QDateTime()
&& QDate(1990, 7, 1).startOfDay().toSecsSinceEpoch() == 646783200
&& QDate(1990, 1, 1).startOfDay().toSecsSinceEpoch() == 631148400
&& QDate(1979, 1, 1).startOfDay().toSecsSinceEpoch() == 283993200
- // .toSecsSinceEpoch() returns -1 for everything before this:
&& QDateTime(QDate(1970, 1, 1), QTime(1, 0)).toSecsSinceEpoch() == 0);
// Use .toMSecsSinceEpoch() if you really need to test anything earlier.
@@ -1084,6 +1083,8 @@ void tst_QDateTime::toString_strformat()
QCOMPARE(testDate.toString("yyyy-MM-dd"), QString("2013-01-01"));
QCOMPARE(testTime.toString("hh:mm:ss"), QString("01:02:03"));
QCOMPARE(testDateTime.toString("yyyy-MM-dd hh:mm:ss t"), QString("2013-01-01 01:02:03 UTC"));
+ // TODO QTBUG-95966: find better ways to use repeated 't'
+ QCOMPARE(testDateTime.toString("yyyy-MM-dd hh:mm:ss tt"), QString("2013-01-01 01:02:03 UTCUTC"));
}
#endif // datestring
@@ -2908,6 +2909,10 @@ void tst_QDateTime::fromStringStringFormat_localTimeZone_data()
QTest::newRow("local-timezone-with-offset:Etc/GMT+3") << QByteArrayLiteral("GMT")
<< QString("2008-10-13 Etc/GMT+3 11.50") << QString("yyyy-MM-dd t hh.mm")
<< QDateTime(QDate(2008, 10, 13), QTime(11, 50), etcGmtWithOffset);
+ // TODO QTBUG-95966: find better ways to use repeated 't'
+ QTest::newRow("double-timezone-with-offset:Etc/GMT+3") << QByteArrayLiteral("GMT")
+ << QString("2008-10-13 Etc/GMT+3Etc/GMT+3 11.50") << QString("yyyy-MM-dd tt hh.mm")
+ << QDateTime(QDate(2008, 10, 13), QTime(11, 50), etcGmtWithOffset);
}
QTimeZone gmtWithOffset("GMT-2");
if (gmtWithOffset.isValid()) {