diff options
| author | Ulf Hermann <ulf.hermann@qt.io> | 2023-07-27 15:10:31 +0200 |
|---|---|---|
| committer | Ulf Hermann <ulf.hermann@qt.io> | 2023-08-18 14:26:04 +0200 |
| commit | 0f23346d2a660404d40d02a2d101eb4fc21c8b02 (patch) | |
| tree | cbff50164ae4220ddd2d5db8e3ad26136c89e1c6 /tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp | |
| parent | 37655a6e95153a7647d7c62614d4a81d734973d3 (diff) | |
QmlCompiler: Allow construction of Date objects
We map Date to QDateTime and special-case its constructors.
Task-number: QTBUG-111624
Change-Id: I0496f853613da3ccee9b6f6c4cf0adffa064f9f8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp')
| -rw-r--r-- | tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp index a42491c12a..29a9e9c637 100644 --- a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp +++ b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp @@ -66,6 +66,7 @@ private slots: void conversionDecrement(); void conversions(); void cppValueTypeList(); + void dateConstruction(); void dateConversions(); void deadShoeSize(); void dialogButtonBox(); @@ -1243,6 +1244,44 @@ void tst_QmlCppCodegen::cppValueTypeList() QCOMPARE(object->property("b").toDouble(), 13.5); } +void tst_QmlCppCodegen::dateConstruction() +{ + QQmlEngine engine; + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/dateConstruction.qml"_s)); + QVERIFY2(c.isReady(), qPrintable(c.errorString())); + QDateTime now = QDateTime::currentDateTime(); + QScopedPointer<QObject> o(c.create()); + QVERIFY(!o.isNull()); + QVERIFY(o->property("now").value<QDateTime>().toMSecsSinceEpoch() >= now.toMSecsSinceEpoch()); + QCOMPARE(o->property("now2"), o->property("now")); + QCOMPARE(o->property("fromString").value<QDateTime>(), + QDateTime(QDate(1995, 12, 17), QTime(3, 24), QTimeZone::LocalTime)); + QCOMPARE(o->property("fromNumber").value<QDateTime>().toMSecsSinceEpoch(), 777); + QCOMPARE(o->property("fromPrimitive").value<QDateTime>().toMSecsSinceEpoch(), 57); + o->setObjectName("foo"_L1); + QCOMPARE(o->property("fromPrimitive").value<QDateTime>(), + QDateTime(QDate(1997, 2, 13), QTime(13, 4, 12), QTimeZone::LocalTime)); + + QCOMPARE(o->property("from2").value<QDateTime>(), + QDateTime(QDate(1996, 2, 1), QTime(), QTimeZone::LocalTime)); + QCOMPARE(o->property("from3").value<QDateTime>(), + QDateTime(QDate(1996, 3, 3), QTime(), QTimeZone::LocalTime)); + QCOMPARE(o->property("from4").value<QDateTime>(), + QDateTime(QDate(1996, 4, 4), QTime(5, 0), QTimeZone::LocalTime)); + QCOMPARE(o->property("from5").value<QDateTime>(), + QDateTime(QDate(1996, 5, 5), QTime(6, 7), QTimeZone::LocalTime)); + QCOMPARE(o->property("from6").value<QDateTime>(), + QDateTime(QDate(1996, 6, 6), QTime(7, 8, 9), QTimeZone::LocalTime)); + QCOMPARE(o->property("from7").value<QDateTime>(), + QDateTime(QDate(1996, 7, 7), QTime(8, 9, 10, 11), QTimeZone::LocalTime)); + QCOMPARE(o->property("from8").value<QDateTime>(), + QDateTime(QDate(1996, 8, 8), QTime(9, 10, 11, 12), QTimeZone::LocalTime)); + + QCOMPARE(o->property("withUnderflow").value<QDateTime>(), + QDateTime(QDate(-6, 7, 24), QTime(16, 51, 50, 990), QTimeZone::LocalTime)); + QCOMPARE(o->property("invalid").value<QDateTime>(), QDateTime()); +} + void tst_QmlCppCodegen::dateConversions() { QQmlEngine engine; |
