[Ktutorial-commits] SF.net SVN: ktutorial:[279] trunk/ktutorial/ktutorial-library/tests/view/ Windo
Status: Alpha
Brought to you by:
danxuliu
|
From: <dan...@us...> - 2010-10-29 19:41:26
|
Revision: 279
http://ktutorial.svn.sourceforge.net/ktutorial/?rev=279&view=rev
Author: danxuliu
Date: 2010-10-29 19:41:20 +0000 (Fri, 29 Oct 2010)
Log Message:
-----------
Refactor tests: use QPointer instead of QSignalSpy with destroyed(QObject*) signal, and extract checks to an assertWindow(QWidget* window, QWidget* expectedParent) method.
Modified Paths:
--------------
trunk/ktutorial/ktutorial-library/tests/view/WindowOnTopEnforcerTest.cpp
Modified: trunk/ktutorial/ktutorial-library/tests/view/WindowOnTopEnforcerTest.cpp
===================================================================
--- trunk/ktutorial/ktutorial-library/tests/view/WindowOnTopEnforcerTest.cpp 2010-10-27 09:53:15 UTC (rev 278)
+++ trunk/ktutorial/ktutorial-library/tests/view/WindowOnTopEnforcerTest.cpp 2010-10-29 19:41:20 UTC (rev 279)
@@ -48,6 +48,8 @@
void queueAssertParent(QWidget* widget, QWidget* parent, int timeToWait);
void queueAssertIsVisibleWindow(QWidget* widget, int timeToWait);
+ void assertWindow(QWidget* window, QWidget* expectedParent) const;
+
};
void WindowOnTopEnforcerTest::testConstructor() {
@@ -61,28 +63,25 @@
QWidget* window = new QWidget();
window->show();
- QWidget* windowToKeepOnTop = new QWidget(window);
+ QPointer<QWidget> windowToKeepOnTop = new QWidget(window);
windowToKeepOnTop->setWindowFlags(Qt::Window);
windowToKeepOnTop->show();
WindowOnTopEnforcer* enforcer = new WindowOnTopEnforcer(windowToKeepOnTop);
enforcer->setBaseWindow(window);
- QSignalSpy destroyedSpy(windowToKeepOnTop, SIGNAL(destroyed(QObject*)));
+ assertWindow(windowToKeepOnTop, window);
delete window;
- QCOMPARE(destroyedSpy.count(), 1);
- QVariant argument = destroyedSpy.at(0).at(0);
- QCOMPARE(argument.userType(), (int)QMetaType::QObjectStar);
- QCOMPARE(qvariant_cast<QObject*>(argument), windowToKeepOnTop);
+ QVERIFY(!windowToKeepOnTop);
}
void WindowOnTopEnforcerTest::testChildWindow() {
QWidget* window = new QWidget();
window->show();
- QWidget* windowToKeepOnTop = new QWidget(window);
+ QPointer<QWidget> windowToKeepOnTop = new QWidget(window);
windowToKeepOnTop->setWindowFlags(Qt::Window);
windowToKeepOnTop->show();
@@ -93,31 +92,22 @@
childWindow->setWindowFlags(Qt::Window);
childWindow->show();
- QCOMPARE(windowToKeepOnTop->parentWidget(), window);
- QVERIFY(windowToKeepOnTop->isVisible());
- QVERIFY(windowToKeepOnTop->windowFlags() & Qt::Window);
+ assertWindow(windowToKeepOnTop, window);
delete childWindow;
- QCOMPARE(windowToKeepOnTop->parentWidget(), window);
- QVERIFY(windowToKeepOnTop->isVisible());
- QVERIFY(windowToKeepOnTop->windowFlags() & Qt::Window);
+ assertWindow(windowToKeepOnTop, window);
- QSignalSpy destroyedSpy(windowToKeepOnTop, SIGNAL(destroyed(QObject*)));
-
delete window;
- QCOMPARE(destroyedSpy.count(), 1);
- QVariant argument = destroyedSpy.at(0).at(0);
- QCOMPARE(argument.userType(), (int)QMetaType::QObjectStar);
- QCOMPARE(qvariant_cast<QObject*>(argument), windowToKeepOnTop);
+ QVERIFY(!windowToKeepOnTop);
}
void WindowOnTopEnforcerTest::testModalDialog() {
QWidget* window = new QWidget();
window->show();
- QWidget* windowToKeepOnTop = new QWidget(window);
+ QPointer<QWidget> windowToKeepOnTop = new QWidget(window);
windowToKeepOnTop->setWindowFlags(Qt::Window);
windowToKeepOnTop->show();
@@ -137,25 +127,18 @@
timerAccept.start();
modalDialog->exec();
- QCOMPARE(windowToKeepOnTop->parentWidget(), window);
- QVERIFY(windowToKeepOnTop->isVisible());
- QVERIFY(windowToKeepOnTop->windowFlags() & Qt::Window);
+ assertWindow(windowToKeepOnTop, window);
- QSignalSpy destroyedSpy(windowToKeepOnTop, SIGNAL(destroyed(QObject*)));
-
delete window;
- QCOMPARE(destroyedSpy.count(), 1);
- QVariant argument = destroyedSpy.at(0).at(0);
- QCOMPARE(argument.userType(), (int)QMetaType::QObjectStar);
- QCOMPARE(qvariant_cast<QObject*>(argument), windowToKeepOnTop);
+ QVERIFY(!windowToKeepOnTop);
}
void WindowOnTopEnforcerTest::testNestedModalDialog() {
QWidget* window = new QWidget();
window->show();
- QWidget* windowToKeepOnTop = new QWidget(window);
+ QPointer<QWidget> windowToKeepOnTop = new QWidget(window);
windowToKeepOnTop->setWindowFlags(Qt::Window);
windowToKeepOnTop->show();
@@ -192,25 +175,18 @@
timerAcceptNested.start();
modalDialog->exec();
- QCOMPARE(windowToKeepOnTop->parentWidget(), window);
- QVERIFY(windowToKeepOnTop->isVisible());
- QVERIFY(windowToKeepOnTop->windowFlags() & Qt::Window);
+ assertWindow(windowToKeepOnTop, window);
- QSignalSpy destroyedSpy(windowToKeepOnTop, SIGNAL(destroyed(QObject*)));
-
delete window;
- QCOMPARE(destroyedSpy.count(), 1);
- QVariant argument = destroyedSpy.at(0).at(0);
- QCOMPARE(argument.userType(), (int)QMetaType::QObjectStar);
- QCOMPARE(qvariant_cast<QObject*>(argument), windowToKeepOnTop);
+ QVERIFY(!windowToKeepOnTop);
}
void WindowOnTopEnforcerTest::testSeveralModalDialogs() {
QWidget* window = new QWidget();
window->show();
- QWidget* windowToKeepOnTop = new QWidget(window);
+ QPointer<QWidget> windowToKeepOnTop = new QWidget(window);
windowToKeepOnTop->setWindowFlags(Qt::Window);
windowToKeepOnTop->show();
@@ -266,9 +242,7 @@
timerAcceptNested2.start();
modalDialog->exec();
- QCOMPARE(windowToKeepOnTop->parentWidget(), window);
- QVERIFY(windowToKeepOnTop->isVisible());
- QVERIFY(windowToKeepOnTop->windowFlags() & Qt::Window);
+ assertWindow(windowToKeepOnTop, window);
QDialog* modalDialog2 = new QDialog(window);
QDialog* nestedModalDialog3 = new QDialog(modalDialog);
@@ -300,25 +274,18 @@
timerAcceptNested3.start();
modalDialog2->exec();
- QCOMPARE(windowToKeepOnTop->parentWidget(), window);
- QVERIFY(windowToKeepOnTop->isVisible());
- QVERIFY(windowToKeepOnTop->windowFlags() & Qt::Window);
+ assertWindow(windowToKeepOnTop, window);
- QSignalSpy destroyedSpy(windowToKeepOnTop, SIGNAL(destroyed(QObject*)));
-
delete window;
- QCOMPARE(destroyedSpy.count(), 1);
- QVariant argument = destroyedSpy.at(0).at(0);
- QCOMPARE(argument.userType(), (int)QMetaType::QObjectStar);
- QCOMPARE(qvariant_cast<QObject*>(argument), windowToKeepOnTop);
+ QVERIFY(!windowToKeepOnTop);
}
void WindowOnTopEnforcerTest::testNestedModalDialogOnChildWindow() {
QWidget* window = new QWidget();
window->show();
- QWidget* windowToKeepOnTop = new QWidget(window);
+ QPointer<QWidget> windowToKeepOnTop = new QWidget(window);
windowToKeepOnTop->setWindowFlags(Qt::Window);
windowToKeepOnTop->show();
@@ -342,18 +309,11 @@
timerAccept.start();
nestedModalDialog->exec();
- QCOMPARE(windowToKeepOnTop->parentWidget(), window);
- QVERIFY(windowToKeepOnTop->isVisible());
- QVERIFY(windowToKeepOnTop->windowFlags() & Qt::Window);
+ assertWindow(windowToKeepOnTop, window);
- QSignalSpy destroyedSpy(windowToKeepOnTop, SIGNAL(destroyed(QObject*)));
-
delete window;
- QCOMPARE(destroyedSpy.count(), 1);
- QVariant argument = destroyedSpy.at(0).at(0);
- QCOMPARE(argument.userType(), (int)QMetaType::QObjectStar);
- QCOMPARE(qvariant_cast<QObject*>(argument), windowToKeepOnTop);
+ QVERIFY(!windowToKeepOnTop);
}
/////////////////////////////////// Helpers ////////////////////////////////////
@@ -412,8 +372,16 @@
QTimer::singleShot(timeToWait, helper, SLOT(deleteLater()));
}
+void WindowOnTopEnforcerTest::assertWindow(QWidget* window,
+ QWidget* expectedParent) const {
+ QVERIFY(window);
+ QCOMPARE(window->parentWidget(), expectedParent);
+ QVERIFY(window->isVisible());
+ QVERIFY(window->windowFlags() & Qt::Window);
}
+}
+
QTEST_MAIN(view::WindowOnTopEnforcerTest)
#include "WidgetOnTopEnforcerTest.moc"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|