Autotest: make tst_QDateTime pass when LC_TIME != en_US

QDateTime::toString for Qt::TextDate unconditionally uses the system
locale (because QDate::shortDayName and QDate::shortMonthName do).
Setting the default QLocale has no effect. If you ask me, those two
QDate methods are buggy, but they are documented that way.

Change-Id: I408dcb81ba654c929f25ffff1427366b04da5a43
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
bb10
Thiago Macieira 2016-01-07 09:53:58 -08:00
parent d921a9bd15
commit 7dceb22748
1 changed files with 6 additions and 9 deletions

View File

@ -802,16 +802,18 @@ void tst_QDateTime::toString_textDate_data()
QTest::addColumn<QDateTime>("datetime");
QTest::addColumn<QString>("expected");
QString wednesdayJanuary = QDate::shortDayName(3) + ' ' + QDate::shortMonthName(1);
QTest::newRow("localtime") << QDateTime(QDate(2013, 1, 2), QTime(1, 2, 3), Qt::LocalTime)
<< QString("Wed Jan 2 01:02:03 2013");
<< wednesdayJanuary + QString(" 2 01:02:03 2013");
QTest::newRow("utc") << QDateTime(QDate(2013, 1, 2), QTime(1, 2, 3), Qt::UTC)
<< QString("Wed Jan 2 01:02:03 2013 GMT");
<< wednesdayJanuary + QString(" 2 01:02:03 2013 GMT");
QTest::newRow("offset+") << QDateTime(QDate(2013, 1, 2), QTime(1, 2, 3), Qt::OffsetFromUTC,
10 * 60 * 60)
<< QString("Wed Jan 2 01:02:03 2013 GMT+1000");
<< wednesdayJanuary + QString(" 2 01:02:03 2013 GMT+1000");
QTest::newRow("offset-") << QDateTime(QDate(2013, 1, 2), QTime(1, 2, 3), Qt::OffsetFromUTC,
-10 * 60 * 60)
<< QString("Wed Jan 2 01:02:03 2013 GMT-1000");
<< wednesdayJanuary + QString(" 2 01:02:03 2013 GMT-1000");
QTest::newRow("invalid") << QDateTime()
<< QString("");
}
@ -821,9 +823,6 @@ void tst_QDateTime::toString_textDate()
QFETCH(QDateTime, datetime);
QFETCH(QString, expected);
QLocale oldLocale;
QLocale::setDefault(QLocale("en_US"));
QString result = datetime.toString(Qt::TextDate);
QCOMPARE(result, expected);
@ -833,8 +832,6 @@ void tst_QDateTime::toString_textDate()
QCOMPARE(resultDatetime.time(), datetime.time());
QCOMPARE(resultDatetime.timeSpec(), datetime.timeSpec());
QCOMPARE(resultDatetime.utcOffset(), datetime.utcOffset());
QLocale::setDefault(oldLocale);
}
void tst_QDateTime::toString_rfcDate_data()