summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel
diff options
context:
space:
mode:
authorStephen Kelly <stephen.kelly@kdab.com>2012-02-11 01:10:07 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-15 20:47:32 +0100
commit394315d902d9068a53439737906c00d48023d182 (patch)
tree7d5d09f1b4386fefdbe702a33ab8e30e08739758 /tests/auto/widgets/kernel
parentc455674555b263c98fe613612babab3efcf10345 (diff)
Move the removal of the Quit event to QWindow.
Change-Id: If524127ba9dab9ef065aaf4079294295eef8e49b Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Diffstat (limited to 'tests/auto/widgets/kernel')
-rw-r--r--tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
index 7017c6157e..c600956912 100644
--- a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
+++ b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
@@ -149,6 +149,8 @@ private slots:
void testQuitLock8();
void globalStaticObjectDestruction(); // run this last
+
+ void abortQuitOnShow();
};
class EventSpy : public QObject
@@ -2560,6 +2562,44 @@ void tst_QApplication::testQuitLock8()
// No hang = pass
}
+class ShowCloseShowWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ ShowCloseShowWidget(bool showAgain, QWidget *parent = 0)
+ : QWidget(parent), showAgain(showAgain)
+ {
+ QTimer::singleShot(0, this, SLOT(doClose()));
+ QTimer::singleShot(500, this, SLOT(exitApp()));
+ }
+
+private slots:
+ void doClose() {
+ close();
+ if (showAgain)
+ show();
+ }
+
+ void exitApp() {
+ qApp->exit(1);
+ }
+
+private:
+ bool showAgain;
+};
+
+void tst_QApplication::abortQuitOnShow()
+{
+ int argc = 0;
+ QApplication app(argc, 0);
+ QWidget *window1 = new ShowCloseShowWidget(false);
+ window1->show();
+ QCOMPARE(app.exec(), 0);
+
+ QWidget *window2 = new ShowCloseShowWidget(true);
+ window2->show();
+ QCOMPARE(app.exec(), 1);
+}
/*
This test is meant to ensure that certain objects (public & commonly used)