diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-09-09 15:39:11 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2014-09-11 09:57:00 +0200 |
commit | 046cce32d9f818809382fcbbff0cfa4adfe8d3f7 (patch) | |
tree | c8ae8010377b5cc13967654d7950195db8281f5d /tests | |
parent | 91d6a63ab317817990c3b2306860adbd8916cca4 (diff) |
Fix setUTCXxx methods in Date
The methods where converting doing a localtime->UTC
conversion even though the input was already in UTC.
Task-number: QTBUG-38448
Change-Id: I4409275fade0dd2a677af2293edc87445f853879
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qml/qqmlecmascript/data/utcdate.qml | 34 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp | 16 |
2 files changed, 50 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/utcdate.qml b/tests/auto/qml/qqmlecmascript/data/utcdate.qml new file mode 100644 index 0000000000..7f66ee3f23 --- /dev/null +++ b/tests/auto/qml/qqmlecmascript/data/utcdate.qml @@ -0,0 +1,34 @@ +import QtQuick 2.0 +import Qt.test 1.0 + +Item { + MyDateClass { + id: mdc + } + + function check_utc(utcstr) { + var datetimeutc = utcstr.split('T') + var dateutc = datetimeutc[0].split('-') + var timeutc = datetimeutc[1].split(':') + var utcDate = new Date(0) + utcDate.setUTCFullYear(Number(dateutc[0])) + utcDate.setUTCMonth(Number(dateutc[1])-1) + utcDate.setUTCDate(Number(dateutc[2])) + utcDate.setUTCHours(Number(timeutc[0])) + utcDate.setUTCMinutes(Number(timeutc[1])) + utcDate.setUTCSeconds(Number(timeutc[2])) + if (utcDate.getUTCFullYear() != Number(dateutc[0])) + return false; + if (utcDate.getUTCMonth() != Number(dateutc[1])-1) + return false; + if (utcDate.getUTCDate() != Number(dateutc[2])) + return false; + if (utcDate.getUTCHours() != Number(timeutc[0])) + return false; + if (utcDate.getUTCMinutes() != Number(timeutc[1])) + return false; + if (utcDate.getUTCSeconds() != Number(timeutc[2])) + return false; + return true; + } +} diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp index 01125f86f6..c246647325 100644 --- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp +++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp @@ -199,6 +199,7 @@ private slots: void sequenceSort_data(); void sequenceSort(); void dateParse(); + void utcDate(); void qtbug_22464(); void qtbug_21580(); void singleV8BindingDestroyedDuringEvaluation(); @@ -7362,6 +7363,21 @@ void tst_qqmlecmascript::dateParse() } +void tst_qqmlecmascript::utcDate() +{ + QQmlComponent component(&engine, testFileUrl("utcdate.qml")); + + QObject *object = component.create(); + if (object == 0) + qDebug() << component.errorString(); + QVERIFY(object != 0); + + QVariant q; + QVariant val = QString::fromLatin1("2014-07-16T23:30:31"); + QMetaObject::invokeMethod(object, "check_utc", Q_RETURN_ARG(QVariant, q), Q_ARG(QVariant, val)); + QVERIFY(q.toBool() == true); +} + void tst_qqmlecmascript::concatenatedStringPropertyAccess() { QQmlComponent component(&engine, testFileUrl("concatenatedStringPropertyAccess.qml")); |