tst_QDateTimeEdit::editingRanged(): use QScopedPointer

Test would previously have leaked on failure.
While checking for other uses of delete-after-checks, simplify one
place that tested deleting a calendar widget lead to recreation.

Change-Id: I9524902a02dd42793bcf71113c6799dc925ac4a0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 4652da536a5db3608e6026b27dfe808227b721f2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Edward Welbourne 2021-06-02 12:15:05 +02:00 committed by Qt Cherry-pick Bot
parent 7f70b5350a
commit 03f0a26e84

View File

@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
** **
** Copyright (C) 2020 The Qt Company Ltd. ** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/ ** Contact: https://www.qt.io/licensing/
** **
** This file is part of the test suite of the Qt Toolkit. ** This file is part of the test suite of the Qt Toolkit.
@ -1370,19 +1370,19 @@ void tst_QDateTimeEdit::editingRanged()
QFETCH(QString, userInput); QFETCH(QString, userInput);
QFETCH(QDateTime, expected); QFETCH(QDateTime, expected);
QDateTimeEdit *edit; QScopedPointer<QDateTimeEdit> edit;
if (minTime.isValid()) { if (minTime.isValid()) {
edit = new QDateTimeEdit; edit.reset(new QDateTimeEdit);
edit->setDisplayFormat("dd.MM.yyyy hh:mm"); edit->setDisplayFormat("dd.MM.yyyy hh:mm");
edit->setDateTimeRange(QDateTime(minDate, minTime), QDateTime(maxDate, maxTime)); edit->setDateTimeRange(QDateTime(minDate, minTime), QDateTime(maxDate, maxTime));
} else { } else {
edit = new QDateEdit; edit.reset(new QDateEdit);
edit->setDisplayFormat("dd.MM.yyyy"); edit->setDisplayFormat("dd.MM.yyyy");
edit->setDateRange(minDate, maxDate); edit->setDateRange(minDate, maxDate);
} }
int callCount = 0; int callCount = 0;
connect(edit, &QDateTimeEdit::dateTimeChanged, [&](const QDateTime &dateTime) { connect(edit.get(), &QDateTimeEdit::dateTimeChanged, [&](const QDateTime &dateTime) {
++callCount; ++callCount;
if (minTime.isValid()) { if (minTime.isValid()) {
QVERIFY(dateTime >= QDateTime(minDate, minTime)); QVERIFY(dateTime >= QDateTime(minDate, minTime));
@ -1394,15 +1394,15 @@ void tst_QDateTimeEdit::editingRanged()
}); });
edit->show(); edit->show();
QApplication::setActiveWindow(edit); QApplication::setActiveWindow(edit.get());
if (!QTest::qWaitForWindowActive(edit)) if (!QTest::qWaitForWindowActive(edit.get()))
QSKIP("Failed to make window active, aborting"); QSKIP("Failed to make window active, aborting");
edit->setFocus(); edit->setFocus();
// with keyboard tracking, never get a signal with an out-of-range value // with keyboard tracking, never get a signal with an out-of-range value
edit->setKeyboardTracking(true); edit->setKeyboardTracking(true);
QTest::keyClicks(edit, userInput); QTest::keyClicks(edit.get(), userInput);
QTest::keyClick(edit, Qt::Key_Return); QTest::keyClick(edit.get(), Qt::Key_Return);
QVERIFY(callCount > 0); QVERIFY(callCount > 0);
// QDateTimeEdit blocks these dates from being entered - see QTBUG-65 // QDateTimeEdit blocks these dates from being entered - see QTBUG-65
@ -1418,12 +1418,10 @@ void tst_QDateTimeEdit::editingRanged()
callCount = 0; callCount = 0;
edit->setKeyboardTracking(false); edit->setKeyboardTracking(false);
QTest::keyClicks(edit, userInput); QTest::keyClicks(edit.get(), userInput);
QTest::keyClick(edit, Qt::Key_Return); QTest::keyClick(edit.get(), Qt::Key_Return);
QCOMPARE(edit->dateTime(), expected); QCOMPARE(edit->dateTime(), expected);
QCOMPARE(callCount, 1); QCOMPARE(callCount, 1);
delete edit;
} }
void tst_QDateTimeEdit::wrappingTime_data() void tst_QDateTimeEdit::wrappingTime_data()
@ -3858,7 +3856,6 @@ void tst_QDateTimeEdit::deleteCalendarWidget()
{ {
{ {
// setup // setup
QCalendarWidget *cw = 0;
QDateEdit edit; QDateEdit edit;
QVERIFY(!edit.calendarWidget()); QVERIFY(!edit.calendarWidget());
edit.setCalendarPopup(true); edit.setCalendarPopup(true);
@ -3866,8 +3863,7 @@ void tst_QDateTimeEdit::deleteCalendarWidget()
edit.calendarWidget()->setObjectName("cw1");; edit.calendarWidget()->setObjectName("cw1");;
// delete // delete
cw = edit.calendarWidget(); delete edit.calendarWidget();
delete cw;
// it should create a new widget // it should create a new widget
QVERIFY(edit.calendarWidget()); QVERIFY(edit.calendarWidget());