diff options
author | Richard Moe Gustavsen <richard.gustavsen@nokia.com> | 2010-04-14 13:31:54 +0200 |
---|---|---|
committer | Richard Moe Gustavsen <richard.gustavsen@nokia.com> | 2010-04-14 13:34:29 +0200 |
commit | 4dae6bd829e1103d0e21ce9e509d758b5af0c2c0 (patch) | |
tree | 5c70b233785d0ea1421b3bb389580620c990f3ab | |
parent | 4a32242e57ac689224340077656b30894171cb08 (diff) | |
download | qt4-tools-4dae6bd829e1103d0e21ce9e509d758b5af0c2c0.tar.gz |
Autotest failure: dialogModality test fails on cocoa (macgui)
The reason is that it is using accessebility, which is not yet
implemented in Qt/Cocoa. This patch just removes the test, and
reimplements it using the native events test instead, which
is a better solution anyway.
Reviewed-by: msorvig
-rw-r--r-- | tests/auto/macgui/tst_macgui.cpp | 27 | ||||
-rw-r--r-- | tests/auto/macnativeevents/tst_macnativeevents.cpp | 24 |
2 files changed, 24 insertions, 27 deletions
diff --git a/tests/auto/macgui/tst_macgui.cpp b/tests/auto/macgui/tst_macgui.cpp index 847ba4b7e6..7f558a3e2c 100644 --- a/tests/auto/macgui/tst_macgui.cpp +++ b/tests/auto/macgui/tst_macgui.cpp @@ -60,7 +60,6 @@ private slots: void dummy(); void splashScreenModality(); - void dialogModality(); void nonModalOrder(); void spinBoxArrowButtons(); @@ -157,32 +156,6 @@ void tst_MacGui::splashScreenModality() QVERIFY(QTestEventLoop::instance().timeout() == false); } - -/* - Test that a non-modal dialog created as a child of a modal dialog is - shown in front. -*/ -void tst_MacGui::dialogModality() -{ - QDialog d; - d.setModal(true); - d.show(); - - QProgressDialog progress(&d); - progress.setValue(2); - - InterfaceChildPair interface = wn.find(QAccessible::Name, "Cancel", &progress); - QVERIFY(interface.iface); - const int delay = 2000; - clickLater(interface, Qt::LeftButton, delay); - - connect(&progress, SIGNAL(canceled()), SLOT(exitLoopSlot())); - - const int timeout = 3; - QTestEventLoop::instance().enterLoop(timeout); - QVERIFY(QTestEventLoop::instance().timeout() == false); -} - class PrimaryWindowDialog : public QDialog { Q_OBJECT diff --git a/tests/auto/macnativeevents/tst_macnativeevents.cpp b/tests/auto/macnativeevents/tst_macnativeevents.cpp index 08ab9e6e3c..70a14f5b2a 100644 --- a/tests/auto/macnativeevents/tst_macnativeevents.cpp +++ b/tests/auto/macnativeevents/tst_macnativeevents.cpp @@ -41,6 +41,7 @@ #include <QApplication> #include <QWidget> +#include <QDialog> #include <QPushButton> #include <QtTest/QtTest> @@ -65,6 +66,7 @@ private slots: void testMouseDragToNonClientArea(); void testDragWindow(); void testMouseEnter(); + void testChildDialogInFrontOfModalParent(); }; void tst_MacNativeEvents::testMouseMoveLocation() @@ -282,6 +284,28 @@ void tst_MacNativeEvents::testMouseEnter() QVERIFY2(expected.waitForAllEvents(), "the test did not receive all expected events!"); } +void tst_MacNativeEvents::testChildDialogInFrontOfModalParent() +{ + // Test that a child dialog of a modal parent dialog is + // in front of the parent, and active: + QDialog parent; + parent.setWindowModality(Qt::ApplicationModal); + QDialog child(&parent); + QPushButton button("close", &child); + connect(&button, SIGNAL(clicked()), &child, SLOT(close())); + parent.show(); + child.show(); + QPoint inside = button.mapToGlobal(button.geometry().center()); + + // Post a click on the button to close the child dialog: + NativeEventList native; + native.append(new QNativeMouseButtonEvent(inside, Qt::LeftButton, 1, Qt::NoModifier)); + native.append(new QNativeMouseButtonEvent(inside, Qt::LeftButton, 0, Qt::NoModifier)); + + native.play(); + QTest::qWait(100); + QVERIFY(!child.isVisible()); +} #include "tst_macnativeevents.moc" |