From 82c36e4ff05459a5affbb6f8fab75723baee20db Mon Sep 17 00:00:00 2001 From: Shawn Rutledge <shawn.rutledge@digia.com> Date: Fri, 7 Nov 2014 12:54:16 +0100 Subject: [PATCH] QQuickWindow autotest: verify that onClosing can block close() Task-number: QTBUG-40093 Change-Id: I800259f45d95736172d500494e68042180178e93 Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com> --- .../quick/qquickwindow/tst_qquickwindow.cpp | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp index 043203c256..a25ed9bf9c 100644 --- a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp +++ b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp @@ -341,6 +341,7 @@ private slots: void testWindowVisibilityOrder(); void blockClosing(); + void blockCloseMethod(); void crashWhenHoverItemDeleted(); @@ -1739,6 +1740,25 @@ void tst_qquickwindow::blockClosing() QTRY_VERIFY(!window->isVisible()); } +void tst_qquickwindow::blockCloseMethod() +{ + QQmlEngine engine; + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("ucantclosethis.qml")); + QQuickWindow *window = qobject_cast<QQuickWindow *>(component.create()); + QVERIFY(window); + window->show(); + QTest::qWaitForWindowExposed(window); + QVERIFY(window->isVisible()); + QVERIFY(QMetaObject::invokeMethod(window, "close", Qt::DirectConnection)); + QVERIFY(window->isVisible()); + QVERIFY(QMetaObject::invokeMethod(window, "close", Qt::DirectConnection)); + QVERIFY(window->isVisible()); + window->setProperty("canCloseThis", true); + QVERIFY(QMetaObject::invokeMethod(window, "close", Qt::DirectConnection)); + QTRY_VERIFY(!window->isVisible()); +} + void tst_qquickwindow::crashWhenHoverItemDeleted() { // QTBUG-32771 -- GitLab