summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp')
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 0da8d2971b..0fd91ebcfa 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -11808,6 +11808,36 @@ void tst_QWidget::closeEvent()
widget.windowHandle()->close();
widget.windowHandle()->close();
QCOMPARE(widget.closeCount, 1);
+
+ CloseCountingWidget widget2;
+ widget2.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&widget2));
+ widget2.close();
+ widget2.close();
+ QCOMPARE(widget2.closeCount, 1);
+ widget2.closeCount = 0;
+
+ widget2.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&widget2));
+ widget2.close();
+ QCOMPARE(widget2.closeCount, 1);
+
+ CloseCountingWidget widget3;
+ widget3.close();
+ widget3.close();
+ QEXPECT_FAIL("", "Closing a widget without a window will unconditionally send close events", Continue);
+ QCOMPARE(widget3.closeCount, 0);
+
+ QWidget parent;
+ CloseCountingWidget child;
+ child.setParent(&parent);
+ parent.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&parent));
+ child.close();
+ QCOMPARE(child.closeCount, 1);
+ child.close();
+ QEXPECT_FAIL("", "Closing a widget without a window will unconditionally send close events", Continue);
+ QCOMPARE(child.closeCount, 1);
}
void tst_QWidget::closeWithChildWindow()