/* Test that the QSpinBox buttons are correctly positioned with the Mac style. */ void tst_MacGui::spinBoxArrowButtons() { ColorWidget colorWidget; colorWidget.resize(200, 200); QSpinBox spinBox(&colorWidget); QSpinBox spinBox2(&colorWidget); spinBox2.move(0, 100); colorWidget.show(); QTest::qWait(100); // Grab an unfocused spin box. const QImage noFocus = grabWindowContents(&colorWidget).toImage(); // Set focus by clicking the less button. InterfaceChildPair lessInterface = wn.find(QAccessible::Name, "Less", &spinBox); QVERIFY(lessInterface.iface); const int delay = 500; clickLater(lessInterface, Qt::LeftButton, delay); const int timeout = 1; QTestEventLoop::instance().enterLoop(timeout); // Grab a focused spin box. const QImage focus = grabWindowContents(&colorWidget).toImage(); // Compare the arrow area of the less button to see if it moved. const QRect lessRect = lessInterface.iface->rect(lessInterface.possibleChild); const QRect lessLocalRect(colorWidget.mapFromGlobal(lessRect.topLeft()), colorWidget.mapFromGlobal(lessRect.bottomRight())); const QRect compareRect = lessLocalRect.adjusted(5, 3, -5, -7); QVERIFY(noFocus.copy(compareRect) == focus.copy(compareRect)); }
/* Test that a message box pops up in front of a QSplashScreen. */ void tst_MacGui::splashScreenModality() { QPixmap pix(300, 300); QSplashScreen splash(pix); splash.show(); QMessageBox box; //box.setWindowFlags(box.windowFlags() | Qt::WindowStaysOnTopHint); box.setText("accessible?"); box.show(); QSKIP("QTBUG-35169"); // Find the "OK" button and schedule a press. QAccessibleInterface *interface = wn.find(QAccessible::Name, "OK", &box); QVERIFY(interface); const int delay = 1000; clickLater(interface, Qt::LeftButton, delay); // Show dialog and enter event loop. connect(wn.getWidget(interface), SIGNAL(clicked()), SLOT(exitLoopSlot())); const int timeout = 4; QTestEventLoop::instance().enterLoop(timeout); QVERIFY(QTestEventLoop::instance().timeout() == false); }
// When running the auto-tests on scruffy, the first enter-the-event-loop-and-wait-for-a-click // test that runs always times out, so we have this dummy test. void tst_MacGui::dummy() { QPixmap pix(100, 100); QSplashScreen splash(pix); splash.show(); QMessageBox *box = new QMessageBox(); box->setText("accessible?"); box->show(); // Find the "OK" button and schedule a press. InterfaceChildPair interface = wn.find(QAccessible::Name, "OK", box); QVERIFY(interface.iface); const int delay = 1000; clickLater(interface, Qt::LeftButton, delay); // Show dialog and and enter event loop. connect(wn.getWidget(interface), SIGNAL(clicked()), SLOT(exitLoopSlot())); const int timeout = 4; QTestEventLoop::instance().enterLoop(timeout); }