diff options
Diffstat (limited to 'tests/auto/widgets/widgets/qsizegrip')
-rw-r--r-- | tests/auto/widgets/widgets/qsizegrip/tst_qsizegrip.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qsizegrip/tst_qsizegrip.cpp b/tests/auto/widgets/widgets/qsizegrip/tst_qsizegrip.cpp index f88cd634de..2600348998 100644 --- a/tests/auto/widgets/widgets/qsizegrip/tst_qsizegrip.cpp +++ b/tests/auto/widgets/widgets/qsizegrip/tst_qsizegrip.cpp @@ -46,6 +46,10 @@ #include <QLineEdit> #include <QVBoxLayout> #include <QLabel> +#include <QMainWindow> +#include <QStatusBar> +#include <QMdiArea> +#include <QMdiSubWindow> static inline Qt::Corner sizeGripCorner(QWidget *parent, QSizeGrip *sizeGrip) { @@ -75,6 +79,7 @@ private slots: void hideAndShowOnWindowStateChange_data(); void hideAndShowOnWindowStateChange(); void orientation(); + void dontCrashOnTLWChange(); private: QLineEdit *dummyWidget; @@ -191,6 +196,26 @@ void tst_QSizeGrip::orientation() QCOMPARE(sizeGripCorner(&widget, sizeGrip), Qt::TopRightCorner); } +void tst_QSizeGrip::dontCrashOnTLWChange() +{ + // QTBUG-22867 + QMdiArea mdiArea; + mdiArea.show(); + + QMainWindow *mw = new QMainWindow(); + QMdiSubWindow *mdi = mdiArea.addSubWindow(mw); + mw->statusBar()->setSizeGripEnabled(true); + mdiArea.removeSubWindow(mw); + delete mdi; + mw->show(); + + // the above setup causes a change of TLW for the size grip, + // and it must not crash. + + QVERIFY(QTest::qWaitForWindowExposed(&mdiArea)); + QVERIFY(QTest::qWaitForWindowExposed(mw)); +} + QTEST_MAIN(tst_QSizeGrip) #include "tst_qsizegrip.moc" |