diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-07-04 09:55:32 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-04 17:18:14 +0200 |
commit | 1df4ebe0ef62fb8ce77db4cde001d4d52930f1cc (patch) | |
tree | 69acff79c606b587f84336507789279e1bbcb4e0 /tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp | |
parent | 4fc230ab158156980aa737d6bb907c0865bc5a7d (diff) |
Stabilize tst_QApplication::quitOnLastWindowClosed().
Instantiate widgets on the stack to ensure they are destroyed
when the QApplication instance goes out of scope.
Introduce waitForWindowExposed() to make sure events are in sync.
Task-number: QTBUG-32125
Change-Id: Ia54e2fa9a7c2e279353c4514a6735e326edf35ae
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Diffstat (limited to 'tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp')
-rw-r--r-- | tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp index c9079e222c..8d75298673 100644 --- a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp +++ b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp @@ -694,18 +694,20 @@ void tst_QApplication::quitOnLastWindowClosed() QSignalSpy spy(&app, SIGNAL(aboutToQuit())); QSignalSpy spy2(&timer, SIGNAL(timeout())); - QPointer<QMainWindow> mainWindow = new QMainWindow; - QPointer<QDialog> dialog = new QDialog(mainWindow); + QMainWindow mainWindow; + QDialog *dialog = new QDialog(&mainWindow); QVERIFY(app.quitOnLastWindowClosed()); - QVERIFY(mainWindow->testAttribute(Qt::WA_QuitOnClose)); + QVERIFY(mainWindow.testAttribute(Qt::WA_QuitOnClose)); QVERIFY(dialog->testAttribute(Qt::WA_QuitOnClose)); - mainWindow->show(); + mainWindow.show(); + QVERIFY(QTest::qWaitForWindowExposed(&mainWindow)); dialog->show(); + QVERIFY(QTest::qWaitForWindowExposed(dialog)); timer.start(); - QTimer::singleShot(1000, mainWindow, SLOT(close())); // This should quit the application + QTimer::singleShot(1000, &mainWindow, SLOT(close())); // This should quit the application QTimer::singleShot(2000, &app, SLOT(quit())); // This makes sure we quit even if it didn't app.exec(); @@ -722,15 +724,16 @@ void tst_QApplication::quitOnLastWindowClosed() QSignalSpy spy(&app, SIGNAL(aboutToQuit())); QSignalSpy spy2(&timer, SIGNAL(timeout())); - QPointer<CloseEventTestWindow> mainWindow = new CloseEventTestWindow; + CloseEventTestWindow mainWindow; QVERIFY(app.quitOnLastWindowClosed()); - QVERIFY(mainWindow->testAttribute(Qt::WA_QuitOnClose)); + QVERIFY(mainWindow.testAttribute(Qt::WA_QuitOnClose)); - mainWindow->show(); + mainWindow.show(); + QVERIFY(QTest::qWaitForWindowExposed(&mainWindow)); timer.start(); - QTimer::singleShot(1000, mainWindow, SLOT(close())); // This should quit the application + QTimer::singleShot(1000, &mainWindow, SLOT(close())); // This should quit the application QTimer::singleShot(2000, &app, SLOT(quit())); // This makes sure we quit even if it didn't app.exec(); |