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:
parent
7f70b5350a
commit
03f0a26e84
@ -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());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user