From f02b132eaa2eebfc7183a591075b3ae05cb4a2b9 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Wed, 3 Aug 2022 15:57:08 +0200 Subject: [PATCH] Expand QDateTime edit constructor tests to cover Q(Date|Time)Edit The constructor_qdate() and constructor_qtime() tests only tested QDateTimeEdit with a QDate or QTime. Extend them to also test QDateEdit and QTimeEdit constructors, respectively. This revealed one surprise; the QDateEdit constructor doesn't replace an invalid QDate with the usual start-date, as the QDateTimeEdit does. It also serves to reproduce a bug reported in Qt 6.3, see Task-number. These are all marked XFail for now. Adapted on cherry-picking to make the tests work with their old columns rather than simplifying to a single column. Task-number: QTBUG-105322 Change-Id: Ifafb40a9b78d9314b74ca9a1710d362b9a3cb18d Reviewed-by: Thiago Macieira (cherry picked from commit d1d43b231f4c7c5663cb49875c2e5876f352b564) --- .../qdatetimeedit/tst_qdatetimeedit.cpp | 53 ++++++++++++++----- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp index 354a5f182f7..7111dd76ed1 100644 --- a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp +++ b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp @@ -524,13 +524,26 @@ void tst_QDateTimeEdit::constructor_qdate() testWidget->hide(); - QDateTimeEdit dte(parameter); - dte.show(); - QCOMPARE(dte.dateTime(), displayDateTime); - QCOMPARE(dte.minimumDate(), minimumDate); - QCOMPARE(dte.minimumTime(), minimumTime); - QCOMPARE(dte.maximumDate(), maximumDate); - QCOMPARE(dte.maximumTime(), maximumTime); + { + QDateTimeEdit dte(parameter); + dte.show(); + QCOMPARE(dte.dateTime(), displayDateTime); + QCOMPARE(dte.minimumDate(), minimumDate); + QCOMPARE(dte.minimumTime(), minimumTime); + QCOMPARE(dte.maximumDate(), maximumDate); + QCOMPARE(dte.maximumTime(), maximumTime); + } + { + QDateEdit dte(parameter); + dte.show(); + QEXPECT_FAIL("normal", "QTBUG-105322: constructors use wrong spec", Continue); + QEXPECT_FAIL("invalid", "Constructor neglects default replacement of invalid", Continue); + QCOMPARE(dte.date(), displayDateTime.date()); + QCOMPARE(dte.minimumDate(), minimumDate); + QCOMPARE(dte.minimumTime(), minimumTime); + QCOMPARE(dte.maximumDate(), maximumDate); + QCOMPARE(dte.maximumTime(), maximumTime); + } } void tst_QDateTimeEdit::constructor_qtime_data() @@ -564,13 +577,25 @@ void tst_QDateTimeEdit::constructor_qtime() testWidget->hide(); - QDateTimeEdit dte(parameter); - dte.show(); - QCOMPARE(dte.dateTime(), displayDateTime); - QCOMPARE(dte.minimumDate(), minimumDate); - QCOMPARE(dte.minimumTime(), minimumTime); - QCOMPARE(dte.maximumDate(), maximumDate); - QCOMPARE(dte.maximumTime(), maximumTime); + { + QDateTimeEdit dte(parameter); + dte.show(); + QCOMPARE(dte.dateTime(), displayDateTime); + QCOMPARE(dte.minimumDate(), minimumDate); + QCOMPARE(dte.minimumTime(), minimumTime); + QCOMPARE(dte.maximumDate(), maximumDate); + QCOMPARE(dte.maximumTime(), maximumTime); + } + { + QTimeEdit dte(parameter); + dte.show(); + QEXPECT_FAIL("", "QTBUG-105322: constructors use wrong spec", Abort); + QCOMPARE(dte.time(), displayDateTime.time()); + QCOMPARE(dte.minimumDate(), minimumDate); + QCOMPARE(dte.minimumTime(), minimumTime); + QCOMPARE(dte.maximumDate(), maximumDate); + QCOMPARE(dte.maximumTime(), maximumTime); + } } void tst_QDateTimeEdit::minimumDate_data()