summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp')
-rw-r--r--tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
index 000eea8555..120ed9127c 100644
--- a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
+++ b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
@@ -718,6 +718,30 @@ void tst_QApplication::quitOnLastWindowClosed()
QCOMPARE(timerSpy.count(), 1);
QCOMPARE(appSpy.count(), 2);
}
+ {
+ int argc = 0;
+ QApplication app(argc, 0, QApplication::GuiServer);
+ QVERIFY(app.quitOnLastWindowClosed());
+
+ QTimer timer;
+ timer.setInterval(100);
+ QSignalSpy timerSpy(&timer, SIGNAL(timeout()));
+
+ QWindow w;
+ w.show();
+
+ QWidget wid;
+ wid.show();
+
+ timer.start();
+ QTimer::singleShot(1000, &wid, SLOT(close())); // This should NOT quit the application because the
+ // QWindow is still there.
+ QTimer::singleShot(2000, &app, SLOT(quit())); // This causes the quit.
+
+ app.exec();
+
+ QVERIFY(timerSpy.count() > 15); // Should be around 20 if closing did not caused the quit
+ }
}
class PromptOnCloseWidget : public QWidget