diff options
Diffstat (limited to 'tests/auto/widgets/widgets')
94 files changed, 1641 insertions, 320 deletions
diff --git a/tests/auto/widgets/widgets/qabstractbutton/CMakeLists.txt b/tests/auto/widgets/widgets/qabstractbutton/CMakeLists.txt index 7b2123b530..48a174b6e1 100644 --- a/tests/auto/widgets/widgets/qabstractbutton/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qabstractbutton/CMakeLists.txt @@ -1 +1,14 @@ -add_qt_test("tst_qabstractbutton" RUN_SERIAL SOURCES tst_qabstractbutton.cpp LIBRARIES Qt::Widgets) +# Generated from qabstractbutton.pro. + +##################################################################### +## tst_qabstractbutton Test: +##################################################################### + +add_qt_test(tst_qabstractbutton + SOURCES + tst_qabstractbutton.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::GuiPrivate + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qabstractbutton/qabstractbutton.pro b/tests/auto/widgets/widgets/qabstractbutton/qabstractbutton.pro index 2f0111f483..1d9074491e 100644 --- a/tests/auto/widgets/widgets/qabstractbutton/qabstractbutton.pro +++ b/tests/auto/widgets/widgets/qabstractbutton/qabstractbutton.pro @@ -1,6 +1,6 @@ CONFIG += testcase TARGET = tst_qabstractbutton -QT += widgets testlib +QT += widgets testlib gui-private SOURCES += tst_qabstractbutton.cpp diff --git a/tests/auto/widgets/widgets/qabstractbutton/tst_qabstractbutton.cpp b/tests/auto/widgets/widgets/qabstractbutton/tst_qabstractbutton.cpp index e77faa1e75..e5a891912f 100644 --- a/tests/auto/widgets/widgets/qabstractbutton/tst_qabstractbutton.cpp +++ b/tests/auto/widgets/widgets/qabstractbutton/tst_qabstractbutton.cpp @@ -34,11 +34,16 @@ #include <qapplication.h> #include <qpainter.h> #include <qstyleoption.h> -#include <qkeysequence.h> +#if QT_CONFIG(shortcut) +# include <qkeysequence.h> +#endif #include <qevent.h> #include <qgridlayout.h> #include <qabstractbutton.h> +#include <private/qguiapplication_p.h> +#include <qpa/qplatformintegration.h> + class tst_QAbstractButton : public QObject { Q_OBJECT @@ -56,7 +61,9 @@ private slots: void setText(); void setIcon(); +#if QT_CONFIG(shortcut) void setShortcut(); +#endif void animateClick(); @@ -65,7 +72,9 @@ private slots: void isChecked(); void toggled(); void setEnabled(); +#if QT_CONFIG(shortcut) void shortcutEvents(); +#endif void stopRepeatTimer(); void mouseReleased(); // QTBUG-53244 @@ -161,8 +170,10 @@ void tst_QAbstractButton::init() testWidget->setEnabled( true ); testWidget->setDown( false ); testWidget->setAutoRepeat( false ); +#if QT_CONFIG(shortcut) QKeySequence seq; testWidget->setShortcut( seq ); +#endif toggle_count = 0; press_count = 0; @@ -333,17 +344,17 @@ void tst_QAbstractButton::setText() QCOMPARE( testWidget->text(), QString("simple") ); testWidget->setText("&ersand"); QCOMPARE( testWidget->text(), QString("&ersand") ); -#ifndef Q_OS_MAC // no mneonics on Mac. +#if QT_CONFIG(shortcut) && !defined(Q_OS_DARWIN) // no mnemonics on Mac. QCOMPARE( testWidget->shortcut(), QKeySequence("ALT+A")); #endif testWidget->setText("te&st"); QCOMPARE( testWidget->text(), QString("te&st") ); -#ifndef Q_OS_MAC // no mneonics on Mac. +#if QT_CONFIG(shortcut) && !defined(Q_OS_DARWIN) // no mnemonics on Mac. QCOMPARE( testWidget->shortcut(), QKeySequence("ALT+S")); #endif testWidget->setText("foo"); QCOMPARE( testWidget->text(), QString("foo") ); -#ifndef Q_OS_MAC // no mneonics on Mac. +#if QT_CONFIG(shortcut) && !defined(Q_OS_DARWIN) // no mnemonics on Mac. QCOMPARE( testWidget->shortcut(), QKeySequence()); #endif } @@ -468,8 +479,12 @@ void tst_QAbstractButton::toggled() testWidget->setCheckable(false); } +#if QT_CONFIG(shortcut) void tst_QAbstractButton::setShortcut() { + if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation)) + QSKIP("Window activation is not supported"); + QKeySequence seq( Qt::Key_A ); testWidget->setShortcut( seq ); QApplication::setActiveWindow(testWidget); @@ -496,6 +511,7 @@ void tst_QAbstractButton::setShortcut() // qDebug() << click_count; } +#endif // QT_CONFIG(shortcut) void tst_QAbstractButton::animateClick() { @@ -506,6 +522,8 @@ void tst_QAbstractButton::animateClick() QTRY_VERIFY( !testWidget->isDown() ); } +#if QT_CONFIG(shortcut) + void tst_QAbstractButton::shortcutEvents() { MyButton button; @@ -529,6 +547,8 @@ void tst_QAbstractButton::shortcutEvents() QCOMPARE(clickedSpy.count(), 3); } +#endif // QT_CONFIG(shortcut) + void tst_QAbstractButton::stopRepeatTimer() { MyButton button; diff --git a/tests/auto/widgets/widgets/qabstractscrollarea/CMakeLists.txt b/tests/auto/widgets/widgets/qabstractscrollarea/CMakeLists.txt index a003346393..cb1b2aa936 100644 --- a/tests/auto/widgets/widgets/qabstractscrollarea/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qabstractscrollarea/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qabstractscrollarea" RUN_SERIAL SOURCES tst_qabstractscrollarea.cpp LIBRARIES Qt::Widgets) +# Generated from qabstractscrollarea.pro. + +##################################################################### +## tst_qabstractscrollarea Test: +##################################################################### + +add_qt_test(tst_qabstractscrollarea + SOURCES + tst_qabstractscrollarea.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qabstractslider/CMakeLists.txt b/tests/auto/widgets/widgets/qabstractslider/CMakeLists.txt index 6974ae4172..0dbbf63239 100644 --- a/tests/auto/widgets/widgets/qabstractslider/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qabstractslider/CMakeLists.txt @@ -1 +1,14 @@ -add_qt_test("tst_qabstractslider" RUN_SERIAL SOURCES tst_qabstractslider.cpp LIBRARIES Qt::Widgets Qt::TestPrivate) +# Generated from qabstractslider.pro. + +##################################################################### +## tst_qabstractslider Test: +##################################################################### + +add_qt_test(tst_qabstractslider + SOURCES + tst_qabstractslider.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::TestPrivate + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp b/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp index f77efe036a..c54a6bb73e 100644 --- a/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp +++ b/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp @@ -1836,9 +1836,10 @@ void tst_QAbstractSlider::sliderPressedReleased() if (qApp->style()->styleHint(QStyle::SH_ScrollBar_LeftClickAbsolutePosition)) QSKIP("The result depends on system setting on mac"); - QTest::mousePress(slider, Qt::LeftButton, 0, QPoint(rect.center().x() + 2, rect.center().y() + 2)); + QTest::mousePress(slider, Qt::LeftButton, {}, + QPoint(rect.center().x() + 2, rect.center().y() + 2)); QCOMPARE(spy1.count(), expectedCount); - QTest::mouseRelease(slider, Qt::LeftButton, 0, rect.center()); + QTest::mouseRelease(slider, Qt::LeftButton, {}, rect.center()); QCOMPARE(spy2.count(), expectedCount); delete slider; diff --git a/tests/auto/widgets/widgets/qabstractspinbox/CMakeLists.txt b/tests/auto/widgets/widgets/qabstractspinbox/CMakeLists.txt index 88c69d370b..32c814c535 100644 --- a/tests/auto/widgets/widgets/qabstractspinbox/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qabstractspinbox/CMakeLists.txt @@ -1,7 +1,16 @@ -add_qt_test("tst_qabstractspinbox" RUN_SERIAL SOURCES tst_qabstractspinbox.cpp - LIBRARIES - Qt::Widgets - Qt::GuiPrivate +# Generated from qabstractspinbox.pro. + +##################################################################### +## tst_qabstractspinbox Test: +##################################################################### + +add_qt_test(tst_qabstractspinbox + SOURCES + tst_qabstractspinbox.cpp + PUBLIC_LIBRARIES Qt::CorePrivate + Qt::Gui + Qt::GuiPrivate Qt::TestPrivate + Qt::Widgets ) diff --git a/tests/auto/widgets/widgets/qabstractspinbox/tst_qabstractspinbox.cpp b/tests/auto/widgets/widgets/qabstractspinbox/tst_qabstractspinbox.cpp index 0ce3b4cefe..6fb13ed55e 100644 --- a/tests/auto/widgets/widgets/qabstractspinbox/tst_qabstractspinbox.cpp +++ b/tests/auto/widgets/widgets/qabstractspinbox/tst_qabstractspinbox.cpp @@ -168,6 +168,9 @@ void tst_QAbstractSpinBox::task228728_cssselector() void tst_QAbstractSpinBox::inputMethodUpdate() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QSpinBox box; QSpinBox *testWidget = &box; diff --git a/tests/auto/widgets/widgets/qbuttongroup/CMakeLists.txt b/tests/auto/widgets/widgets/qbuttongroup/CMakeLists.txt index 37b2196705..92d04e0c26 100644 --- a/tests/auto/widgets/widgets/qbuttongroup/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qbuttongroup/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qbuttongroup" RUN_SERIAL SOURCES tst_qbuttongroup.cpp LIBRARIES Qt::Widgets) +# Generated from qbuttongroup.pro. + +##################################################################### +## tst_qbuttongroup Test: +##################################################################### + +add_qt_test(tst_qbuttongroup + SOURCES + tst_qbuttongroup.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qbuttongroup/tst_qbuttongroup.cpp b/tests/auto/widgets/widgets/qbuttongroup/tst_qbuttongroup.cpp index 7684f16c47..5d52acd1a2 100644 --- a/tests/auto/widgets/widgets/qbuttongroup/tst_qbuttongroup.cpp +++ b/tests/auto/widgets/widgets/qbuttongroup/tst_qbuttongroup.cpp @@ -89,6 +89,9 @@ void tst_QButtonGroup::arrowKeyNavigation() if (!qt_tab_all_widgets()) QSKIP("This test requires full keyboard control to be enabled."); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QDialog dlg(0); QHBoxLayout layout(&dlg); QGroupBox g1("1", &dlg); @@ -277,67 +280,43 @@ void tst_QButtonGroup::testSignals() qRegisterMetaType<QAbstractButton *>("QAbstractButton *"); QSignalSpy clickedSpy(&buttons, SIGNAL(buttonClicked(QAbstractButton*))); - QSignalSpy clickedIdSpy(&buttons, SIGNAL(buttonClicked(int))); QSignalSpy pressedSpy(&buttons, SIGNAL(buttonPressed(QAbstractButton*))); - QSignalSpy pressedIdSpy(&buttons, SIGNAL(buttonPressed(int))); QSignalSpy releasedSpy(&buttons, SIGNAL(buttonReleased(QAbstractButton*))); - QSignalSpy releasedIdSpy(&buttons, SIGNAL(buttonReleased(int))); pb1.animateClick(); QTestEventLoop::instance().enterLoop(1); QCOMPARE(clickedSpy.count(), 1); - QCOMPARE(clickedIdSpy.count(), 1); - - int expectedId = -2; - QCOMPARE(clickedIdSpy.takeFirst().at(0).toInt(), expectedId); QCOMPARE(pressedSpy.count(), 1); - QCOMPARE(pressedIdSpy.count(), 1); - QCOMPARE(pressedIdSpy.takeFirst().at(0).toInt(), expectedId); QCOMPARE(releasedSpy.count(), 1); - QCOMPARE(releasedIdSpy.count(), 1); - QCOMPARE(releasedIdSpy.takeFirst().at(0).toInt(), expectedId); clickedSpy.clear(); - clickedIdSpy.clear(); pressedSpy.clear(); - pressedIdSpy.clear(); releasedSpy.clear(); - releasedIdSpy.clear(); pb2.animateClick(); QTestEventLoop::instance().enterLoop(1); QCOMPARE(clickedSpy.count(), 1); - QCOMPARE(clickedIdSpy.count(), 1); - QCOMPARE(clickedIdSpy.takeFirst().at(0).toInt(), 23); QCOMPARE(pressedSpy.count(), 1); - QCOMPARE(pressedIdSpy.count(), 1); - QCOMPARE(pressedIdSpy.takeFirst().at(0).toInt(), 23); QCOMPARE(releasedSpy.count(), 1); - QCOMPARE(releasedIdSpy.count(), 1); - QCOMPARE(releasedIdSpy.takeFirst().at(0).toInt(), 23); QSignalSpy toggledSpy(&buttons, SIGNAL(buttonToggled(QAbstractButton*, bool))); - QSignalSpy toggledIdSpy(&buttons, SIGNAL(buttonToggled(int, bool))); pb1.setCheckable(true); pb2.setCheckable(true); pb1.toggle(); QCOMPARE(toggledSpy.count(), 1); - QCOMPARE(toggledIdSpy.count(), 1); pb2.toggle(); QCOMPARE(toggledSpy.count(), 3); // equals 3 since pb1 and pb2 are both toggled - QCOMPARE(toggledIdSpy.count(), 3); pb1.setCheckable(false); pb2.setCheckable(false); pb1.toggle(); QCOMPARE(toggledSpy.count(), 3); - QCOMPARE(toggledIdSpy.count(), 3); } void tst_QButtonGroup::task106609() @@ -369,7 +348,6 @@ void tst_QButtonGroup::task106609() qRegisterMetaType<QAbstractButton*>("QAbstractButton*"); QSignalSpy spy1(buttons, SIGNAL(buttonClicked(QAbstractButton*))); - QSignalSpy spy2(buttons, SIGNAL(buttonClicked(int))); QApplication::setActiveWindow(&dlg); QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget*>(&dlg)); @@ -378,8 +356,6 @@ void tst_QButtonGroup::task106609() radio1->setChecked(true); QTestEventLoop::instance().enterLoop(1); - //qDebug() << "int:" << spy2.count() << "QAbstractButton*:" << spy1.count(); - QCOMPARE(spy2.count(), 2); QCOMPARE(spy1.count(), 2); } @@ -424,11 +400,12 @@ public: : group(group) , deleteButton(deleteButton) { - connect(group, SIGNAL(buttonClicked(int)), SLOT(buttonClicked(int))); + connect(group, &QButtonGroup::buttonClicked, + this, &task209485_ButtonDeleter::buttonClicked); } private slots: - void buttonClicked(int) + void buttonClicked() { if (deleteButton) group->removeButton(group->buttons().first()); @@ -444,7 +421,7 @@ void tst_QButtonGroup::task209485_removeFromGroupInEventHandler_data() QTest::addColumn<bool>("deleteButton"); QTest::addColumn<int>("signalCount"); QTest::newRow("buttonPress 1") << true << 1; - QTest::newRow("buttonPress 2") << false << 2; + QTest::newRow("buttonPress 2") << false << 1; } void tst_QButtonGroup::task209485_removeFromGroupInEventHandler() @@ -460,12 +437,11 @@ void tst_QButtonGroup::task209485_removeFromGroupInEventHandler() task209485_ButtonDeleter buttonDeleter(&group, deleteButton); QSignalSpy spy1(&group, SIGNAL(buttonClicked(QAbstractButton*))); - QSignalSpy spy2(&group, SIGNAL(buttonClicked(int))); // NOTE: Reintroducing the bug of this task will cause the following line to crash: QTest::mouseClick(button, Qt::LeftButton); - QCOMPARE(spy1.count() + spy2.count(), signalCount); + QCOMPARE(spy1.count(), signalCount); } void tst_QButtonGroup::autoIncrementId() diff --git a/tests/auto/widgets/widgets/qcalendarwidget/CMakeLists.txt b/tests/auto/widgets/widgets/qcalendarwidget/CMakeLists.txt index 4aad3abff9..10e24a1016 100644 --- a/tests/auto/widgets/widgets/qcalendarwidget/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qcalendarwidget/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qcalendarwidget" RUN_SERIAL SOURCES tst_qcalendarwidget.cpp LIBRARIES Qt::Widgets) +# Generated from qcalendarwidget.pro. + +##################################################################### +## tst_qcalendarwidget Test: +##################################################################### + +add_qt_test(tst_qcalendarwidget + SOURCES + tst_qcalendarwidget.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qcalendarwidget/tst_qcalendarwidget.cpp b/tests/auto/widgets/widgets/qcalendarwidget/tst_qcalendarwidget.cpp index 312ec0b1ec..c3ae2ea541 100644 --- a/tests/auto/widgets/widgets/qcalendarwidget/tst_qcalendarwidget.cpp +++ b/tests/auto/widgets/widgets/qcalendarwidget/tst_qcalendarwidget.cpp @@ -156,6 +156,9 @@ void tst_QCalendarWidget::buttonClickCheck() #ifdef Q_OS_WINRT QSKIP("Fails on WinRT - QTBUG-68297"); #endif + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QCalendarWidget object; QSize size = object.sizeHint(); object.setGeometry(0,0,size.width(), size.height()); diff --git a/tests/auto/widgets/widgets/qcheckbox/CMakeLists.txt b/tests/auto/widgets/widgets/qcheckbox/CMakeLists.txt index 2640889d94..2418791e5d 100644 --- a/tests/auto/widgets/widgets/qcheckbox/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qcheckbox/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qcheckbox" RUN_SERIAL SOURCES tst_qcheckbox.cpp LIBRARIES Qt::Widgets) +# Generated from qcheckbox.pro. + +##################################################################### +## tst_qcheckbox Test: +##################################################################### + +add_qt_test(tst_qcheckbox + SOURCES + tst_qcheckbox.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qcheckbox/tst_qcheckbox.cpp b/tests/auto/widgets/widgets/qcheckbox/tst_qcheckbox.cpp index 0cbab5e17c..6dd4f8d2fe 100644 --- a/tests/auto/widgets/widgets/qcheckbox/tst_qcheckbox.cpp +++ b/tests/auto/widgets/widgets/qcheckbox/tst_qcheckbox.cpp @@ -78,6 +78,9 @@ private: void tst_QCheckBox::initTestCase() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + // Create the test class testWidget = new QCheckBox(0); testWidget->setObjectName("testObject"); diff --git a/tests/auto/widgets/widgets/qcombobox/CMakeLists.txt b/tests/auto/widgets/widgets/qcombobox/CMakeLists.txt index 8697a67820..95fbe14eec 100644 --- a/tests/auto/widgets/widgets/qcombobox/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qcombobox/CMakeLists.txt @@ -1,8 +1,24 @@ -add_qt_test("tst_qcombobox" RUN_SERIAL SOURCES tst_qcombobox.cpp - DEFINES QTEST_QPA_MOUSE_HANDLING - LIBRARIES - Qt::WidgetsPrivate - Qt::GuiPrivate +# Generated from qcombobox.pro. + +##################################################################### +## tst_qcombobox Test: +##################################################################### + +# Collect test data +list(APPEND test_data "qtlogo.png") +list(APPEND test_data "qtlogoinverted.png") + +add_qt_test(tst_qcombobox + SOURCES + tst_qcombobox.cpp + DEFINES + QTEST_QPA_MOUSE_HANDLING + PUBLIC_LIBRARIES Qt::CorePrivate + Qt::Gui + Qt::GuiPrivate Qt::TestPrivate + Qt::Widgets + Qt::WidgetsPrivate + TESTDATA ${test_data} ) diff --git a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp index b7869a0653..1f301fd60f 100644 --- a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp +++ b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp @@ -397,6 +397,31 @@ void tst_QComboBox::getSetCheck() QCOMPARE(4, obj1.currentIndex()); // Valid obj1.setCurrentIndex(INT_MAX); QCOMPARE(-1, obj1.currentIndex()); // Invalid => -1 + + obj1.setIconSize(QSize(64, 32)); + QCOMPARE(obj1.iconSize(), QSize(64, 32)); + obj1.setIconSize(QSize()); + const int iconWidth = obj1.style()->pixelMetric(QStyle::PM_SmallIconSize, nullptr, &obj1); + QCOMPARE(obj1.iconSize(), QSize(iconWidth, iconWidth)); + + const QString placeholderText("Please select"); + obj1.setCurrentIndex(1); + obj1.setPlaceholderText(placeholderText); + QCOMPARE(obj1.placeholderText(), placeholderText); + QCOMPARE(obj1.currentText(), "2"); + QCOMPARE(obj1.currentIndex(), 1); + obj1.setPlaceholderText(QString()); // should not change anything + QCOMPARE(obj1.placeholderText(), QString()); + QCOMPARE(obj1.currentText(), "2"); + + obj1.clear(); + obj1.setPlaceholderText(placeholderText); + obj1.addItems({"1", "2", "3", "4", "5"}); + QCOMPARE(obj1.currentText(), placeholderText); + QCOMPARE(obj1.currentIndex(), -1); + obj1.setPlaceholderText(QString()); // should not change anything + QCOMPARE(obj1.currentText(), "1"); + QCOMPARE(obj1.currentIndex(), 0); } typedef QList<QVariant> VariantList; @@ -812,16 +837,16 @@ void tst_QComboBox::virtualAutocompletion() // well, and send a keypress & keyrelease right after each other. // This provokes the actual error, as there's no events in between to do // the text completion. - QKeyEvent kp1(QEvent::KeyPress, Qt::Key_B, 0, "b"); - QKeyEvent kr1(QEvent::KeyRelease, Qt::Key_B, 0, "b"); + QKeyEvent kp1(QEvent::KeyPress, Qt::Key_B, {}, "b"); + QKeyEvent kr1(QEvent::KeyRelease, Qt::Key_B, {}, "b"); QApplication::sendEvent(testWidget, &kp1); QApplication::sendEvent(testWidget, &kr1); qApp->processEvents(); // Process events to trigger autocompletion QTRY_COMPARE(testWidget->currentIndex(), 1); - QKeyEvent kp2(QEvent::KeyPress, Qt::Key_O, 0, "o"); - QKeyEvent kr2(QEvent::KeyRelease, Qt::Key_O, 0, "o"); + QKeyEvent kp2(QEvent::KeyPress, Qt::Key_O, {}, "o"); + QKeyEvent kr2(QEvent::KeyRelease, Qt::Key_O, {}, "o"); QApplication::sendEvent(testWidget, &kp2); QApplication::sendEvent(testWidget, &kr2); @@ -840,6 +865,9 @@ void tst_QComboBox::virtualAutocompletion() void tst_QComboBox::autoCompletionCaseSensitivity() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + //we have put the focus because the completer //is only used when the widget actually has the focus TestWidget topLevel; @@ -1694,7 +1722,7 @@ void tst_QComboBox::setCustomModelAndView() // why this happens. QTest::qWait(QApplication::doubleClickInterval()); - QTest::mouseClick(window->windowHandle(), Qt::LeftButton, 0, view->mapTo(window, subItemRect.center())); + QTest::mouseClick(window->windowHandle(), Qt::LeftButton, {}, view->mapTo(window, subItemRect.center())); #ifdef Q_OS_WINRT QEXPECT_FAIL("", "Fails on WinRT - QTBUG-68297", Abort); #endif @@ -1995,6 +2023,9 @@ void tst_QComboBox::flaggedItems_data() void tst_QComboBox::flaggedItems() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(QStringList, itemList); QFETCH(IntList, deselectFlagList); QFETCH(IntList, disableFlagList); @@ -2453,7 +2484,7 @@ void tst_QComboBox::task247863_keyBoardSelection() QApplication::setActiveWindow(&combo); QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&combo)); - QSignalSpy spy(&combo, SIGNAL(activated(QString))); + QSignalSpy spy(&combo, &QComboBox::activated); qApp->setEffectEnabled(Qt::UI_AnimateCombo, false); QTest::keyClick(&combo, Qt::Key_Space); qApp->setEffectEnabled(Qt::UI_AnimateCombo, true); @@ -2465,6 +2496,9 @@ void tst_QComboBox::task247863_keyBoardSelection() void tst_QComboBox::task220195_keyBoardSelection2() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QComboBox combo; setFrameless(&combo); combo.move(200, 200); @@ -2722,10 +2756,7 @@ void tst_QComboBox::resetModel() class StringListModel : public QStringListModel { public: - StringListModel(const QStringList &list) : QStringListModel(list) - { - } - + using QStringListModel::QStringListModel; void reset() { QStringListModel::beginResetModel(); @@ -2733,8 +2764,8 @@ void tst_QComboBox::resetModel() } }; QComboBox cb; - StringListModel model( QStringList() << "1" << "2"); - QSignalSpy spy(&cb, SIGNAL(currentIndexChanged(int))); + StringListModel model({"1", "2"}); + QSignalSpy spy(&cb, QOverload<int>::of(&QComboBox::currentIndexChanged)); QCOMPARE(spy.count(), 0); QCOMPARE(cb.currentIndex(), -1); //no selection @@ -2745,12 +2776,15 @@ void tst_QComboBox::resetModel() model.reset(); QCOMPARE(spy.count(), 2); - QCOMPARE(cb.currentIndex(), -1); //no selection + QCOMPARE(cb.currentIndex(), 0); //first item selected } void tst_QComboBox::keyBoardNavigationWithMouse() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QComboBox combo; combo.setEditable(false); setFrameless(&combo); @@ -2798,6 +2832,9 @@ void tst_QComboBox::keyBoardNavigationWithMouse() void tst_QComboBox::task_QTBUG_1071_changingFocusEmitsActivated() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget w; w.move(200, 200); QVBoxLayout layout(&w); @@ -3065,6 +3102,9 @@ void tst_QComboBox::itemData() void tst_QComboBox::task_QTBUG_31146_popupCompletion() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QComboBox comboBox; comboBox.setEditable(true); #if QT_DEPRECATED_SINCE(5, 13) @@ -3101,6 +3141,9 @@ void tst_QComboBox::task_QTBUG_31146_popupCompletion() void tst_QComboBox::task_QTBUG_41288_completerChangesCurrentIndex() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QComboBox comboBox; comboBox.setEditable(true); @@ -3352,6 +3395,9 @@ void tst_QComboBox::task_QTBUG_56693_itemFontFromModel() void tst_QComboBox::inputMethodUpdate() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + TestWidget topLevel; topLevel.show(); QVERIFY(QTest::qWaitForWindowExposed(&topLevel)); @@ -3406,6 +3452,9 @@ void tst_QComboBox::inputMethodUpdate() void tst_QComboBox::task_QTBUG_52027_mapCompleterIndex() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QStringList words; words << "" << "foobar1" << "foobar2"; diff --git a/tests/auto/widgets/widgets/qcommandlinkbutton/CMakeLists.txt b/tests/auto/widgets/widgets/qcommandlinkbutton/CMakeLists.txt index 2893e2d0f3..59ba375358 100644 --- a/tests/auto/widgets/widgets/qcommandlinkbutton/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qcommandlinkbutton/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qcommandlinkbutton" RUN_SERIAL SOURCES tst_qcommandlinkbutton.cpp LIBRARIES Qt::Widgets) +# Generated from qcommandlinkbutton.pro. + +##################################################################### +## tst_qcommandlinkbutton Test: +##################################################################### + +add_qt_test(tst_qcommandlinkbutton + SOURCES + tst_qcommandlinkbutton.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qcommandlinkbutton/tst_qcommandlinkbutton.cpp b/tests/auto/widgets/widgets/qcommandlinkbutton/tst_qcommandlinkbutton.cpp index 2e5d24cd26..45a23984e0 100644 --- a/tests/auto/widgets/widgets/qcommandlinkbutton/tst_qcommandlinkbutton.cpp +++ b/tests/auto/widgets/widgets/qcommandlinkbutton/tst_qcommandlinkbutton.cpp @@ -51,7 +51,9 @@ private slots: void getSetCheck(); void pressed(); +#if QT_CONFIG(shortcut) void setAccel(); +#endif void isCheckable(); void setDown(); void popupCrash(); @@ -110,6 +112,8 @@ void tst_QCommandLinkButton::initTestCase() testWidget->setObjectName("testWidget"); testWidget->resize( 200, 200 ); testWidget->show(); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); QVERIFY(QTest::qWaitForWindowActive(testWidget)); connect( testWidget, SIGNAL(clicked()), this, SLOT(onClicked()) ); @@ -131,8 +135,10 @@ void tst_QCommandLinkButton::init() testWidget->setText("Test"); testWidget->setDescription("Description text."); testWidget->setEnabled( true ); +#if QT_CONFIG(shortcut) QKeySequence seq; testWidget->setShortcut( seq ); +#endif resetCounters(); } @@ -325,6 +331,8 @@ void tst_QCommandLinkButton::toggled() QVERIFY( click_count == 1 ); } +#if QT_CONFIG(shortcut) + /* If we press an accelerator key we ONLY get a pressed signal and NOT a released or clicked signal. @@ -353,6 +361,8 @@ void tst_QCommandLinkButton::setAccel() QTest::qWait(200); } +#endif // QT_CONFIG(shortcut) + void tst_QCommandLinkButton::animateClick() { QVERIFY( !testWidget->isDown() ); diff --git a/tests/auto/widgets/widgets/qdatetimeedit/CMakeLists.txt b/tests/auto/widgets/widgets/qdatetimeedit/CMakeLists.txt index 1f977399ac..8eb294d361 100644 --- a/tests/auto/widgets/widgets/qdatetimeedit/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qdatetimeedit/CMakeLists.txt @@ -1,6 +1,15 @@ -add_qt_test("tst_qdatetimeedit" RUN_SERIAL SOURCES tst_qdatetimeedit.cpp - LIBRARIES - Qt::Widgets +# Generated from qdatetimeedit.pro. + +##################################################################### +## tst_qdatetimeedit Test: +##################################################################### + +add_qt_test(tst_qdatetimeedit + SOURCES + tst_qdatetimeedit.cpp + PUBLIC_LIBRARIES Qt::CorePrivate + Qt::Gui + Qt::Widgets Qt::WidgetsPrivate ) diff --git a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp index 26b4b7d020..9eae1f10ea 100644 --- a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp +++ b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp @@ -262,6 +262,8 @@ private slots: void timeSpec(); void timeSpecBug(); void timeSpecInit(); + void setDateTime_data(); + void setDateTime(); void monthEdgeCase(); void setLocale(); @@ -2303,7 +2305,7 @@ void tst_QDateTimeEdit::mousePress() QRect rectUp = testWidget->style()->subControlRect(QStyle::CC_SpinBox, &so, QStyle::SC_SpinBoxUp, testWidget); // Send mouseClick to center of SC_SpinBoxUp - QTest::mouseClick(testWidget, Qt::LeftButton, 0, rectUp.center()); + QTest::mouseClick(testWidget, Qt::LeftButton, {}, rectUp.center()); QCOMPARE(testWidget->date().year(), 2005); } @@ -2916,7 +2918,8 @@ void tst_QDateTimeEdit::calendarPopup() opt.editable = true; opt.subControls = QStyle::SC_ComboBoxArrow; QRect rect = style->subControlRect(QStyle::CC_ComboBox, &opt, QStyle::SC_ComboBoxArrow, testWidget); - QTest::mouseClick(testWidget, Qt::LeftButton, 0, QPoint(rect.left()+rect.width()/2, rect.top()+rect.height()/2)); + QTest::mouseClick(testWidget, Qt::LeftButton, {}, + QPoint(rect.left() + rect.width() / 2, rect.top() + rect.height() / 2)); QWidget *wid = testWidget->findChild<QWidget *>("qt_datetimedit_calendar"); QVERIFY(wid != 0); testWidget->hide(); @@ -2928,7 +2931,8 @@ void tst_QDateTimeEdit::calendarPopup() opt.initFrom(&timeEdit); opt.subControls = QStyle::SC_ComboBoxArrow; rect = style->subControlRect(QStyle::CC_ComboBox, &opt, QStyle::SC_ComboBoxArrow, &timeEdit); - QTest::mouseClick(&timeEdit, Qt::LeftButton, 0, QPoint(rect.left()+rect.width()/2, rect.top()+rect.height()/2)); + QTest::mouseClick(&timeEdit, Qt::LeftButton, {}, + QPoint(rect.left() + rect.width() / 2, rect.top() + rect.height() / 2)); QWidget *wid2 = timeEdit.findChild<QWidget *>("qt_datetimedit_calendar"); QVERIFY(!wid2); timeEdit.hide(); @@ -2942,7 +2946,8 @@ void tst_QDateTimeEdit::calendarPopup() opt.initFrom(&dateEdit); opt.subControls = QStyle::SC_ComboBoxArrow; rect = style->subControlRect(QStyle::CC_ComboBox, &opt, QStyle::SC_ComboBoxArrow, &dateEdit); - QTest::mouseClick(&dateEdit, Qt::LeftButton, 0, QPoint(rect.left()+rect.width()/2, rect.top()+rect.height()/2)); + QTest::mouseClick(&dateEdit, Qt::LeftButton, {}, + QPoint(rect.left() + rect.width() / 2, rect.top() + rect.height() / 2)); QWidget *wid3 = dateEdit.findChild<QWidget *>("qt_datetimedit_calendar"); QVERIFY(!wid3); dateEdit.hide(); @@ -3473,6 +3478,54 @@ void tst_QDateTimeEdit::timeSpecInit() QCOMPARE(widget.dateTime(), utc); } +void tst_QDateTimeEdit::setDateTime_data() +{ + QTest::addColumn<Qt::TimeSpec>("spec"); + QDateTime localNoon(QDate(2019, 12, 24), QTime(12, 0), Qt::LocalTime); +#if 0 // Not yet supported + QTest::addColumn<int>("offset"); + QTest::addColumn<QByteArray>("zoneName"); + + QTest::newRow("OffsetFromUTC/LocalTime") + << Qt::OffsetFromUTC << 7200 << "" + << localNoon << localNoon.toOffsetFromUtc(7200); +#if QT_CONFIG(timezone) + QTest::newRow("TimeZone/LocalTime") + << Qt::TimeZone << 0 << "Europe/Berlin" + << localNoon << localNoon.toTimeZone(QTimeZone("Europe/Berlin")); +#endif +#endif // unsupported + QTest::addColumn<QDateTime>("store"); + QTest::addColumn<QDateTime>("expect"); + QTest::newRow("LocalTime/LocalTime") + << Qt::LocalTime // << 0 << "" + << localNoon << localNoon; + QTest::newRow("LocalTime/UTC") + << Qt::LocalTime // << 0 << "" + << localNoon.toUTC() << localNoon; + QTest::newRow("UTC/LocalTime") + << Qt::UTC // << 0 << "" + << localNoon << localNoon.toUTC(); + QTest::newRow("UTC/UTC") + << Qt::UTC // << 0 << "" + << localNoon.toUTC() << localNoon.toUTC(); +} + +void tst_QDateTimeEdit::setDateTime() +{ + QFETCH(const Qt::TimeSpec, spec); +#if 0 // Not yet supported + QFETCH(const int, offset); + QFETCH(const QByteArray, zoneName); +#endif // configuring the spec, when OffsetFromUTC or TimeZone + QFETCH(const QDateTime, store); + QFETCH(const QDateTime, expect); + QDateTimeEdit editor; + editor.setTimeSpec(spec); + editor.setDateTime(store); + QCOMPARE(editor.dateTime(), expect); +} + void tst_QDateTimeEdit::cachedDayTest() { testWidget->setDisplayFormat("MM/dd"); @@ -4097,6 +4150,9 @@ void tst_QDateTimeEdit::stepModifierKeys_data() void tst_QDateTimeEdit::stepModifierKeys() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(QDate, startDate); QFETCH(int, stepModifier); QFETCH(QDateTimeEdit::Section, section); @@ -4198,6 +4254,9 @@ void tst_QDateTimeEdit::stepModifierButtons_data() void tst_QDateTimeEdit::stepModifierButtons() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(QStyle::SubControl, subControl); QFETCH(int, stepModifier); QFETCH(Qt::KeyboardModifiers, modifiers); @@ -4285,6 +4344,9 @@ void tst_QDateTimeEdit::stepModifierPressAndHold_data() void tst_QDateTimeEdit::stepModifierPressAndHold() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(QStyle::SubControl, subControl); QFETCH(int, stepModifier); QFETCH(Qt::KeyboardModifiers, modifiers); diff --git a/tests/auto/widgets/widgets/qdial/CMakeLists.txt b/tests/auto/widgets/widgets/qdial/CMakeLists.txt index 76fc75d85a..e725edacb6 100644 --- a/tests/auto/widgets/widgets/qdial/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qdial/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qdial" RUN_SERIAL SOURCES tst_qdial.cpp LIBRARIES Qt::Widgets) +# Generated from qdial.pro. + +##################################################################### +## tst_qdial Test: +##################################################################### + +add_qt_test(tst_qdial + SOURCES + tst_qdial.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qdial/tst_qdial.cpp b/tests/auto/widgets/widgets/qdial/tst_qdial.cpp index 7db3b44dc8..356f773ae9 100644 --- a/tests/auto/widgets/widgets/qdial/tst_qdial.cpp +++ b/tests/auto/widgets/widgets/qdial/tst_qdial.cpp @@ -98,7 +98,7 @@ void tst_QDial::sliderMoved() QPoint init(dial.width()/4, dial.height()/2); QMouseEvent pressevent(QEvent::MouseButtonPress, init, - Qt::LeftButton, Qt::LeftButton, 0); + Qt::LeftButton, Qt::LeftButton, {}); qApp->sendEvent(&dial, &pressevent); QSignalSpy sliderspy(&dial, SIGNAL(sliderMoved(int))); @@ -108,7 +108,7 @@ void tst_QDial::sliderMoved() { //move on top of the slider init = QPoint(dial.width()/2, dial.height()/4); QMouseEvent moveevent(QEvent::MouseMove, init, - Qt::LeftButton, Qt::LeftButton, 0); + Qt::LeftButton, Qt::LeftButton, {}); qApp->sendEvent(&dial, &moveevent); QCOMPARE( sliderspy.count(), 1); QCOMPARE( valuespy.count(), 0); @@ -118,14 +118,14 @@ void tst_QDial::sliderMoved() { //move on the right of the slider init = QPoint(dial.width()*3/4, dial.height()/2); QMouseEvent moveevent(QEvent::MouseMove, init, - Qt::LeftButton, Qt::LeftButton, 0); + Qt::LeftButton, Qt::LeftButton, {}); qApp->sendEvent(&dial, &moveevent); QCOMPARE( sliderspy.count(), 2); QCOMPARE( valuespy.count(), 0); } QMouseEvent releaseevent(QEvent::MouseButtonRelease, init, - Qt::LeftButton, Qt::LeftButton, 0); + Qt::LeftButton, Qt::LeftButton, {}); qApp->sendEvent(&dial, &releaseevent); QCOMPARE( valuespy.count(), 1); // valuechanged signal should be called at this point diff --git a/tests/auto/widgets/widgets/qdialogbuttonbox/CMakeLists.txt b/tests/auto/widgets/widgets/qdialogbuttonbox/CMakeLists.txt index 032189307c..c4961f13a1 100644 --- a/tests/auto/widgets/widgets/qdialogbuttonbox/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qdialogbuttonbox/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qdialogbuttonbox" RUN_SERIAL SOURCES tst_qdialogbuttonbox.cpp LIBRARIES Qt::Widgets) +# Generated from qdialogbuttonbox.pro. + +##################################################################### +## tst_qdialogbuttonbox Test: +##################################################################### + +add_qt_test(tst_qdialogbuttonbox + SOURCES + tst_qdialogbuttonbox.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp b/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp index 17b0e9ce5f..6a2c8893d2 100644 --- a/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp +++ b/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp @@ -163,7 +163,7 @@ void tst_QDialogButtonBox::testConstructor3_data() QTest::addColumn<QDialogButtonBox::StandardButtons>("buttons"); QTest::addColumn<int>("buttonCount"); - QTest::newRow("nothing") << int(Qt::Horizontal) << (QDialogButtonBox::StandardButtons)0 << 0; + QTest::newRow("nothing") << int(Qt::Horizontal) << QDialogButtonBox::StandardButtons{} << 0; QTest::newRow("only 1") << int(Qt::Horizontal) << QDialogButtonBox::StandardButtons(QDialogButtonBox::Ok) << 1; QTest::newRow("only 1.. twice") << int(Qt::Horizontal) << (QDialogButtonBox::Ok | QDialogButtonBox::Ok) @@ -199,7 +199,7 @@ void tst_QDialogButtonBox::testConstructor4_data() QTest::addColumn<QDialogButtonBox::StandardButtons>("buttons"); QTest::addColumn<int>("buttonCount"); - QTest::newRow("nothing") << (QDialogButtonBox::StandardButtons)0 << 0; + QTest::newRow("nothing") << QDialogButtonBox::StandardButtons{} << 0; QTest::newRow("only 1") << QDialogButtonBox::StandardButtons(QDialogButtonBox::Ok) << 1; QTest::newRow("only 1.. twice") << (QDialogButtonBox::Ok | QDialogButtonBox::Ok) @@ -828,6 +828,9 @@ void tst_QDialogButtonBox::testDefaultButton() void tst_QDialogButtonBox::task191642_default() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QDialog dlg; QPushButton *def = new QPushButton(&dlg); QSignalSpy clicked(def, SIGNAL(clicked(bool))); diff --git a/tests/auto/widgets/widgets/qdockwidget/CMakeLists.txt b/tests/auto/widgets/widgets/qdockwidget/CMakeLists.txt index 4bbe5234d9..e2b6cc5942 100644 --- a/tests/auto/widgets/widgets/qdockwidget/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qdockwidget/CMakeLists.txt @@ -1,6 +1,16 @@ -add_qt_test("tst_qdockwidget" RUN_SERIAL SOURCES tst_qdockwidget.cpp - LIBRARIES - Qt::WidgetsPrivate +# Generated from qdockwidget.pro. + +##################################################################### +## tst_qdockwidget Test: +##################################################################### + +add_qt_test(tst_qdockwidget + SOURCES + tst_qdockwidget.cpp + PUBLIC_LIBRARIES Qt::CorePrivate + Qt::Gui Qt::GuiPrivate + Qt::Widgets + Qt::WidgetsPrivate ) diff --git a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp index 625116654d..9a16c39014 100644 --- a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp +++ b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp @@ -946,6 +946,9 @@ void tst_QDockWidget::task248604_infiniteResize() void tst_QDockWidget::task258459_visibilityChanged() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow win; QDockWidget dock1, dock2; win.addDockWidget(Qt::RightDockWidgetArea, &dock1); diff --git a/tests/auto/widgets/widgets/qdoublespinbox/BLACKLIST b/tests/auto/widgets/widgets/qdoublespinbox/BLACKLIST index 8f5648d0f9..9da179e365 100644 --- a/tests/auto/widgets/widgets/qdoublespinbox/BLACKLIST +++ b/tests/auto/widgets/widgets/qdoublespinbox/BLACKLIST @@ -1,4 +1,2 @@ [editingFinished] -osx-10.12 -osx-10.14 -osx-10.13 +macos diff --git a/tests/auto/widgets/widgets/qdoublespinbox/CMakeLists.txt b/tests/auto/widgets/widgets/qdoublespinbox/CMakeLists.txt index 8030b82b42..b639289db8 100644 --- a/tests/auto/widgets/widgets/qdoublespinbox/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qdoublespinbox/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qdoublespinbox" RUN_SERIAL SOURCES tst_qdoublespinbox.cpp LIBRARIES Qt::Widgets) +# Generated from qdoublespinbox.pro. + +##################################################################### +## tst_qdoublespinbox Test: +##################################################################### + +add_qt_test(tst_qdoublespinbox + SOURCES + tst_qdoublespinbox.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qdoublespinbox/tst_qdoublespinbox.cpp b/tests/auto/widgets/widgets/qdoublespinbox/tst_qdoublespinbox.cpp index c760d9cc99..cec2da1d57 100644 --- a/tests/auto/widgets/widgets/qdoublespinbox/tst_qdoublespinbox.cpp +++ b/tests/auto/widgets/widgets/qdoublespinbox/tst_qdoublespinbox.cpp @@ -166,7 +166,9 @@ private slots: void doubleDot(); +#if QT_CONFIG(shortcut) void undoRedo(); +#endif void valueFromTextAndValidate_data(); void valueFromTextAndValidate(); @@ -256,6 +258,10 @@ void tst_QDoubleSpinBox::initTestCase() testFocusWidget = new QWidget(0); testFocusWidget->resize(200, 100); testFocusWidget->show(); + + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QVERIFY(QTest::qWaitForWindowActive(testFocusWidget)); } @@ -413,7 +419,7 @@ void tst_QDoubleSpinBox::setTracking() spin.setDecimals(decimals); spin.show(); - connect(&spin, SIGNAL(valueChanged(QString)), this, SLOT(valueChangedHelper(QString))); + connect(&spin, SIGNAL(textChanged(QString)), this, SLOT(valueChangedHelper(QString))); keys.simulate(&spin); QCOMPARE(actualTexts, texts); @@ -1021,6 +1027,8 @@ void tst_QDoubleSpinBox::doubleDot() QCOMPARE(spin.lineEdit()->cursorPosition(), 2); } +#if QT_CONFIG(shortcut) + void tst_QDoubleSpinBox::undoRedo() { //test undo/redo feature (in conjunction with the "undoRedoEnabled" property) @@ -1069,6 +1077,8 @@ void tst_QDoubleSpinBox::undoRedo() QVERIFY(!spin.lineEdit()->isRedoAvailable()); } +#endif // QT_CONFIG(shortcut) + struct task199226_DoubleSpinBox : public QDoubleSpinBox { task199226_DoubleSpinBox(QWidget *parent = 0) : QDoubleSpinBox(parent) {} @@ -1764,7 +1774,7 @@ void tst_QDoubleSpinBox::stepModifierPressAndHold() stepModifierStyle->stepModifier = static_cast<Qt::KeyboardModifier>(stepModifier); spin.setStyle(stepModifierStyle.data()); - QSignalSpy spy(&spin, QOverload<double>::of(&DoubleSpinBox::valueChanged)); + QSignalSpy spy(&spin, &DoubleSpinBox::valueChanged); spin.show(); QVERIFY(QTest::qWaitForWindowExposed(&spin)); diff --git a/tests/auto/widgets/widgets/qfocusframe/CMakeLists.txt b/tests/auto/widgets/widgets/qfocusframe/CMakeLists.txt index 1aac33f254..85160faed7 100644 --- a/tests/auto/widgets/widgets/qfocusframe/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qfocusframe/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qfocusframe" RUN_SERIAL SOURCES tst_qfocusframe.cpp LIBRARIES Qt::Widgets) +# Generated from qfocusframe.pro. + +##################################################################### +## tst_qfocusframe Test: +##################################################################### + +add_qt_test(tst_qfocusframe + SOURCES + tst_qfocusframe.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qfontcombobox/CMakeLists.txt b/tests/auto/widgets/widgets/qfontcombobox/CMakeLists.txt index 6bb659cca2..777abc48c5 100644 --- a/tests/auto/widgets/widgets/qfontcombobox/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qfontcombobox/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qfontcombobox" RUN_SERIAL SOURCES tst_qfontcombobox.cpp LIBRARIES Qt::Widgets) +# Generated from qfontcombobox.pro. + +##################################################################### +## tst_qfontcombobox Test: +##################################################################### + +add_qt_test(tst_qfontcombobox + SOURCES + tst_qfontcombobox.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qfontcombobox/tst_qfontcombobox.cpp b/tests/auto/widgets/widgets/qfontcombobox/tst_qfontcombobox.cpp index 5392d36ae0..bd3ea5686a 100644 --- a/tests/auto/widgets/widgets/qfontcombobox/tst_qfontcombobox.cpp +++ b/tests/auto/widgets/widgets/qfontcombobox/tst_qfontcombobox.cpp @@ -35,6 +35,8 @@ class tst_QFontComboBox : public QObject Q_OBJECT private slots: + void initTestCase(); + void qfontcombobox_data(); void qfontcombobox(); void currentFont_data(); @@ -58,6 +60,12 @@ public: { return SubQFontComboBox::event(e); } }; +void tst_QFontComboBox::initTestCase() +{ + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This freezes. Figure out why."); +} + void tst_QFontComboBox::qfontcombobox_data() { } diff --git a/tests/auto/widgets/widgets/qframe/CMakeLists.txt b/tests/auto/widgets/widgets/qframe/CMakeLists.txt index f109c76d0d..ae23555fa5 100644 --- a/tests/auto/widgets/widgets/qframe/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qframe/CMakeLists.txt @@ -1 +1,20 @@ -add_qt_test("tst_qframe" RUN_SERIAL SOURCES tst_qframe.cpp LIBRARIES Qt::Widgets) +# Generated from qframe.pro. + +##################################################################### +## tst_qframe Test: +##################################################################### + +# Collect test data +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + images/*) +list(APPEND test_data ${test_data_glob}) + +add_qt_test(tst_qframe + SOURCES + tst_qframe.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets + TESTDATA ${test_data} +) diff --git a/tests/auto/widgets/widgets/qframe/tst_qframe.cpp b/tests/auto/widgets/widgets/qframe/tst_qframe.cpp index 05f9cd2e4a..0ca8dc0776 100644 --- a/tests/auto/widgets/widgets/qframe/tst_qframe.cpp +++ b/tests/auto/widgets/widgets/qframe/tst_qframe.cpp @@ -159,6 +159,9 @@ void tst_QFrame::testPainting_data() void tst_QFrame::testPainting() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(QString, basename); QFETCH(int, lineWidth); QFETCH(int, midLineWidth); diff --git a/tests/auto/widgets/widgets/qgroupbox/CMakeLists.txt b/tests/auto/widgets/widgets/qgroupbox/CMakeLists.txt index 5885420d31..09d4623cd9 100644 --- a/tests/auto/widgets/widgets/qgroupbox/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qgroupbox/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qgroupbox" RUN_SERIAL SOURCES tst_qgroupbox.cpp LIBRARIES Qt::Widgets) +# Generated from qgroupbox.pro. + +##################################################################### +## tst_qgroupbox Test: +##################################################################### + +add_qt_test(tst_qgroupbox + SOURCES + tst_qgroupbox.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp b/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp index 1b477fbbd0..4fb5d262ca 100644 --- a/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp +++ b/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp @@ -387,7 +387,7 @@ void tst_QGroupBox::clicked() QStyle::SubControl(areaToHit), &testWidget); if (rect.isValid()) - QTest::mouseClick(&testWidget, Qt::LeftButton, 0, rect.center()); + QTest::mouseClick(&testWidget, Qt::LeftButton, {}, rect.center()); else QTest::mouseClick(&testWidget, Qt::LeftButton); @@ -420,7 +420,7 @@ void tst_QGroupBox::toggledVsClicked() QRect rect = groupBox.style()->subControlRect(QStyle::CC_GroupBox, &option, QStyle::SC_GroupBoxCheckBox, &groupBox); - QTest::mouseClick(&groupBox, Qt::LeftButton, 0, rect.center()); + QTest::mouseClick(&groupBox, Qt::LeftButton, {}, rect.center()); QCOMPARE(clickSpy.count(), 1); QCOMPARE(toggleSpy.count(), 2); QVERIFY(toggleTimeStamp < clickTimeStamp); @@ -474,6 +474,9 @@ void tst_QGroupBox::childrenAreDisabled() void tst_QGroupBox::propagateFocus() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QGroupBox box; QLineEdit lineEdit(&box); box.show(); @@ -497,11 +500,11 @@ void tst_QGroupBox::task_QTBUG_19170_ignoreMouseReleaseEvent() QRect rect = box.style()->subControlRect(QStyle::CC_GroupBox, &option, QStyle::SC_GroupBoxCheckBox, &box); - QTest::mouseClick(&box, Qt::LeftButton, 0, rect.center()); + QTest::mouseClick(&box, Qt::LeftButton, {}, rect.center()); QCOMPARE(box.isChecked(), true); box.setChecked(false); - QTest::mouseRelease(&box, Qt::LeftButton, 0, rect.center()); + QTest::mouseRelease(&box, Qt::LeftButton, {}, rect.center()); QCOMPARE(box.isChecked(), false); } @@ -555,19 +558,19 @@ void tst_QGroupBox::task_QTBUG_15519_propagateMouseEvents() // Without a checkbox, all mouse events should propagate parent.reset(); - QTest::mousePress(&box, Qt::LeftButton, 0, checkBoxRect.center()); + QTest::mousePress(&box, Qt::LeftButton, {}, checkBoxRect.center()); QCOMPARE(parent.mousePressed, true); parent.reset(); - QTest::mousePress(&box, Qt::LeftButton, 0, box.rect().center()); + QTest::mousePress(&box, Qt::LeftButton, {}, box.rect().center()); QCOMPARE(parent.mousePressed, true); parent.reset(); - QTest::mouseRelease(&box, Qt::LeftButton, 0, checkBoxRect.center()); + QTest::mouseRelease(&box, Qt::LeftButton, {}, checkBoxRect.center()); QCOMPARE(parent.mouseReleased, true); parent.reset(); - QTest::mouseRelease(&box, Qt::LeftButton, 0, box.rect().center()); + QTest::mouseRelease(&box, Qt::LeftButton, {}, box.rect().center()); QCOMPARE(parent.mouseReleased, true); parent.reset(); @@ -583,19 +586,19 @@ void tst_QGroupBox::task_QTBUG_15519_propagateMouseEvents() box.setCheckable(true); parent.reset(); - QTest::mousePress(&box, Qt::LeftButton, 0, checkBoxRect.center()); + QTest::mousePress(&box, Qt::LeftButton, {}, checkBoxRect.center()); QCOMPARE(parent.mousePressed, false); parent.reset(); - QTest::mousePress(&box, Qt::LeftButton, 0, box.rect().center()); + QTest::mousePress(&box, Qt::LeftButton, {}, box.rect().center()); QCOMPARE(parent.mousePressed, true); parent.reset(); - QTest::mouseRelease(&box, Qt::LeftButton, 0, checkBoxRect.center()); + QTest::mouseRelease(&box, Qt::LeftButton, {}, checkBoxRect.center()); QCOMPARE(parent.mouseReleased, false); parent.reset(); - QTest::mouseRelease(&box, Qt::LeftButton, 0, box.rect().center()); + QTest::mouseRelease(&box, Qt::LeftButton, {}, box.rect().center()); QCOMPARE(parent.mouseReleased, true); parent.reset(); diff --git a/tests/auto/widgets/widgets/qkeysequenceedit/CMakeLists.txt b/tests/auto/widgets/widgets/qkeysequenceedit/CMakeLists.txt index 415b49dd1b..c57f8b5c0a 100644 --- a/tests/auto/widgets/widgets/qkeysequenceedit/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qkeysequenceedit/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qkeysequenceedit" RUN_SERIAL SOURCES tst_qkeysequenceedit.cpp LIBRARIES Qt::Widgets) +# Generated from qkeysequenceedit.pro. + +##################################################################### +## tst_qkeysequenceedit Test: +##################################################################### + +add_qt_test(tst_qkeysequenceedit + SOURCES + tst_qkeysequenceedit.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qlabel/CMakeLists.txt b/tests/auto/widgets/widgets/qlabel/CMakeLists.txt index 91ce86552a..a4fe508a02 100644 --- a/tests/auto/widgets/widgets/qlabel/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qlabel/CMakeLists.txt @@ -1,6 +1,27 @@ -add_qt_test("tst_qlabel" RUN_SERIAL SOURCES tst_qlabel.cpp - LIBRARIES - Qt::WidgetsPrivate +# Generated from qlabel.pro. + +##################################################################### +## tst_qlabel Test: +##################################################################### + +# Collect test data +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + testdata/*) +list(APPEND test_data ${test_data_glob}) +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + *.png) +list(APPEND test_data ${test_data_glob}) + +add_qt_test(tst_qlabel + SOURCES + tst_qlabel.cpp + PUBLIC_LIBRARIES Qt::CorePrivate + Qt::Gui Qt::GuiPrivate + Qt::Widgets + Qt::WidgetsPrivate + TESTDATA ${test_data} ) diff --git a/tests/auto/widgets/widgets/qlabel/tst_qlabel.cpp b/tests/auto/widgets/widgets/qlabel/tst_qlabel.cpp index f599ac73c6..7760e12cca 100644 --- a/tests/auto/widgets/widgets/qlabel/tst_qlabel.cpp +++ b/tests/auto/widgets/widgets/qlabel/tst_qlabel.cpp @@ -68,7 +68,7 @@ private Q_SLOTS: void setText_data(); void setText(); void setTextFormat(); -#ifndef Q_OS_MAC +#if QT_CONFIG(shortcut) && !defined(Q_OS_DARWIN) void setBuddy(); #endif void setNum(); @@ -88,8 +88,10 @@ private Q_SLOTS: void unicodeText_data(); void unicodeText(); +#if QT_CONFIG(shortcut) void mnemonic_data(); void mnemonic(); +#endif void selection(); #ifndef QT_NO_CONTEXTMENU @@ -116,6 +118,7 @@ void tst_QLabel::getSetCheck() obj1.setWordWrap(true); QCOMPARE(true, obj1.wordWrap()); +#if QT_CONFIG(shortcut) // QWidget * QLabel::buddy() // void QLabel::setBuddy(QWidget *) QWidget *var2 = new QWidget(); @@ -124,6 +127,7 @@ void tst_QLabel::getSetCheck() obj1.setBuddy((QWidget *)0); QCOMPARE((QWidget *)0, obj1.buddy()); delete var2; +#endif // QT_CONFIG(shortcut) // QMovie * QLabel::movie() // void QLabel::setMovie(QMovie *) @@ -153,7 +157,9 @@ void tst_QLabel::cleanupTestCase() void tst_QLabel::init() { testWidget->setTextFormat( Qt::AutoText ); +# if QT_CONFIG(shortcut) testWidget->setBuddy( 0 ); +#endif testWidget->setIndent( 0 ); testWidget->setAlignment( Qt::AlignLeft | Qt::AlignVCenter ); testWidget->setScaledContents( false ); @@ -169,7 +175,7 @@ void tst_QLabel::cleanup() } // Set buddy doesn't make much sense on OS X -#ifndef Q_OS_MAC +#if QT_CONFIG(shortcut) && !defined(Q_OS_DARWIN) void tst_QLabel::setBuddy() { testWidget->hide(); @@ -204,7 +210,7 @@ void tst_QLabel::setBuddy() delete test_box; } -#endif +#endif // QT_CONFIG(shortcut) && !Q_OS_DARWIN void tst_QLabel::setText_data() { @@ -469,6 +475,8 @@ void tst_QLabel::unicodeText() testWidget->show(); } +#if QT_CONFIG(shortcut) + void tst_QLabel::mnemonic_data() { QTest::addColumn<QString>("text"); @@ -513,6 +521,8 @@ void tst_QLabel::mnemonic() QCOMPARE(d->shortcutCursor.selectedText(), expectedShortcutCursor); } +#endif // QT_CONFIG(shortcut) + void tst_QLabel::selection() { QLabel label; diff --git a/tests/auto/widgets/widgets/qlcdnumber/CMakeLists.txt b/tests/auto/widgets/widgets/qlcdnumber/CMakeLists.txt index 4f748f0ae8..fbd9ff5913 100644 --- a/tests/auto/widgets/widgets/qlcdnumber/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qlcdnumber/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qlcdnumber" RUN_SERIAL SOURCES tst_qlcdnumber.cpp LIBRARIES Qt::Widgets) +# Generated from qlcdnumber.pro. + +##################################################################### +## tst_qlcdnumber Test: +##################################################################### + +add_qt_test(tst_qlcdnumber + SOURCES + tst_qlcdnumber.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qlineedit/CMakeLists.txt b/tests/auto/widgets/widgets/qlineedit/CMakeLists.txt index 00e0c1d575..f95094aa7d 100644 --- a/tests/auto/widgets/widgets/qlineedit/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qlineedit/CMakeLists.txt @@ -1,9 +1,25 @@ -add_qt_test("tst_qlineedit" RUN_SERIAL SOURCES tst_qlineedit.cpp - LIBRARIES - Qt::GuiPrivate +# Generated from qlineedit.pro. + +##################################################################### +## tst_qlineedit Test: +##################################################################### + +add_qt_test(tst_qlineedit + SOURCES + tst_qlineedit.cpp + PUBLIC_LIBRARIES Qt::CorePrivate - Qt::WidgetsPrivate + Qt::Gui + Qt::GuiPrivate Qt::TestPrivate + Qt::Widgets + Qt::WidgetsPrivate ) -extend_target("tst_qlineedit" CONDITION APPLE_OSX LIBRARIES ${FWAppKit}) +## Scopes: +##################################################################### + +extend_target(tst_qlineedit CONDITION APPLE_OSX + PUBLIC_LIBRARIES + ${FWAppKit} +) diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp index 0cfbc651ad..bf31f12958 100644 --- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp +++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp @@ -56,7 +56,9 @@ #include <qsortfilterproxymodel.h> #include <qdebug.h> #include <qscreen.h> -#include <qshortcut.h> +#if QT_CONFIG(shortcut) +# include <qshortcut.h> +#endif #include "qcommonstyle.h" #include "qstyleoption.h" @@ -77,24 +79,22 @@ using namespace QTestPrivate; class StyleOptionTestStyle : public QCommonStyle { -private: - bool readOnly; - public: - inline StyleOptionTestStyle() : QCommonStyle(), readOnly(false) - { - } + bool readOnly = false; + mutable bool wasDrawn = false; - inline void setReadOnly(bool readOnly) + using QCommonStyle::QCommonStyle; + void setReadOnly(bool readOnly) { this->readOnly = readOnly; } - inline void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *, - const QWidget *) const + void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *, + const QWidget *) const override { switch (pe) { case PE_PanelLineEdit: + wasDrawn = true; if (readOnly) QVERIFY(opt->state & QStyle::State_ReadOnly); else @@ -135,9 +135,11 @@ private slots: void clearInputMask(); +#if QT_CONFIG(shortcut) void keypress_inputMask_data(); void keypress_inputMask(); void keypress_inputMethod_inputMask(); +#endif void inputMaskAndValidator_data(); void inputMaskAndValidator(); @@ -219,7 +221,7 @@ private slots: void setSelection_data(); void setSelection(); -#ifndef QT_NO_CLIPBOARD +#if QT_CONFIG(clipboard) && QT_CONFIG(shortcut) void cut(); void cutWithoutSelection(); #endif @@ -299,8 +301,10 @@ private slots: void shouldShowPlaceholderText(); void QTBUG1266_setInputMaskEmittingTextEdited(); +#if QT_CONFIG(shortcut) void shortcutOverrideOnReadonlyLineEdit_data(); void shortcutOverrideOnReadonlyLineEdit(); +#endif void QTBUG59957_clearButtonLeftmostAction(); void QTBUG_60319_setInputMaskCheckImSurroundingText(); void testQuickSelectionWithMouse(); @@ -316,10 +320,12 @@ protected slots: private: // keyClicks(..) is moved to QtTestCase - void psKeyClick(QWidget *target, Qt::Key key, Qt::KeyboardModifiers pressState = 0); - void psKeyClick(QTestEventList &keys, Qt::Key key, Qt::KeyboardModifiers pressState = 0); + void psKeyClick(QWidget *target, Qt::Key key, Qt::KeyboardModifiers pressState = {}); + void psKeyClick(QTestEventList &keys, Qt::Key key, Qt::KeyboardModifiers pressState = {}); bool unselectingWithLeftOrRightChangesCursorPosition(); +#if QT_CONFIG(shortcut) void addKeySequenceStandardKey(QTestEventList &keys, QKeySequence::StandardKey); +#endif QLineEdit *ensureTestWidget(); bool validInput; @@ -715,6 +721,8 @@ void tst_QLineEdit::clearInputMask() QCOMPARE(testWidget->inputMask(), QString()); } +#if QT_CONFIG(shortcut) + void tst_QLineEdit::keypress_inputMask_data() { QTest::addColumn<QString>("mask"); @@ -762,6 +770,14 @@ void tst_QLineEdit::keypress_inputMask_data() } { QTestEventList keys; + // inserting at end + addKeySequenceStandardKey(keys, QKeySequence::MoveToEndOfLine); + keys.addKeyClick(Qt::Key_Left); + keys.addKeyClick(Qt::Key_0); + QTest::newRow("insert at end") << QString("9-9-9") << keys << QString("--0") << QString(" - -0"); + } + { + QTestEventList keys; // inserting '12.12' then two backspaces addKeySequenceStandardKey(keys, QKeySequence::MoveToStartOfLine); keys.addKeyClick(Qt::Key_1); @@ -832,6 +848,8 @@ void tst_QLineEdit::keypress_inputMethod_inputMask() QCOMPARE(testWidget->text(), QStringLiteral("EE.EE.EE")); } +#endif // QT_CONFIG(shortcut) + void tst_QLineEdit::hasAcceptableInputMask_data() { QTest::addColumn<QString>("optionalMask"); @@ -867,9 +885,6 @@ void tst_QLineEdit::hasAcceptableInputMask() qApp->sendEvent(testWidget, &lostFocus); QVERIFY(validInput); - // at the moment we don't strip the blank character if it is valid input, this makes the test between x vs X useless - QEXPECT_FAIL( "Any optional and required", "To eat blanks or not? Known issue. Task 43172", Abort); - // test requiredMask testWidget->setInputMask(requiredMask); validInput = true; @@ -1490,6 +1505,9 @@ void tst_QLineEdit::undo_keypressevents() #ifndef QT_NO_CLIPBOARD void tst_QLineEdit::QTBUG5786_undoPaste() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + if (!PlatformClipboard::isAvailable()) QSKIP("this machine doesn't support the clipboard"); QString initial("initial"); @@ -1700,6 +1718,9 @@ void tst_QLineEdit::displayText() void tst_QLineEdit::passwordEchoOnEdit() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QStyleOptionFrame opt; QLineEdit *testWidget = ensureTestWidget(); QChar fillChar = testWidget->style()->styleHint(QStyle::SH_LineEdit_PasswordCharacter, &opt, testWidget); @@ -1734,6 +1755,9 @@ void tst_QLineEdit::passwordEchoOnEdit() void tst_QLineEdit::passwordEchoDelay() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QLineEdit *testWidget = ensureTestWidget(); int delay = qGuiApp->styleHints()->passwordMaskDelay(); #if defined QT_BUILD_INTERNAL @@ -1917,6 +1941,9 @@ public: void tst_QLineEdit::noCursorBlinkWhenReadOnly() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + int cursorFlashTime = QApplication::cursorFlashTime(); if (cursorFlashTime == 0) return; @@ -1974,6 +2001,8 @@ void tst_QLineEdit::psKeyClick(QTestEventList &keys, Qt::Key key, Qt::KeyboardMo keys.addKeyClick(key, pressState); } +#if QT_CONFIG(shortcut) + void tst_QLineEdit::addKeySequenceStandardKey(QTestEventList &keys, QKeySequence::StandardKey key) { QKeySequence keyseq = QKeySequence(key); @@ -1981,6 +2010,8 @@ void tst_QLineEdit::addKeySequenceStandardKey(QTestEventList &keys, QKeySequence keys.addKeyClick( Qt::Key( keyseq[i] & ~Qt::KeyboardModifierMask), Qt::KeyboardModifier(keyseq[i] & Qt::KeyboardModifierMask) ); } +#endif // QT_CONFIG(shortcut) + void tst_QLineEdit::cursorPosition() { QLineEdit *testWidget = ensureTestWidget(); @@ -2260,7 +2291,7 @@ void tst_QLineEdit::deleteSelectedText() edit.selectAll(); - QTest::keyClick(&edit, Qt::Key_Delete, 0); + QTest::keyClick(&edit, Qt::Key_Delete, {}); QVERIFY(edit.text().isEmpty()); edit.setText(text); @@ -3011,9 +3042,12 @@ void tst_QLineEdit::setSelection() QCOMPARE(testWidget->cursorPosition(), expectedCursor); } -#ifndef QT_NO_CLIPBOARD +#if QT_CONFIG(clipboard) && QT_CONFIG(shortcut) void tst_QLineEdit::cut() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + if (!PlatformClipboard::isAvailable()) QSKIP("Autotests run from cron and pasteboard don't get along quite ATM"); @@ -3079,6 +3113,9 @@ void tst_QLineEdit::cut() void tst_QLineEdit::cutWithoutSelection() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + enum { selectionLength = 1 }; if (QKeySequence(QKeySequence::Cut).toString() != QLatin1String("Ctrl+X")) @@ -3106,7 +3143,7 @@ void tst_QLineEdit::cutWithoutSelection() QCOMPARE(clipboard->text(), origText.left(selectionLength)); } -#endif // !QT_NO_CLIPBOARD +#endif // QT_CONFIG(clipboard) && QT_CONFIG(shortcut) class InputMaskValidator : public QValidator { @@ -3245,19 +3282,22 @@ void tst_QLineEdit::readOnlyStyleOption() QLineEdit *testWidget = ensureTestWidget(); bool wasReadOnly = testWidget->isReadOnly(); QStyle *oldStyle = testWidget->style(); + testWidget->show(); + QTRY_VERIFY(QTest::qWaitForWindowExposed(testWidget)); StyleOptionTestStyle myStyle; testWidget->setStyle(&myStyle); myStyle.setReadOnly(true); testWidget->setReadOnly(true); - testWidget->repaint(); - qApp->processEvents(); + testWidget->update(); + QTRY_VERIFY(myStyle.wasDrawn); + myStyle.wasDrawn = false; testWidget->setReadOnly(false); myStyle.setReadOnly(false); - testWidget->repaint(); - qApp->processEvents(); + testWidget->update(); + QTRY_VERIFY(myStyle.wasDrawn); testWidget->setReadOnly(wasReadOnly); testWidget->setStyle(oldStyle); @@ -3265,6 +3305,9 @@ void tst_QLineEdit::readOnlyStyleOption() void tst_QLineEdit::validateOnFocusOut() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QLineEdit *testWidget = ensureTestWidget(); QSignalSpy editingFinishedSpy(testWidget, SIGNAL(editingFinished())); testWidget->setValidator(new QIntValidator(100, 999, 0)); @@ -3369,6 +3412,9 @@ void tst_QLineEdit::leftKeyOnSelectedText() void tst_QLineEdit::inlineCompletion() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QLineEdit *testWidget = ensureTestWidget(); testWidget->clear(); QStandardItemModel *model = new QStandardItemModel; @@ -3548,7 +3594,7 @@ void tst_QLineEdit::textMargin() QCOMPARE(bottom, b); #endif - QTest::mouseClick(&testWidget, Qt::LeftButton, 0, mousePressPos); + QTest::mouseClick(&testWidget, Qt::LeftButton, {}, mousePressPos); QTRY_COMPARE(testWidget.cursorPosition(), cursorPosition); } @@ -3583,6 +3629,9 @@ public: void tst_QLineEdit::task180999_focus() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + task180999_Widget widget; widget.lineEdit1.setFocus(); @@ -3602,6 +3651,9 @@ void tst_QLineEdit::task180999_focus() void tst_QLineEdit::task174640_editingFinished() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget mw; QVBoxLayout *layout = new QVBoxLayout(&mw); QLineEdit *le1 = new QLineEdit(&mw); @@ -3703,6 +3755,9 @@ void tst_QLineEdit::task198789_currentCompletion() void tst_QLineEdit::task210502_caseInsensitiveInlineCompletion() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QString completion("ABCD"); QStringList completions; completions << completion; @@ -3800,6 +3855,9 @@ void tst_QLineEdit::task233101_cursorPosAfterInputMethod() void tst_QLineEdit::task241436_passwordEchoOnEditRestoreEchoMode() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QStyleOptionFrame opt; QLineEdit *testWidget = ensureTestWidget(); QChar fillChar = testWidget->style()->styleHint(QStyle::SH_LineEdit_PasswordCharacter, &opt, testWidget); @@ -3847,6 +3905,9 @@ void tst_QLineEdit::task248948_redoRemovedSelection() void tst_QLineEdit::taskQTBUG_4401_enterKeyClearsPassword() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QString password("Wanna guess?"); QLineEdit *testWidget = ensureTestWidget(); @@ -3922,12 +3983,17 @@ void tst_QLineEdit::taskQTBUG_7902_contextMenuCrash() void tst_QLineEdit::taskQTBUG_7395_readOnlyShortcut() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + //ReadOnly QLineEdit should not intercept shortcut. QLineEdit le; le.setReadOnly(true); QAction action(QString::fromLatin1("hello"), &le); +#if QT_CONFIG(shortcut) action.setShortcut(QString::fromLatin1("p")); +#endif QSignalSpy spy(&action, SIGNAL(triggered())); le.addAction(&action); @@ -3944,6 +4010,9 @@ void tst_QLineEdit::taskQTBUG_7395_readOnlyShortcut() void tst_QLineEdit::QTBUG697_paletteCurrentColorGroup() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QLineEdit le; le.setText(" "); QPalette p = le.palette(); @@ -3999,6 +4068,9 @@ protected: void tst_QLineEdit::QTBUG7174_inputMaskCursorBlink() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + UpdateRegionLineEdit edit; edit.setInputMask(QLatin1String("AAAA")); edit.setFocus(); @@ -4169,6 +4241,9 @@ void tst_QLineEdit::selectAndCursorPosition() void tst_QLineEdit::inputMethod() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QLineEdit *testWidget = ensureTestWidget(); centerOnScreen(testWidget); testWidget->show(); @@ -4275,6 +4350,9 @@ void tst_QLineEdit::inputMethodQueryImHints() void tst_QLineEdit::inputMethodUpdate() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QLineEdit *testWidget = ensureTestWidget(); centerOnScreen(testWidget); @@ -4389,6 +4467,9 @@ void tst_QLineEdit::undoRedoAndEchoModes() void tst_QLineEdit::clearButton() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + // Construct a listview with a stringlist model and filter model. QWidget testWidget; QVBoxLayout *l = new QVBoxLayout(&testWidget); @@ -4427,7 +4508,7 @@ void tst_QLineEdit::clearButton() QTRY_COMPARE(filterModel->rowCount(), 1); // matches 'ab' QSignalSpy spyEdited(filterLineEdit, &QLineEdit::textEdited); const QPoint clearButtonCenterPos = QRect(QPoint(0, 0), clearButton->size()).center(); - QTest::mouseClick(clearButton, Qt::LeftButton, 0, clearButtonCenterPos); + QTest::mouseClick(clearButton, Qt::LeftButton, {}, clearButtonCenterPos); QCOMPARE(spyEdited.count(), 1); QTRY_COMPARE(clearButton->cursor().shape(), filterLineEdit->cursor().shape()); QTRY_COMPARE(filterModel->rowCount(), 3); @@ -4443,6 +4524,9 @@ void tst_QLineEdit::clearButtonVisibleAfterSettingText_QTBUG_45518() #ifndef QT_BUILD_INTERNAL QSKIP("This test requires a developer build"); #else + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QLineEdit edit; edit.setMinimumWidth(200); centerOnScreen(&edit); @@ -4469,7 +4553,7 @@ void tst_QLineEdit::clearButtonVisibleAfterSettingText_QTBUG_45518() QTRY_VERIFY(clearButton->opacity() > 0); QTRY_COMPARE(clearButton->cursor().shape(), Qt::ArrowCursor); - QTest::mouseClick(clearButton, Qt::LeftButton, nullptr, clearButton->rect().center()); + QTest::mouseClick(clearButton, Qt::LeftButton, {}, clearButton->rect().center()); QTRY_COMPARE(edit.text(), QString()); QTRY_COMPARE(clearButton->opacity(), qreal(0)); @@ -4644,6 +4728,8 @@ void tst_QLineEdit::QTBUG1266_setInputMaskEmittingTextEdited() QCOMPARE(spy.count(), 0); } +#if QT_CONFIG(shortcut) + void tst_QLineEdit::shortcutOverrideOnReadonlyLineEdit_data() { QTest::addColumn<QKeySequence>("keySequence"); @@ -4671,6 +4757,9 @@ void tst_QLineEdit::shortcutOverrideOnReadonlyLineEdit_data() void tst_QLineEdit::shortcutOverrideOnReadonlyLineEdit() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(QKeySequence, keySequence); QFETCH(bool, shouldBeHandledByQLineEdit); @@ -4700,6 +4789,8 @@ void tst_QLineEdit::shortcutOverrideOnReadonlyLineEdit() QCOMPARE(spy.count(), activationCount); } +#endif // QT_CONFIG(shortcut) + void tst_QLineEdit::QTBUG59957_clearButtonLeftmostAction() { #ifndef QT_BUILD_INTERNAL @@ -4844,6 +4935,9 @@ void tst_QLineEdit::testQuickSelectionWithMouse() void tst_QLineEdit::inputRejected() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QLineEdit *testWidget = ensureTestWidget(); QSignalSpy spyInputRejected(testWidget, SIGNAL(inputRejected())); diff --git a/tests/auto/widgets/widgets/qmainwindow/CMakeLists.txt b/tests/auto/widgets/widgets/qmainwindow/CMakeLists.txt index f1756bd342..55bcf941d0 100644 --- a/tests/auto/widgets/widgets/qmainwindow/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qmainwindow/CMakeLists.txt @@ -1 +1,14 @@ -add_qt_test("tst_qmainwindow" RUN_SERIAL SOURCES tst_qmainwindow.cpp LIBRARIES Qt::WidgetsPrivate) +# Generated from qmainwindow.pro. + +##################################################################### +## tst_qmainwindow Test: +##################################################################### + +add_qt_test(tst_qmainwindow + SOURCES + tst_qmainwindow.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets + Qt::WidgetsPrivate +) diff --git a/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp b/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp index ea96322654..01d625d091 100644 --- a/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp +++ b/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp @@ -67,13 +67,13 @@ public: } void timerEvent(QTimerEvent*) { - qApp->postEvent(m_tb, new QMouseEvent(QEvent::MouseButtonPress, QPoint(6, 7), Qt::LeftButton, 0, 0)); - qApp->postEvent(m_tb, new QMouseEvent(QEvent::MouseMove, QPoint(7, 8), Qt::LeftButton, Qt::LeftButton, 0)); - qApp->postEvent(m_tb, new QMouseEvent(QEvent::MouseMove, QPoint(27, 23), Qt::LeftButton, Qt::LeftButton, 0)); - qApp->postEvent(m_tb, new QMouseEvent(QEvent::MouseMove, QPoint(30, 27), Qt::LeftButton, Qt::LeftButton, 0)); - qApp->postEvent(m_tb, new QMouseEvent(QEvent::MouseMove, QPoint(162, 109), Qt::LeftButton, Qt::LeftButton, 0)); - qApp->postEvent(m_tb, new QMouseEvent(QEvent::MouseMove, QPoint(10, 4), Qt::LeftButton, Qt::LeftButton, 0)); - qApp->postEvent(m_tb, new QMouseEvent(QEvent::MouseButtonRelease, QPoint(9, 4), Qt::LeftButton, 0, 0)); + QCoreApplication::postEvent(m_tb, new QMouseEvent(QEvent::MouseButtonPress, QPoint(6, 7), Qt::LeftButton, {}, {})); + QCoreApplication::postEvent(m_tb, new QMouseEvent(QEvent::MouseMove, QPoint(7, 8), Qt::LeftButton, Qt::LeftButton, {})); + QCoreApplication::postEvent(m_tb, new QMouseEvent(QEvent::MouseMove, QPoint(27, 23), Qt::LeftButton, Qt::LeftButton, {})); + QCoreApplication::postEvent(m_tb, new QMouseEvent(QEvent::MouseMove, QPoint(30, 27), Qt::LeftButton, Qt::LeftButton, {})); + QCoreApplication::postEvent(m_tb, new QMouseEvent(QEvent::MouseMove, QPoint(162, 109), Qt::LeftButton, Qt::LeftButton, {})); + QCoreApplication::postEvent(m_tb, new QMouseEvent(QEvent::MouseMove, QPoint(10, 4), Qt::LeftButton, Qt::LeftButton, {})); + QCoreApplication::postEvent(m_tb, new QMouseEvent(QEvent::MouseButtonRelease, QPoint(9, 4), Qt::LeftButton, {}, {})); } }; @@ -91,8 +91,8 @@ public: void timerEvent(QTimerEvent*) { - qApp->postEvent(m_w, new QMouseEvent(QEvent::MouseButtonPress, QPoint(230, 370), Qt::LeftButton, 0, 0)); - qApp->postEvent(m_w, new QMouseEvent(QEvent::MouseButtonRelease, QPoint(230, 370), Qt::LeftButton, 0, 0)); + QCoreApplication::postEvent(m_w, new QMouseEvent(QEvent::MouseButtonPress, QPoint(230, 370), Qt::LeftButton, {}, {})); + QCoreApplication::postEvent(m_w, new QMouseEvent(QEvent::MouseButtonRelease, QPoint(230, 370), Qt::LeftButton, {}, {})); } }; @@ -1741,6 +1741,9 @@ class MainWindow : public QMainWindow { #ifndef QT_NO_CURSOR void tst_QMainWindow::setCursor() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + MainWindow mw; QCursor cur = Qt::WaitCursor; mw.setCursor(cur); @@ -1839,6 +1842,9 @@ void tst_QMainWindow::fixedSizeCentralWidget() void tst_QMainWindow::dockWidgetSize() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow mainWindow; mainWindow.menuBar()->addMenu("menu"); @@ -2055,6 +2061,9 @@ void tst_QMainWindow::resizeDocks() #if QT_CONFIG(dockwidget) && QT_CONFIG(tabbar) void tst_QMainWindow::QTBUG52175_tabifiedDockWidgetActivated() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow w; QDockWidget *dwFirst = new QDockWidget(&w); diff --git a/tests/auto/widgets/widgets/qmdiarea/BLACKLIST b/tests/auto/widgets/widgets/qmdiarea/BLACKLIST index 1dd876ea97..6010772be7 100644 --- a/tests/auto/widgets/widgets/qmdiarea/BLACKLIST +++ b/tests/auto/widgets/widgets/qmdiarea/BLACKLIST @@ -2,15 +2,12 @@ ubuntu-16.04 rhel-7.6 opensuse-leap -osx-10.11 -osx-10.13 +macos ubuntu-18.04 -osx-10.14 +macos rhel-7.4 -osx-10.12 +macos opensuse-42.3 [resizeTimer] -osx-10.12 -osx-10.14 -osx-10.13 +macos diff --git a/tests/auto/widgets/widgets/qmdiarea/CMakeLists.txt b/tests/auto/widgets/widgets/qmdiarea/CMakeLists.txt index 0f32c0ebce..961bd09492 100644 --- a/tests/auto/widgets/widgets/qmdiarea/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qmdiarea/CMakeLists.txt @@ -1,11 +1,32 @@ -add_qt_test("tst_qmdiarea" RUN_SERIAL SOURCES tst_qmdiarea.cpp +# Generated from qmdiarea.pro. + +##################################################################### +## tst_qmdiarea Test: +##################################################################### + +add_qt_test(tst_qmdiarea + SOURCES + tst_qmdiarea.cpp DEFINES - QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII - LIBRARIES + QT_NO_CAST_TO_ASCII + INCLUDE_DIRECTORIES + . + PUBLIC_LIBRARIES + Qt::Gui Qt::GuiPrivate Qt::Widgets ) -extend_target("tst_qmdiarea" CONDITION TARGET Qt::OpenGL LIBRARIES Qt::OpenGL) -extend_target("tst_qmdiarea" CONDITION APPLE_OSX LIBRARIES ${FWSecurity}) +## Scopes: +##################################################################### + +extend_target(tst_qmdiarea CONDITION TARGET Qt::OpenGL + PUBLIC_LIBRARIES + Qt::OpenGL +) + +extend_target(tst_qmdiarea CONDITION APPLE + PUBLIC_LIBRARIES + ${FWSecurity} +) diff --git a/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp b/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp index 6d38dc262f..352a6314f3 100644 --- a/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp +++ b/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp @@ -331,7 +331,7 @@ void tst_QMdiArea::subWindowActivated() int i; for ( i = 0; i < count; ++i ) { - QWidget *widget = new QWidget(workspace, 0); + QWidget *widget = new QWidget(workspace, {}); widget->setAttribute(Qt::WA_DeleteOnClose); widget->setFocus(); workspace->addSubWindow(widget)->show(); @@ -448,6 +448,9 @@ bool macHasAccessToWindowsServer() void tst_QMdiArea::subWindowActivated2() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMdiArea mdiArea; QSignalSpy spy(&mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow*))); for (int i = 0; i < 5; ++i) @@ -966,6 +969,9 @@ void tst_QMdiArea::setActiveSubWindow() void tst_QMdiArea::activeSubWindow() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow mainWindow; QMdiArea *mdiArea = new QMdiArea; @@ -1398,6 +1404,9 @@ void tst_QMdiArea::subWindowList_data() } void tst_QMdiArea::subWindowList() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(QMdiArea::WindowOrder, windowOrder); QFETCH(int, windowCount); QFETCH(int, activeSubWindow); @@ -1569,6 +1578,9 @@ void tst_QMdiArea::setViewport() void tst_QMdiArea::tileSubWindows() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMdiArea workspace; workspace.resize(600,480); workspace.show(); @@ -2073,6 +2085,9 @@ private: void tst_QMdiArea::resizeTimer() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMdiArea mdiArea; QMdiSubWindow *subWindow = mdiArea.addSubWindow(new QWidget); mdiArea.show(); @@ -2679,30 +2694,6 @@ void tst_QMdiArea::nativeSubWindows() foreach (QMdiSubWindow *subWindow, mdiArea.subWindowList()) QVERIFY(subWindow->internalWinId()); } - -#ifndef QT_NO_OPENGL - { - if (!QGLFormat::hasOpenGL()) - QSKIP("QGL not supported on this platform"); - - QMdiArea mdiArea; - QGLWidget *glViewport = new QGLWidget; - mdiArea.setViewport(glViewport); - mdiArea.addSubWindow(new QWidget); - mdiArea.addSubWindow(new QWidget); - mdiArea.show(); - QVERIFY(QTest::qWaitForWindowExposed(&mdiArea)); - - const QGLContext *context = glViewport->context(); - if (!context || !context->isValid()) - QSKIP("QGL is broken, cannot continue test"); - - // The viewport and all the sub-windows must be native. - QVERIFY(mdiArea.viewport()->internalWinId()); - foreach (QMdiSubWindow *subWindow, mdiArea.subWindowList()) - QVERIFY(subWindow->internalWinId()); - } -#endif } void tst_QMdiArea::task_209615() diff --git a/tests/auto/widgets/widgets/qmdisubwindow/CMakeLists.txt b/tests/auto/widgets/widgets/qmdisubwindow/CMakeLists.txt index c095ccebd0..791d411970 100644 --- a/tests/auto/widgets/widgets/qmdisubwindow/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qmdisubwindow/CMakeLists.txt @@ -1,7 +1,19 @@ -add_qt_test("tst_qmdisubwindow" RUN_SERIAL SOURCES tst_qmdisubwindow.cpp +# Generated from qmdisubwindow.pro. + +##################################################################### +## tst_qmdisubwindow Test: +##################################################################### + +add_qt_test(tst_qmdisubwindow + SOURCES + tst_qmdisubwindow.cpp DEFINES - QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII - LIBRARIES + QT_NO_CAST_TO_ASCII + INCLUDE_DIRECTORIES + . + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets Qt::WidgetsPrivate ) diff --git a/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp b/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp index 3ee9c72209..2c5cb88ed6 100644 --- a/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp +++ b/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp @@ -211,6 +211,9 @@ private slots: void tst_QMdiSubWindow::initTestCase() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: Almost all of these fail. Figure out why."); + qRegisterMetaType<Qt::WindowStates>("Qt::WindowStates"); // Avoid unnecessary waits for empty top level widget lists when // testing menus. diff --git a/tests/auto/widgets/widgets/qmenu/BLACKLIST b/tests/auto/widgets/widgets/qmenu/BLACKLIST index ad6d2f340c..5677172f8e 100644 --- a/tests/auto/widgets/widgets/qmenu/BLACKLIST +++ b/tests/auto/widgets/widgets/qmenu/BLACKLIST @@ -1,13 +1,13 @@ [task258920_mouseBorder] -osx-10.14 -osx-10.13 +macos [layoutDirection] -osx-10.12 -osx-10.13 +macos # Fails when enabling synchronous expose events QTBUG-62092 [pushButtonPopulateOnAboutToShow] -osx-10.13 +macos [tearOff] -osx-10.14 +macos [activeSubMenuPosition] winrt +[submenuTearOffDontClose] +macos # Can't move cursor (QTBUG-76312) diff --git a/tests/auto/widgets/widgets/qmenu/CMakeLists.txt b/tests/auto/widgets/widgets/qmenu/CMakeLists.txt index 6e9da6d474..a20fe70492 100644 --- a/tests/auto/widgets/widgets/qmenu/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qmenu/CMakeLists.txt @@ -1,13 +1,30 @@ -add_qt_test("tst_qmenu" RUN_SERIAL SOURCES tst_qmenu.cpp - LIBRARIES +# Generated from qmenu.pro. + +##################################################################### +## tst_qmenu Test: +##################################################################### + +add_qt_test(tst_qmenu + SOURCES + tst_qmenu.cpp + PUBLIC_LIBRARIES + Qt::Gui Qt::GuiPrivate - Qt::Widgets Qt::TestPrivate + Qt::Widgets ) -extend_target("tst_qmenu" CONDITION APPLE_OSX - SOURCES tst_qmenu_mac.mm - LIBRARIES -lobjc +## Scopes: +##################################################################### + +extend_target(tst_qmenu CONDITION APPLE_OSX + SOURCES + tst_qmenu_mac.mm + PUBLIC_LIBRARIES + objc ) -extend_target("tst_qmenu" CONDITION NOT APPLEL_OSX DEFINES QTEST_QPA_MOUSE_HANDLING) +extend_target(tst_qmenu CONDITION NOT APPLE_OSX + DEFINES + QTEST_QPA_MOUSE_HANDLING +) diff --git a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp index 9c40c0bd57..8ad4324c9e 100644 --- a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp +++ b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp @@ -40,6 +40,7 @@ #include <QWidgetAction> #include <QDesktopWidget> #include <QScreen> +#include <QSpinBox> #include <qdialog.h> #include <qmenu.h> @@ -114,6 +115,7 @@ private slots: void QTBUG30595_rtl_submenu(); void QTBUG20403_nested_popup_on_shortcut_trigger(); void QTBUG47515_widgetActionEnterLeave(); + void QTBUG8122_widgetActionCrashOnClose(); void QTBUG_10735_crashWithDialog(); #ifdef Q_OS_MAC @@ -319,12 +321,12 @@ void tst_QMenu::mouseActivation() menu.addAction("Menu Action"); menu.move(topLevel.geometry().topRight() + QPoint(50, 0)); menu.show(); - QTest::mouseClick(&menu, Qt::LeftButton, 0, menu.rect().center(), 300); + QTest::mouseClick(&menu, Qt::LeftButton, {}, menu.rect().center(), 300); QVERIFY(!menu.isVisible()); //context menus can always be accessed with right click except on windows menu.show(); - QTest::mouseClick(&menu, Qt::RightButton, 0, menu.rect().center(), 300); + QTest::mouseClick(&menu, Qt::RightButton, {}, menu.rect().center(), 300); QVERIFY(!menu.isVisible()); #ifdef Q_OS_WIN @@ -481,7 +483,7 @@ void tst_QMenu::overrideMenuAction() // On Mac and Windows CE, we need to create native key events to test menu // action activation, so skip this part of the test. -#if !defined(Q_OS_DARWIN) +#if QT_CONFIG(shortcut) && !defined(Q_OS_DARWIN) QAction *aQuit = new QAction("Quit", &w); aQuit->setShortcut(QKeySequence("Ctrl+X")); m->addAction(aQuit); @@ -499,7 +501,7 @@ void tst_QMenu::overrideMenuAction() //test if the menu still pops out QTest::keyClick(&w, Qt::Key_F, Qt::AltModifier); QTRY_VERIFY(m->isVisible()); -#endif +#endif // QT_CONFIG(shortcut) && !Q_OS_DARWIN delete aFileMenu; @@ -643,7 +645,7 @@ void tst_QMenu::tearOff() MenuMetrics mm(menu.data()); const int tearOffOffset = mm.fw + mm.vmargin + mm.tearOffHeight / 2; - QTest::mouseClick(menu.data(), Qt::LeftButton, 0, QPoint(10, tearOffOffset), 10); + QTest::mouseClick(menu.data(), Qt::LeftButton, {}, QPoint(10, tearOffOffset), 10); QTRY_VERIFY(menu->isTearOffMenuVisible()); QPointer<QMenu> torn = getTornOffMenu(); QVERIFY(torn); @@ -723,7 +725,7 @@ void tst_QMenu::submenuTearOffDontClose() const QPoint submenuPos(submenuRect.topLeft() + QPoint(3, 3)); // Move then click to avoid the submenu moves from causing it to close QTest::mouseMove(menu, submenuPos, 100); - QTest::mouseClick(menu, Qt::LeftButton, 0, submenuPos, 100); + QTest::mouseClick(menu, Qt::LeftButton, {}, submenuPos, 100); QVERIFY(QTest::qWaitFor([&]() { return submenu->window()->windowHandle(); })); QVERIFY(QTest::qWaitForWindowActive(submenu)); // Make sure we enter the submenu frame directly on the tear-off area @@ -888,7 +890,7 @@ void tst_QMenu::task176201_clear() QAction *action = menu.addAction("test"); menu.connect(action, SIGNAL(triggered()), SLOT(clear())); menu.popup(QPoint()); - QTest::mouseClick(&menu, Qt::LeftButton, 0, menu.rect().center()); + QTest::mouseClick(&menu, Qt::LeftButton, {}, menu.rect().center()); } void tst_QMenu::task250673_activeMultiColumnSubMenuPosition() @@ -1066,6 +1068,10 @@ static inline QByteArray msgGeometryIntersects(const QRect &r1, const QRect &r2) void tst_QMenu::pushButtonPopulateOnAboutToShow() { +#ifdef Q_OS_MACOS + QSKIP("Popup menus may partially overlap the button on macOS, and that's okey"); +#endif + QPushButton b("Test PushButton"); b.setWindowFlags(Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); @@ -1212,13 +1218,13 @@ void tst_QMenu::click_while_dismissing_submenu() QVERIFY(sub.isVisible()); QVERIFY(QTest::qWaitForWindowExposed(&sub)); //press over the submenu entry - QTest::mousePress(menuWindow, Qt::LeftButton, 0, menu.rect().center() + QPoint(0,2), 300); + QTest::mousePress(menuWindow, Qt::LeftButton, {}, menu.rect().center() + QPoint(0, 2), 300); //move over the main action QTest::mouseMove(menuWindow, menu.rect().center() - QPoint(0,2)); QVERIFY(menuHiddenSpy.wait()); //the submenu must have been hidden for the bug to be triggered QVERIFY(!sub.isVisible()); - QTest::mouseRelease(menuWindow, Qt::LeftButton, 0, menu.rect().center() - QPoint(0,2), 300); + QTest::mouseRelease(menuWindow, Qt::LeftButton, {}, menu.rect().center() - QPoint(0, 2), 300); QCOMPARE(spy.count(), 1); } #endif @@ -1348,6 +1354,60 @@ void tst_QMenu::QTBUG47515_widgetActionEnterLeave() } } +void tst_QMenu::QTBUG8122_widgetActionCrashOnClose() +{ + if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation)) + QSKIP("Window activation is not supported"); + if (QGuiApplication::platformName() == QLatin1String("cocoa")) + QSKIP("See QTBUG-63031"); +#ifdef Q_OS_WINRT + QSKIP("WinRT does not support QTest::mouseMove"); +#endif + + const QRect availableGeometry = QGuiApplication::primaryScreen()->availableGeometry(); + QRect geometry(QPoint(), availableGeometry.size() / 3); + geometry.moveCenter(availableGeometry.center()); + QPoint pointOutsideMenu = geometry.bottomRight() - QPoint(5, 5); + + QMainWindow topLevel; + topLevel.setGeometry(geometry); + + auto menuBar = topLevel.menuBar(); + auto menu = menuBar->addMenu("Menu"); + auto wAct = new QWidgetAction(menu); + auto spinBox1 = new QSpinBox(menu); + wAct->setDefaultWidget(spinBox1); + menu->addAction(wAct); + auto subMenu = menu->addMenu("Submenu"); + auto nextMenuAct = menu->addMenu(subMenu); + auto wAct2 = new QWidgetAction(menu); + auto spinBox2 = new QSpinBox(menu); + wAct2->setDefaultWidget(spinBox2); + subMenu->addAction(wAct2); + QObject::connect(spinBox2, &QSpinBox::editingFinished, menu, &QMenu::hide); + + topLevel.show(); + topLevel.setWindowTitle(QTest::currentTestFunction()); + QVERIFY(QTest::qWaitForWindowActive(&topLevel)); + QWindow *topLevelWindow = topLevel.windowHandle(); + QVERIFY(topLevelWindow); + + const QPoint menuActionPos = menuBar->mapTo(&topLevel, menuBar->actionGeometry(menu->menuAction()).center()); + QTest::mouseClick(topLevelWindow, Qt::LeftButton, Qt::KeyboardModifiers(), menuActionPos); + QVERIFY(QTest::qWaitForWindowExposed(menu)); + + QPoint w1Center = topLevel.mapFromGlobal(spinBox1->mapToGlobal(spinBox1->rect().center())); + QTest::mouseClick(topLevelWindow, Qt::LeftButton, Qt::KeyboardModifiers(), w1Center); + menu->setActiveAction(nextMenuAct); + QVERIFY(QTest::qWaitForWindowExposed(subMenu)); + + QPoint w2Center = topLevel.mapFromGlobal(spinBox2->mapToGlobal(spinBox2->rect().center())); + QTest::mouseClick(topLevelWindow, Qt::LeftButton, Qt::KeyboardModifiers(), w2Center); + QTest::mouseMove(topLevelWindow, topLevel.mapFromGlobal(pointOutsideMenu)); + QTRY_VERIFY(menu->isHidden()); +} + + class MyMenu : public QMenu { Q_OBJECT @@ -1476,7 +1536,7 @@ void tst_QMenu::QTBUG_56917_wideSubmenuScreenNumber() menu.popup(screen->geometry().center()); QVERIFY(QTest::qWaitForWindowExposed(&menu)); QVERIFY(menu.isVisible()); - QTest::mouseClick(&menu, Qt::LeftButton, 0, menu.actionGeometry(action).center()); + QTest::mouseClick(&menu, Qt::LeftButton, {}, menu.actionGeometry(action).center()); QTest::qWait(100); QVERIFY(QTest::qWaitForWindowExposed(&submenu)); QVERIFY(submenu.isVisible()); @@ -1688,7 +1748,7 @@ void tst_QMenu::tearOffMenuNotDisplayed() MenuMetrics mm(menu.data()); const int tearOffOffset = mm.fw + mm.vmargin + mm.tearOffHeight / 2; - QTest::mouseClick(menu.data(), Qt::LeftButton, 0, QPoint(10, tearOffOffset), 10); + QTest::mouseClick(menu.data(), Qt::LeftButton, {}, QPoint(10, tearOffOffset), 10); QTRY_VERIFY(menu->isTearOffMenuVisible()); QPointer<QMenu> torn = getTornOffMenu(); QVERIFY(torn); @@ -1706,10 +1766,13 @@ void tst_QMenu::QTBUG_61039_menu_shortcuts() QSKIP("Window activation is not supported"); QAction *actionKamen = new QAction("Action Kamen"); +#if QT_CONFIG(shortcut) actionKamen->setShortcut(QKeySequence(QLatin1String("K"))); - +#endif QAction *actionJoe = new QAction("Action Joe"); +#if QT_CONFIG(shortcut) actionJoe->setShortcut(QKeySequence(QLatin1String("Ctrl+J"))); +#endif QMenu menu; menu.addAction(actionKamen); diff --git a/tests/auto/widgets/widgets/qmenubar/CMakeLists.txt b/tests/auto/widgets/widgets/qmenubar/CMakeLists.txt index 3fb1c5ccb1..43875cd113 100644 --- a/tests/auto/widgets/widgets/qmenubar/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qmenubar/CMakeLists.txt @@ -1,6 +1,24 @@ -add_qt_test("tst_qmenubar" RUN_SERIAL SOURCES tst_qmenubar.cpp LIBRARIES Qt::Widgets Qt::TestPrivate) +# Generated from qmenubar.pro. -extend_target("tst_qmenubar" CONDITION APPLE_OSX - SOURCES tst_qmenubar_mac.mm - LIBRARIES ${FWAppKit} +##################################################################### +## tst_qmenubar Test: +##################################################################### + +add_qt_test(tst_qmenubar + SOURCES + tst_qmenubar.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::TestPrivate + Qt::Widgets +) + +## Scopes: +##################################################################### + +extend_target(tst_qmenubar CONDITION APPLE_OSX + SOURCES + tst_qmenubar_mac.mm + PUBLIC_LIBRARIES + ${FWAppKit} ) diff --git a/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp b/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp index 417d6e3124..8cbe821a68 100644 --- a/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp +++ b/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp @@ -232,19 +232,25 @@ TestMenu tst_QMenuBar::initSimpleMenuBar(QMenuBar *mb, bool forceNonNative) { connect(mb, SIGNAL(triggered(QAction*)), this, SLOT(onSimpleActivated(QAction*))); QMenu *menu = mb->addMenu(QStringLiteral("&accel")); QAction *action = menu->addAction(QStringLiteral("menu1") ); +#if QT_CONFIG(shortcut) action->setShortcut(QKeySequence(Qt::ALT + Qt::Key_A)); action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_A)); +#endif connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(onSimpleActivated(QAction*))); result.menus << menu; result.actions << action; menu = mb->addMenu(QStringLiteral("accel1")); action = menu->addAction(QStringLiteral("&Open...") ); +#if QT_CONFIG(shortcut) action->setShortcut(Qt::Key_O); +#endif result.actions << action; action = menu->addAction(QStringLiteral("action")); +#if QT_CONFIG(shortcut) action->setShortcut(QKeySequence(Qt::ALT + Qt::Key_Z)); +#endif result.actions << action; result.menus << menu; @@ -283,7 +289,9 @@ QAction *tst_QMenuBar::createCharacterAction(QMenu *menu, char lowerAscii) QAction *action = menu->addAction(text); action->setObjectName(text); action->setData(QVariant(int(lowerAscii))); +#if QT_CONFIG(shortcut) action->setShortcut(Qt::CTRL + (lowerAscii - 'a' + Qt::Key_A)); +#endif connect(action, SIGNAL(triggered()), this, SLOT(onComplexActionTriggered())); return action; } @@ -318,7 +326,9 @@ TestMenu tst_QMenuBar::initComplexMenuBar(QMenuBar *mb) QAction *action = mb->addAction(QStringLiteral("M&enu 3")); action->setData(QVariant(3)); +#if QT_CONFIG(shortcut) action->setShortcut(Qt::ALT + Qt::Key_J); +#endif connect(action, SIGNAL(triggered()), this, SLOT(onComplexActionTriggered())); result.actions << action; @@ -338,6 +348,9 @@ inline TestMenu tst_QMenuBar::initWindowWithComplexMenuBar(QMainWindow &w) #if !defined(Q_OS_DARWIN) void tst_QMenuBar::accel() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + // create a popup menu with menu items set the accelerators later... QMainWindow w; const TestMenu menu = initWindowWithSimpleMenuBar(w); @@ -356,6 +369,9 @@ void tst_QMenuBar::accel() #if !defined(Q_OS_DARWIN) void tst_QMenuBar::activatedCount() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + // create a popup menu with menu items set the accelerators later... QMainWindow w; QFETCH( bool, forceNonNative ); @@ -555,6 +571,9 @@ void tst_QMenuBar::insertItem_QString_QObject() #if !defined(Q_OS_DARWIN) void tst_QMenuBar::check_accelKeys() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow w; initWindowWithComplexMenuBar(w); w.show(); @@ -631,6 +650,9 @@ void tst_QMenuBar::check_cursorKeys1() if (qgetenv("XDG_CURRENT_DESKTOP") == "Unity") QSKIP("This test is flaky on Ubuntu/Unity due to regression introduced by QTBUG-39362"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow w; initWindowWithComplexMenuBar(w); w.show(); @@ -668,6 +690,9 @@ void tst_QMenuBar::check_cursorKeys2() if (qgetenv("XDG_CURRENT_DESKTOP") == "Unity") QSKIP("This test is flaky on Ubuntu/Unity due to regression introduced by QTBUG-39362"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow w; initWindowWithComplexMenuBar(w); w.show(); @@ -704,6 +729,9 @@ void tst_QMenuBar::check_cursorKeys3() if (qgetenv("XDG_CURRENT_DESKTOP") == "Unity") QSKIP("This test is flaky on Ubuntu/Unity due to regression introduced by QTBUG-39362"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow w; initWindowWithComplexMenuBar(w); w.show(); @@ -733,6 +761,9 @@ void tst_QMenuBar::taskQTBUG56860_focus() #if defined(Q_OS_DARWIN) QSKIP("Native key events are needed to test menu action activation on macOS."); #endif + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow w; QMenuBar *mb = w.menuBar(); mb->setNativeMenuBar(false); @@ -861,6 +892,9 @@ void tst_QMenuBar::check_endKey() #if !defined(Q_OS_DARWIN) void tst_QMenuBar::check_escKey() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow w; const TestMenu menu = initWindowWithComplexMenuBar(w); w.show(); @@ -1051,6 +1085,9 @@ void tst_QMenuBar::allowActiveAndDisabled() void tst_QMenuBar::check_altPress() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + if ( !qApp->style()->styleHint(QStyle::SH_MenuBar_AltKeyNavigation) ) { QSKIP(QString( "this is not supposed to work in the %1 style. Skipping." ). arg(qApp->style()->objectName()).toLatin1()); @@ -1071,6 +1108,9 @@ void tst_QMenuBar::check_altPress() // should close it and QMenuBar::activeAction() should be 0. void tst_QMenuBar::check_altClosePress() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + const QStyle *style = QApplication::style(); if (!style->styleHint(QStyle::SH_MenuBar_AltKeyNavigation) ) { QSKIP(("This test is not supposed to work in the " + style->objectName().toLatin1() @@ -1101,6 +1141,9 @@ void tst_QMenuBar::check_altClosePress() #if !defined(Q_OS_DARWIN) void tst_QMenuBar::check_shortcutPress() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow w; const TestMenu menu = initWindowWithComplexMenuBar(w); w.show(); @@ -1144,6 +1187,9 @@ private: #if !defined(Q_OS_DARWIN) void tst_QMenuBar::check_menuPosition() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow w; Menu menu; @@ -1221,7 +1267,7 @@ void tst_QMenuBar::check_menuPosition() const QPoint bottomRight = mb->actionGeometry(menu.menuAction()).bottomRight() - QPoint(1, 1); const QPoint localPos = widgetToWindowPos(mb, bottomRight); const QPoint globalPos = w.mapToGlobal(localPos); - QTest::mouseClick(w.windowHandle(), Qt::LeftButton, 0, localPos); + QTest::mouseClick(w.windowHandle(), Qt::LeftButton, {}, localPos); QTRY_VERIFY(menu.isActiveWindow()); QCOMPARE(menu.geometry().right() - 1, globalPos.x()); menu.close(); @@ -1266,6 +1312,9 @@ void tst_QMenuBar::task256322_highlight() if (!QGuiApplication::platformName().compare(QLatin1String("minimal"), Qt::CaseInsensitive)) QSKIP("Highlighting does not work correctly for minimal platform"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow win; win.menuBar()->setNativeMenuBar(false); //we can't check the geometry of native menubars QMenu menu; @@ -1283,9 +1332,9 @@ void tst_QMenuBar::task256322_highlight() const QPoint filePos = menuBarActionWindowPos(win.menuBar(), file); QWindow *window = win.windowHandle(); - QTest::mousePress(window, Qt::LeftButton, 0, filePos); + QTest::mousePress(window, Qt::LeftButton, {}, filePos); QTest::mouseMove(window, filePos); - QTest::mouseRelease(window, Qt::LeftButton, 0, filePos); + QTest::mouseRelease(window, Qt::LeftButton, {}, filePos); QTRY_VERIFY(menu.isVisible()); QVERIFY(!menu2.isVisible()); QCOMPARE(win.menuBar()->activeAction(), file); @@ -1383,7 +1432,9 @@ void tst_QMenuBar::taskQTBUG4965_escapeEaten() menubar.setNativeMenuBar(false); QMenu menu("menu1"); QAction *first = menubar.addMenu(&menu); +#if QT_CONFIG(shortcut) menu.addAction("quit", &menubar, SLOT(close()), QKeySequence("ESC")); +#endif centerOnScreen(&menubar); menubar.show(); QApplication::setActiveWindow(&menubar); @@ -1406,6 +1457,9 @@ void tst_QMenuBar::taskQTBUG4965_escapeEaten() void tst_QMenuBar::taskQTBUG11823_crashwithInvisibleActions() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMenuBar menubar; menubar.setNativeMenuBar(false); //we can't check the geometry of native menubars @@ -1434,6 +1488,9 @@ void tst_QMenuBar::taskQTBUG11823_crashwithInvisibleActions() void tst_QMenuBar::closeOnSecondClickAndOpenOnThirdClick() // QTBUG-32807, menu should close on 2nd click. { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow mainWindow; mainWindow.resize(300, 200); centerOnScreen(&mainWindow); @@ -1450,11 +1507,11 @@ void tst_QMenuBar::closeOnSecondClickAndOpenOnThirdClick() // QTBUG-32807, menu QWindow *window = mainWindow.windowHandle(); QTest::mouseMove(window, center); - QTest::mouseClick(window, Qt::LeftButton, 0, center); + QTest::mouseClick(window, Qt::LeftButton, {}, center); QTRY_VERIFY(fileMenu->isVisible()); - QTest::mouseClick(window, Qt::LeftButton, 0, fileMenu->mapFromGlobal(globalPos)); + QTest::mouseClick(window, Qt::LeftButton, {}, fileMenu->mapFromGlobal(globalPos)); QTRY_VERIFY(!fileMenu->isVisible()); - QTest::mouseClick(window, Qt::LeftButton, 0, center); + QTest::mouseClick(window, Qt::LeftButton, {}, center); QTRY_VERIFY(fileMenu->isVisible()); } @@ -1543,12 +1600,12 @@ void tst_QMenuBar::taskQTBUG53205_crashReparentNested() QApplication::setActiveWindow(&mainWindow); // they can't be windows - QWidget hiddenParent(&mainWindow, 0); + QWidget hiddenParent(&mainWindow, {}); //this one is going to be moved around - QWidget movingParent(&hiddenParent, 0); + QWidget movingParent(&hiddenParent, {}); //set up the container widget - QWidget containerWidget(&movingParent,0); + QWidget containerWidget(&movingParent, {}); //set the new parent, a window QScopedPointer<QWidget> windowedParent; @@ -1559,7 +1616,7 @@ void tst_QMenuBar::taskQTBUG53205_crashReparentNested() QVERIFY(QTest::qWaitForWindowExposed(windowedParent.data())); //set the "container", can't be a window - QWidget containedWidget(&containerWidget, 0); + QWidget containedWidget(&containerWidget, {}); taskQTBUG53205MenuBar = new QMenuBar(&containedWidget); @@ -1567,13 +1624,13 @@ void tst_QMenuBar::taskQTBUG53205_crashReparentNested() //now, move things around //from : QMainWindow<-hiddenParent<-movingParent<-containerWidget<-containedWidget<-menuBar //to windowedParent<-movingParent<-containerWidget<-containedWidget<-menuBar - movingParent.setParent(windowedParent.data(),0); + movingParent.setParent(windowedParent.data(), {}); // this resets the parenting and the menu bar's window taskQTBUG53205MenuBar->setParent(nullptr); taskQTBUG53205MenuBar->setParent(&containedWidget); //from windowedParent<-movingParent<-containerWidget<-containedWidget<-menuBar //to : QMainWindow<-hiddenParent<-movingParent<-containerWidget<-containedWidget<-menuBar - movingParent.setParent(&hiddenParent,0); + movingParent.setParent(&hiddenParent, {}); windowedParent.reset(); //make the old window invalid // trigger the aciton, reset the menu bar's window, this used to crash here. testMenus.actions[0]->trigger(); @@ -1689,6 +1746,9 @@ void tst_QMenuBar::slotForTaskQTBUG53205() #if !defined(Q_OS_DARWIN) void tst_QMenuBar::taskQTBUG46812_doNotLeaveMenubarHighlighted() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow mainWindow; QWidget *centralWidget = new QWidget; centralWidget->setFocusPolicy(Qt::StrongFocus); @@ -1769,6 +1829,9 @@ void tst_QMenuBar::QTBUG_57404_existingMenuItemException() void tst_QMenuBar::taskQTBUG55966_subMenuRemoved() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow window; QMenuBar *menubar = window.menuBar(); QMenu *parentMenu = menubar->addMenu("Parent menu"); diff --git a/tests/auto/widgets/widgets/qopenglwidget/CMakeLists.txt b/tests/auto/widgets/widgets/qopenglwidget/CMakeLists.txt index a9172dec4f..d9e447d38b 100644 --- a/tests/auto/widgets/widgets/qopenglwidget/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qopenglwidget/CMakeLists.txt @@ -1,6 +1,17 @@ -add_qt_test("tst_qopenglwidget" RUN_SERIAL SOURCES tst_qopenglwidget.cpp - LIBRARIES - Qt::GuiPrivate +# Generated from qopenglwidget.pro. + +##################################################################### +## tst_qopenglwidget Test: +##################################################################### + +add_qt_test(tst_qopenglwidget + SOURCES + tst_qopenglwidget.cpp + PUBLIC_LIBRARIES Qt::CorePrivate + Qt::Gui + Qt::GuiPrivate + Qt::OpenGL + Qt::OpenGLPrivate Qt::Widgets ) diff --git a/tests/auto/widgets/widgets/qopenglwidget/qopenglwidget.pro b/tests/auto/widgets/widgets/qopenglwidget/qopenglwidget.pro index 2d4cff9e10..f78dc510bf 100644 --- a/tests/auto/widgets/widgets/qopenglwidget/qopenglwidget.pro +++ b/tests/auto/widgets/widgets/qopenglwidget/qopenglwidget.pro @@ -1,5 +1,5 @@ CONFIG += testcase TARGET = tst_qopenglwidget -QT += gui-private core-private testlib widgets +QT += opengl opengl-private gui-private core-private testlib widgets SOURCES += tst_qopenglwidget.cpp diff --git a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp index 76f8ebc804..e96e292525 100644 --- a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp +++ b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp @@ -26,7 +26,7 @@ ** ****************************************************************************/ -#include <QtWidgets/QOpenGLWidget> +#include <QtOpenGL/QOpenGLWidget> #include <QtGui/QOpenGLFunctions> #include <QtGui/QPainter> #include <QtGui/QScreen> @@ -388,6 +388,9 @@ public: void tst_QOpenGLWidget::requestUpdate() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + PaintCountWidget w; w.resize(640, 480); w.show(); @@ -580,6 +583,9 @@ void tst_QOpenGLWidget::stackWidgetOpaqueChildIsVisible() QSKIP("QScreen::grabWindow() doesn't work properly on OSX HighDPI screen: QTBUG-46803"); return; #endif + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QStackedWidget stack; diff --git a/tests/auto/widgets/widgets/qplaintextedit/CMakeLists.txt b/tests/auto/widgets/widgets/qplaintextedit/CMakeLists.txt index f3a9a9ab90..4106de04de 100644 --- a/tests/auto/widgets/widgets/qplaintextedit/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qplaintextedit/CMakeLists.txt @@ -1,7 +1,25 @@ -add_qt_test("tst_qplaintextedit" RUN_SERIAL SOURCES tst_qplaintextedit.cpp - LIBRARIES - Qt::WidgetsPrivate +# Generated from qplaintextedit.pro. + +##################################################################### +## tst_qplaintextedit Test: +##################################################################### + +add_qt_test(tst_qplaintextedit + SOURCES + tst_qplaintextedit.cpp + INCLUDE_DIRECTORIES + .. + PUBLIC_LIBRARIES + Qt::Gui Qt::GuiPrivate + Qt::Widgets + Qt::WidgetsPrivate ) -extend_target("tst_qplaintextedit" CONDITION APPLE_OSX LIBRARIES ${FWAppKit}) +## Scopes: +##################################################################### + +extend_target(tst_qplaintextedit CONDITION APPLE_OSX + PUBLIC_LIBRARIES + ${FWAppKit} +) diff --git a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp index 2ce75620cf..a86784f2ec 100644 --- a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp +++ b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp @@ -155,6 +155,7 @@ private slots: #if QT_CONFIG(scrollbar) void updateAfterChangeCenterOnScroll(); #endif + void updateCursorPositionAfterEdit(); private: void createSelection(); @@ -284,6 +285,10 @@ void tst_QPlainTextEdit::clearMustNotChangeClipboard() { if (!PlatformClipboard::isAvailable()) QSKIP("Clipboard not working with cron-started unit tests"); + + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + ed->textCursor().insertText("Hello World"); QString txt("This is different text"); QApplication::clipboard()->setText(txt); @@ -462,6 +467,9 @@ void tst_QPlainTextEdit::undoAvailableAfterPaste() if (!PlatformClipboard::isAvailable()) QSKIP("Clipboard not working with cron-started unit tests"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QSignalSpy spy(ed->document(), SIGNAL(undoAvailable(bool))); const QString txt("Test"); @@ -655,6 +663,9 @@ void tst_QPlainTextEdit::copyAndSelectAllInReadonly() if (!PlatformClipboard::isAvailable()) QSKIP("Clipboard not working with cron-started unit tests"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + ed->setReadOnly(true); ed->setPlainText("Hello World"); @@ -1203,6 +1214,9 @@ void tst_QPlainTextEdit::canPaste() if (!PlatformClipboard::isAvailable()) QSKIP("Clipboard not working with cron-started unit tests"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QApplication::clipboard()->setText(QString()); QVERIFY(!ed->canPaste()); QApplication::clipboard()->setText("Test"); @@ -1789,5 +1803,50 @@ void tst_QPlainTextEdit::updateAfterChangeCenterOnScroll() #endif +void tst_QPlainTextEdit::updateCursorPositionAfterEdit() +{ + QPlainTextEdit plaintextEdit; + plaintextEdit.setPlainText("some text some text\nsome text some text"); + + const auto initialPosition = 1; + + // select some text + auto cursor = plaintextEdit.textCursor(); + cursor.setPosition(initialPosition, QTextCursor::MoveAnchor); + cursor.setPosition(initialPosition + 3, QTextCursor::KeepAnchor); + plaintextEdit.setTextCursor(cursor); + QVERIFY(plaintextEdit.textCursor().hasSelection()); + + QTest::keyClick(&plaintextEdit, Qt::Key_Delete); + QTest::keyClick(&plaintextEdit, Qt::Key_Down); + QTest::keyClick(&plaintextEdit, Qt::Key_Up); + + // Moving the cursor down and up should bring it to the initial position + QCOMPARE(plaintextEdit.textCursor().position(), initialPosition); + + // Test the same with backspace + cursor = plaintextEdit.textCursor(); + cursor.setPosition(initialPosition + 3, QTextCursor::KeepAnchor); + plaintextEdit.setTextCursor(cursor); + QVERIFY(plaintextEdit.textCursor().hasSelection()); + + QTest::keyClick(&plaintextEdit, Qt::Key_Backspace); + QTest::keyClick(&plaintextEdit, Qt::Key_Down); + QTest::keyClick(&plaintextEdit, Qt::Key_Up); + + // Moving the cursor down and up should bring it to the initial position + QCOMPARE(plaintextEdit.textCursor().position(), initialPosition); + + // Test insertion + const QString txt("txt"); + QApplication::clipboard()->setText(txt); + plaintextEdit.paste(); + QTest::keyClick(&plaintextEdit, Qt::Key_Down); + QTest::keyClick(&plaintextEdit, Qt::Key_Up); + + // The curser should move back to the end of the copied text + QCOMPARE(plaintextEdit.textCursor().position(), initialPosition + txt.length()); +} + QTEST_MAIN(tst_QPlainTextEdit) #include "tst_qplaintextedit.moc" diff --git a/tests/auto/widgets/widgets/qprogressbar/CMakeLists.txt b/tests/auto/widgets/widgets/qprogressbar/CMakeLists.txt index 5fb9e79056..f8b3ac38d9 100644 --- a/tests/auto/widgets/widgets/qprogressbar/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qprogressbar/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qprogressbar" RUN_SERIAL SOURCES tst_qprogressbar.cpp LIBRARIES Qt::Widgets) +# Generated from qprogressbar.pro. + +##################################################################### +## tst_qprogressbar Test: +##################################################################### + +add_qt_test(tst_qprogressbar + SOURCES + tst_qprogressbar.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp b/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp index f2f9cfc009..c491bbb4f6 100644 --- a/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp +++ b/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp @@ -239,6 +239,9 @@ void tst_QProgressBar::setValueRepaint() #ifndef Q_OS_MAC void tst_QProgressBar::setMinMaxRepaint() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + ProgressBar pbar; pbar.setMinimum(0); pbar.setMaximum(10); diff --git a/tests/auto/widgets/widgets/qpushbutton/CMakeLists.txt b/tests/auto/widgets/widgets/qpushbutton/CMakeLists.txt index 7b78b96844..8d1300de79 100644 --- a/tests/auto/widgets/widgets/qpushbutton/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qpushbutton/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qpushbutton" RUN_SERIAL SOURCES tst_qpushbutton.cpp LIBRARIES Qt::Widgets) +# Generated from qpushbutton.pro. + +##################################################################### +## tst_qpushbutton Test: +##################################################################### + +add_qt_test(tst_qpushbutton + SOURCES + tst_qpushbutton.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp b/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp index 66f4df4498..d0ed68c0c8 100644 --- a/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp +++ b/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp @@ -53,7 +53,9 @@ private slots: void getSetCheck(); void autoRepeat(); void pressed(); +#if QT_CONFIG(shortcut) void setAccel(); +#endif void isCheckable(); void setDown(); void popupCrash(); @@ -65,7 +67,9 @@ private slots: void defaultAndAutoDefault(); void sizeHint_data(); void sizeHint(); +#if QT_CONFIG(shortcut) void taskQTBUG_20191_shortcutWithKeypadModifer(); +#endif void emitReleasedAfterChange(); protected slots: @@ -125,8 +129,10 @@ void tst_QPushButton::init() testWidget->setDown( false ); testWidget->setText("Test"); testWidget->setEnabled( true ); +#if QT_CONFIG(shortcut) QKeySequence seq; testWidget->setShortcut( seq ); +#endif resetCounters(); } @@ -318,6 +324,8 @@ void tst_QPushButton::toggled() QVERIFY( click_count == 1 ); } +#if QT_CONFIG(shortcut) + /* If we press an accelerator key we ONLY get a pressed signal and NOT a released or clicked signal. @@ -325,6 +333,9 @@ void tst_QPushButton::toggled() void tst_QPushButton::setAccel() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + testWidget->setText("&AccelTest"); QKeySequence seq( Qt::ALT + Qt::Key_A ); testWidget->setShortcut( seq ); @@ -346,6 +357,8 @@ void tst_QPushButton::setAccel() QTRY_VERIFY( !testWidget->isDown() ); } +#endif // QT_CONFIG(shortcut) + void tst_QPushButton::animateClick() { QVERIFY( !testWidget->isDown() ); @@ -568,6 +581,8 @@ void tst_QPushButton::sizeHint() } } +#if QT_CONFIG(shortcut) + void tst_QPushButton::taskQTBUG_20191_shortcutWithKeypadModifer() { // setup a dialog with two buttons @@ -614,6 +629,8 @@ void tst_QPushButton::taskQTBUG_20191_shortcutWithKeypadModifer() QCOMPARE(spy2.count(), 1); } +#endif // QT_CONFIG(shortcut) + void tst_QPushButton::emitReleasedAfterChange() { QPushButton *button1 = new QPushButton("A"); diff --git a/tests/auto/widgets/widgets/qradiobutton/CMakeLists.txt b/tests/auto/widgets/widgets/qradiobutton/CMakeLists.txt index 08322899a2..10db8a2db8 100644 --- a/tests/auto/widgets/widgets/qradiobutton/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qradiobutton/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qradiobutton" RUN_SERIAL SOURCES tst_qradiobutton.cpp LIBRARIES Qt::Widgets) +# Generated from qradiobutton.pro. + +##################################################################### +## tst_qradiobutton Test: +##################################################################### + +add_qt_test(tst_qradiobutton + SOURCES + tst_qradiobutton.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qradiobutton/tst_qradiobutton.cpp b/tests/auto/widgets/widgets/qradiobutton/tst_qradiobutton.cpp index a4edea23bc..5c7d3bf1e9 100644 --- a/tests/auto/widgets/widgets/qradiobutton/tst_qradiobutton.cpp +++ b/tests/auto/widgets/widgets/qradiobutton/tst_qradiobutton.cpp @@ -44,14 +44,21 @@ public: virtual ~tst_QRadioButton(){}; private slots: +#if QT_CONFIG(shortcut) void task190739_focus(); +#endif void minimumSizeHint(); private: }; +#if QT_CONFIG(shortcut) + void tst_QRadioButton::task190739_focus() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget widget; QPushButton button1(&widget); button1.setText("button1"); @@ -81,6 +88,7 @@ void tst_QRadioButton::task190739_focus() QVERIFY(!radio1.hasFocus()); } +#endif // QT_CONFIG(shortcut) void tst_QRadioButton::minimumSizeHint() { diff --git a/tests/auto/widgets/widgets/qscrollarea/CMakeLists.txt b/tests/auto/widgets/widgets/qscrollarea/CMakeLists.txt index b21a9755d4..cdfb32e0a2 100644 --- a/tests/auto/widgets/widgets/qscrollarea/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qscrollarea/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qscrollarea" RUN_SERIAL SOURCES tst_qscrollarea.cpp LIBRARIES Qt::Widgets) +# Generated from qscrollarea.pro. + +##################################################################### +## tst_qscrollarea Test: +##################################################################### + +add_qt_test(tst_qscrollarea + SOURCES + tst_qscrollarea.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qscrollbar/CMakeLists.txt b/tests/auto/widgets/widgets/qscrollbar/CMakeLists.txt index 88163f38c3..83d091755f 100644 --- a/tests/auto/widgets/widgets/qscrollbar/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qscrollbar/CMakeLists.txt @@ -1 +1,14 @@ -add_qt_test("tst_qscrollbar" RUN_SERIAL SOURCES tst_qscrollbar.cpp LIBRARIES Qt::Widgets Qt::TestPrivate) +# Generated from qscrollbar.pro. + +##################################################################### +## tst_qscrollbar Test: +##################################################################### + +add_qt_test(tst_qscrollbar + SOURCES + tst_qscrollbar.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::TestPrivate + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qscrollbar/tst_qscrollbar.cpp b/tests/auto/widgets/widgets/qscrollbar/tst_qscrollbar.cpp index 339ff293f4..2452bc34c5 100644 --- a/tests/auto/widgets/widgets/qscrollbar/tst_qscrollbar.cpp +++ b/tests/auto/widgets/widgets/qscrollbar/tst_qscrollbar.cpp @@ -120,11 +120,11 @@ void tst_QScrollBar::task_209492() const QPoint pressPoint(verticalScrollBar->width() / 2, verticalScrollBar->height() - 10); const QPoint globalPressPoint = verticalScrollBar->mapToGlobal(globalPressPoint); QMouseEvent mousePressEvent(QEvent::MouseButtonPress, pressPoint, globalPressPoint, - Qt::LeftButton, Qt::LeftButton, 0); + Qt::LeftButton, Qt::LeftButton, {}); QApplication::sendEvent(verticalScrollBar, &mousePressEvent); QTest::qWait(1); QMouseEvent mouseReleaseEvent(QEvent::MouseButtonRelease, pressPoint, globalPressPoint, - Qt::LeftButton, Qt::LeftButton, 0); + Qt::LeftButton, Qt::LeftButton, {}); QApplication::sendEvent(verticalScrollBar, &mouseReleaseEvent); // Check that the action was triggered once. @@ -189,11 +189,11 @@ void tst_QScrollBar::QTBUG_42871() const QPoint pressPoint(scrollBarWidget.width() / 2, scrollBarWidget.height() - 10); const QPoint globalPressPoint = scrollBarWidget.mapToGlobal(pressPoint); QMouseEvent mousePressEvent(QEvent::MouseButtonPress, pressPoint, globalPressPoint, - Qt::LeftButton, Qt::LeftButton, 0); + Qt::LeftButton, Qt::LeftButton, {}); QApplication::sendEvent(&scrollBarWidget, &mousePressEvent); QTest::qWait(1); QMouseEvent mouseReleaseEvent(QEvent::MouseButtonRelease, pressPoint, globalPressPoint, - Qt::LeftButton, Qt::LeftButton, 0); + Qt::LeftButton, Qt::LeftButton, {}); QApplication::sendEvent(&scrollBarWidget, &mouseReleaseEvent); // Check that the action was triggered once. QCOMPARE(myHandler.updatesCount, 1); diff --git a/tests/auto/widgets/widgets/qsizegrip/CMakeLists.txt b/tests/auto/widgets/widgets/qsizegrip/CMakeLists.txt index f3f6548774..d3b28797f2 100644 --- a/tests/auto/widgets/widgets/qsizegrip/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qsizegrip/CMakeLists.txt @@ -1 +1,15 @@ -add_qt_test("tst_qsizegrip" RUN_SERIAL SOURCES tst_qsizegrip.cpp LIBRARIES Qt::Widgets) +# Generated from qsizegrip.pro. + +##################################################################### +## tst_qsizegrip Test: +##################################################################### + +add_qt_test(tst_qsizegrip + SOURCES + tst_qsizegrip.cpp + INCLUDE_DIRECTORIES + . + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qslider/CMakeLists.txt b/tests/auto/widgets/widgets/qslider/CMakeLists.txt index 1da3dc0d0a..583f12a1fb 100644 --- a/tests/auto/widgets/widgets/qslider/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qslider/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qslider" RUN_SERIAL SOURCES tst_qslider.cpp LIBRARIES Qt::Widgets) +# Generated from qslider.pro. + +##################################################################### +## tst_qslider Test: +##################################################################### + +add_qt_test(tst_qslider + SOURCES + tst_qslider.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qspinbox/CMakeLists.txt b/tests/auto/widgets/widgets/qspinbox/CMakeLists.txt index 80f1de0702..826de28cb4 100644 --- a/tests/auto/widgets/widgets/qspinbox/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qspinbox/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qspinbox" RUN_SERIAL SOURCES tst_qspinbox.cpp LIBRARIES Qt::Widgets) +# Generated from qspinbox.pro. + +##################################################################### +## tst_qspinbox Test: +##################################################################### + +add_qt_test(tst_qspinbox + SOURCES + tst_qspinbox.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp b/tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp index d75e701d1c..a8b47ffc46 100644 --- a/tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp +++ b/tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp @@ -47,7 +47,9 @@ #include <QLocale> #include <QDoubleSpinBox> #include <QVBoxLayout> -#include <QKeySequence> +#if QT_CONFIG(shortcut) +# include <QKeySequence> +#endif #include <QStackedWidget> #include <QDebug> #include <QStyleOptionSpinBox> @@ -173,7 +175,10 @@ private slots: void removeAll(); void startWithDash(); + +#if QT_CONFIG(shortcut) void undoRedo(); +#endif void specialValue(); void textFromValue(); @@ -500,26 +505,27 @@ void tst_QSpinBox::valueChangedHelper(int value) actualValues << value; } -class MySpinBox: public QSpinBox +class ReadOnlyChangeTracker: public QSpinBox { public: - MySpinBox(QWidget *parent = 0) : QSpinBox(parent) {} + ReadOnlyChangeTracker(QWidget *parent = 0) : QSpinBox(parent) {} void changeEvent(QEvent *ev) { - eventsReceived.append(ev->type()); + if (ev->type() == QEvent::ReadOnlyChange) + ++readOnlyChangeEventCount; } - QList<QEvent::Type> eventsReceived; + int readOnlyChangeEventCount = 0; }; void tst_QSpinBox::setReadOnly() { - MySpinBox spin(0); + ReadOnlyChangeTracker spin(0); spin.show(); QTest::keyClick(&spin, Qt::Key_Up); QCOMPARE(spin.value(), 1); spin.setReadOnly(true); #ifndef Q_OS_WINRT // QTBUG-68297 - QCOMPARE(spin.eventsReceived, QList<QEvent::Type>() << QEvent::ReadOnlyChange); + QCOMPARE(spin.readOnlyChangeEventCount, 1); #endif QTest::keyClick(&spin, Qt::Key_Up); QCOMPARE(spin.value(), 1); @@ -527,7 +533,7 @@ void tst_QSpinBox::setReadOnly() QCOMPARE(spin.value(), 2); spin.setReadOnly(false); #ifndef Q_OS_WINRT // QTBUG-68297 - QCOMPARE(spin.eventsReceived, QList<QEvent::Type>() << QEvent::ReadOnlyChange << QEvent::ReadOnlyChange); + QCOMPARE(spin.readOnlyChangeEventCount, 2); #endif QTest::keyClick(&spin, Qt::Key_Up); QCOMPARE(spin.value(), 3); @@ -906,6 +912,9 @@ void tst_QSpinBox::locale() void tst_QSpinBox::editingFinished() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget testFocusWidget; testFocusWidget.setObjectName(QLatin1String("tst_qspinbox")); testFocusWidget.setWindowTitle(objectName()); @@ -1021,6 +1030,8 @@ void tst_QSpinBox::startWithDash() QCOMPARE(spin.text(), QString("0")); } +#if QT_CONFIG(shortcut) + void tst_QSpinBox::undoRedo() { //test undo/redo feature (in conjunction with the "undoRedoEnabled" property) @@ -1073,8 +1084,13 @@ void tst_QSpinBox::undoRedo() QVERIFY(!spin.lineEdit()->isRedoAvailable()); } +#endif // QT_CONFIG(shortcut) + void tst_QSpinBox::specialValue() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QString specialText="foo"; QWidget topWidget; @@ -1167,6 +1183,9 @@ void tst_QSpinBox::sizeHint() void tst_QSpinBox::taskQTBUG_5008_textFromValueAndValidate() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + class DecoratedSpinBox : public QSpinBox { public: @@ -1245,6 +1264,9 @@ void tst_QSpinBox::lineEditReturnPressed() void tst_QSpinBox::positiveSign() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QSpinBox spinBox; spinBox.setRange(-20, 20); spinBox.setValue(-20); @@ -1260,6 +1282,9 @@ void tst_QSpinBox::positiveSign() void tst_QSpinBox::interpretOnLosingFocus() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + // QTBUG-55249: When typing an invalid value after QSpinBox::clear(), // it should be fixed up on losing focus. @@ -1614,6 +1639,9 @@ void tst_QSpinBox::stepModifierKeys_data() void tst_QSpinBox::stepModifierKeys() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(int, startValue); QFETCH(int, stepModifier); QFETCH(QTestEventList, keys); @@ -1697,6 +1725,9 @@ void tst_QSpinBox::stepModifierButtons_data() void tst_QSpinBox::stepModifierButtons() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(QStyle::SubControl, subControl); QFETCH(int, stepModifier); QFETCH(Qt::KeyboardModifiers, modifiers); @@ -1782,6 +1813,9 @@ void tst_QSpinBox::stepModifierPressAndHold_data() void tst_QSpinBox::stepModifierPressAndHold() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(QStyle::SubControl, subControl); QFETCH(int, stepModifier); QFETCH(Qt::KeyboardModifiers, modifiers); @@ -1796,9 +1830,9 @@ void tst_QSpinBox::stepModifierPressAndHold() stepModifierStyle->stepModifier = static_cast<Qt::KeyboardModifier>(stepModifier); spin.setStyle(stepModifierStyle.data()); - QSignalSpy spy(&spin, QOverload<int>::of(&SpinBox::valueChanged)); + QSignalSpy spy(&spin, &SpinBox::valueChanged); // TODO: remove debug output when QTBUG-69492 is fixed - connect(&spin, QOverload<int>::of(&SpinBox::valueChanged), [=]() { + connect(&spin, &SpinBox::valueChanged, [=]() { qDebug() << QTime::currentTime() << "valueChanged emitted"; }); diff --git a/tests/auto/widgets/widgets/qsplashscreen/CMakeLists.txt b/tests/auto/widgets/widgets/qsplashscreen/CMakeLists.txt index 028d8fc82e..babe84f43e 100644 --- a/tests/auto/widgets/widgets/qsplashscreen/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qsplashscreen/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qsplashscreen" RUN_SERIAL SOURCES tst_qsplashscreen.cpp LIBRARIES Qt::Widgets) +# Generated from qsplashscreen.pro. + +##################################################################### +## tst_qsplashscreen Test: +##################################################################### + +add_qt_test(tst_qsplashscreen + SOURCES + tst_qsplashscreen.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qsplitter/CMakeLists.txt b/tests/auto/widgets/widgets/qsplitter/CMakeLists.txt index a0dfd3a9c5..98c165f034 100644 --- a/tests/auto/widgets/widgets/qsplitter/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qsplitter/CMakeLists.txt @@ -1 +1,18 @@ -add_qt_test("tst_qsplitter" RUN_SERIAL SOURCES tst_qsplitter.cpp LIBRARIES Qt::Widgets) +# Generated from qsplitter.pro. + +##################################################################### +## tst_qsplitter Test: +##################################################################### + +# Collect test data +list(APPEND test_data "extradata.txt") +list(APPEND test_data "setSizes3.dat") + +add_qt_test(tst_qsplitter + SOURCES + tst_qsplitter.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets + TESTDATA ${test_data} +) diff --git a/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp b/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp index cbeb77a25e..cc65accdc3 100644 --- a/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp +++ b/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp @@ -278,6 +278,9 @@ void tst_QSplitter::saveAndRestoreState() void tst_QSplitter::saveAndRestoreStateOfNotYetShownSplitter() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QSplitter *spl = new QSplitter; QLabel *l1 = new QLabel; QLabel *l2 = new QLabel; @@ -590,6 +593,9 @@ void tst_QSplitter::testShowHide_data() void tst_QSplitter::testShowHide() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(bool, hideWidget1); QFETCH(bool, hideWidget2); @@ -716,6 +722,9 @@ void tst_QSplitter::replaceWidget_data() void tst_QSplitter::replaceWidget() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(int, index); QFETCH(bool, visible); QFETCH(bool, collapsed); @@ -962,6 +971,9 @@ class MyTextEdit : public QTextEdit void tst_QSplitter::task169702_sizes() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget topLevel; // Create two nested (non-collapsible) splitters QSplitter* outerSplitter = new QSplitter(Qt::Vertical, &topLevel); diff --git a/tests/auto/widgets/widgets/qstackedwidget/CMakeLists.txt b/tests/auto/widgets/widgets/qstackedwidget/CMakeLists.txt index 8b2b79b181..37807eb73a 100644 --- a/tests/auto/widgets/widgets/qstackedwidget/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qstackedwidget/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qstackedwidget" RUN_SERIAL SOURCES tst_qstackedwidget.cpp LIBRARIES Qt::Widgets) +# Generated from qstackedwidget.pro. + +##################################################################### +## tst_qstackedwidget Test: +##################################################################### + +add_qt_test(tst_qstackedwidget + SOURCES + tst_qstackedwidget.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qstackedwidget/tst_qstackedwidget.cpp b/tests/auto/widgets/widgets/qstackedwidget/tst_qstackedwidget.cpp index 59a334fab9..4fd3661fa7 100644 --- a/tests/auto/widgets/widgets/qstackedwidget/tst_qstackedwidget.cpp +++ b/tests/auto/widgets/widgets/qstackedwidget/tst_qstackedwidget.cpp @@ -163,6 +163,9 @@ private: void tst_QStackedWidget::dynamicPages() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QStackedWidget stackedWidget; QStackedWidget *sw = &stackedWidget; diff --git a/tests/auto/widgets/widgets/qstatusbar/CMakeLists.txt b/tests/auto/widgets/widgets/qstatusbar/CMakeLists.txt index ba65925b6e..56f3c960fd 100644 --- a/tests/auto/widgets/widgets/qstatusbar/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qstatusbar/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qstatusbar" RUN_SERIAL SOURCES tst_qstatusbar.cpp LIBRARIES Qt::Widgets) +# Generated from qstatusbar.pro. + +##################################################################### +## tst_qstatusbar Test: +##################################################################### + +add_qt_test(tst_qstatusbar + SOURCES + tst_qstatusbar.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qstatusbar/tst_qstatusbar.cpp b/tests/auto/widgets/widgets/qstatusbar/tst_qstatusbar.cpp index 928910344c..256906080e 100644 --- a/tests/auto/widgets/widgets/qstatusbar/tst_qstatusbar.cpp +++ b/tests/auto/widgets/widgets/qstatusbar/tst_qstatusbar.cpp @@ -132,6 +132,9 @@ void tst_QStatusBar::insertPermanentWidget() void tst_QStatusBar::setSizeGripEnabled() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow mainWindow; QPointer<QStatusBar> statusBar = mainWindow.statusBar(); QVERIFY(statusBar); @@ -223,6 +226,9 @@ void tst_QStatusBar::task194017_hiddenWidget() void tst_QStatusBar::QTBUG4334_hiddenOnMaximizedWindow() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow main; QStatusBar statusbar; statusbar.setSizeGripEnabled(true); diff --git a/tests/auto/widgets/widgets/qtabbar/CMakeLists.txt b/tests/auto/widgets/widgets/qtabbar/CMakeLists.txt index 003d4a778b..d23d23d88f 100644 --- a/tests/auto/widgets/widgets/qtabbar/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qtabbar/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qtabbar" RUN_SERIAL SOURCES tst_qtabbar.cpp LIBRARIES Qt::Widgets) +# Generated from qtabbar.pro. + +##################################################################### +## tst_qtabbar Test: +##################################################################### + +add_qt_test(tst_qtabbar + SOURCES + tst_qtabbar.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp b/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp index 550cca8145..e27600bad2 100644 --- a/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp +++ b/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp @@ -33,6 +33,7 @@ #include <qpushbutton.h> #include <qstyle.h> +#include <qstyleoption.h> class tst_QTabBar : public QObject { @@ -60,6 +61,10 @@ private slots: void removeTab_data(); void removeTab(); + void hideTab_data(); + void hideTab(); + void hideAllTabs(); + void setElideMode_data(); void setElideMode(); void sizeHints(); @@ -244,6 +249,96 @@ void tst_QTabBar::removeTab() QTEST(tabbar.currentIndex(), "finalIndex"); } +void tst_QTabBar::hideTab_data() +{ + QTest::addColumn<int>("currentIndex"); + QTest::addColumn<int>("hideIndex"); + QTest::addColumn<int>("spyCount"); + QTest::addColumn<int>("finalIndex"); + + QTest::newRow("hideEnd") << 0 << 2 << 0 << 0; + QTest::newRow("hideEndWithIndexOnEnd") << 2 << 2 << 1 << 1; + QTest::newRow("hideMiddle") << 2 << 1 << 0 << 2; + QTest::newRow("hideMiddleOnMiddle") << 1 << 1 << 1 << 2; + QTest::newRow("hideFirst") << 2 << 0 << 0 << 2; + QTest::newRow("hideFirstOnFirst") << 0 << 0 << 1 << 1; +} + +void tst_QTabBar::hideTab() +{ + QTabBar tabbar; + + QFETCH(int, currentIndex); + QFETCH(int, hideIndex); + tabbar.addTab("foo"); + tabbar.addTab("bar"); + tabbar.addTab("baz"); + tabbar.setCurrentIndex(currentIndex); + QSignalSpy spy(&tabbar, &QTabBar::currentChanged); + tabbar.setTabVisible(hideIndex, false); + QTEST(spy.count(), "spyCount"); + QTEST(tabbar.currentIndex(), "finalIndex"); +} + +class TabBar : public QTabBar +{ +public: + using QTabBar::QTabBar; + using QTabBar::initStyleOption; + using QTabBar::moveTab; +}; + +void tst_QTabBar::hideAllTabs() +{ + TabBar tabbar; + auto checkPositions = [&tabbar](const QVector<int> &positions) + { + QStyleOptionTab option; + int iPos = 0; + for (int i = 0; i < tabbar.count(); ++i) { + if (!tabbar.isTabVisible(i)) + continue; + tabbar.initStyleOption(&option, i); + QCOMPARE(option.position, positions.at(iPos++)); + } + }; + + tabbar.addTab("foo"); + tabbar.addTab("bar"); + tabbar.addTab("baz"); + tabbar.setCurrentIndex(0); + checkPositions({QStyleOptionTab::Beginning, QStyleOptionTab::Middle, QStyleOptionTab::End}); + + // Check we don't crash trying to hide an unexistant tab + QSize prevSizeHint = tabbar.sizeHint(); + tabbar.setTabVisible(3, false); + checkPositions({QStyleOptionTab::Beginning, QStyleOptionTab::Middle, QStyleOptionTab::End}); + QCOMPARE(tabbar.currentIndex(), 0); + QSize sizeHint = tabbar.sizeHint(); + QVERIFY(sizeHint.width() == prevSizeHint.width()); + prevSizeHint = sizeHint; + + tabbar.setTabVisible(1, false); + checkPositions({QStyleOptionTab::Beginning, QStyleOptionTab::End}); + QCOMPARE(tabbar.currentIndex(), 0); + sizeHint = tabbar.sizeHint(); + QVERIFY(sizeHint.width() < prevSizeHint.width()); + prevSizeHint = sizeHint; + + tabbar.setTabVisible(2, false); + checkPositions({QStyleOptionTab::OnlyOneTab}); + QCOMPARE(tabbar.currentIndex(), 0); + sizeHint = tabbar.sizeHint(); + QVERIFY(sizeHint.width() < prevSizeHint.width()); + prevSizeHint = sizeHint; + + tabbar.setTabVisible(0, false); + // We cannot set currentIndex < 0 + QCOMPARE(tabbar.currentIndex(), 0); + sizeHint = tabbar.sizeHint(); + QVERIFY(sizeHint.width() < prevSizeHint.width()); +} + void tst_QTabBar::setElideMode_data() { QTest::addColumn<int>("tabElideMode"); @@ -500,14 +595,6 @@ void tst_QTabBar::selectionBehaviorOnRemove() QCOMPARE(tabbar.currentIndex(), expected); } -class TabBar : public QTabBar -{ - Q_OBJECT -public: - void callMoveTab(int from, int to){ moveTab(from, to); } -}; - - Q_DECLARE_METATYPE(QTabBar::Shape) void tst_QTabBar::moveTab_data() { @@ -542,7 +629,7 @@ void tst_QTabBar::moveTab() bar.setShape(shape); while(--tabs >= 0) bar.addTab(QString::number(tabs)); - bar.callMoveTab(from, to); + bar.moveTab(from, to); } @@ -605,7 +692,7 @@ void tst_QTabBar::changeTitleWhileDoubleClickingTab() QPoint tabPos = bar.tabRect(0).center(); for(int i=0; i < 10; i++) - QTest::mouseDClick(&bar, Qt::LeftButton, 0, tabPos); + QTest::mouseDClick(&bar, Qt::LeftButton, {}, tabPos); } class Widget10052 : public QWidget @@ -655,12 +742,12 @@ void tst_QTabBar::tabBarClicked() while (button <= Qt::MaxMouseButton) { const QPoint tabPos = tabBar.tabRect(0).center(); - QTest::mouseClick(&tabBar, button, 0, tabPos); + QTest::mouseClick(&tabBar, button, {}, tabPos); QCOMPARE(clickSpy.count(), 1); QCOMPARE(clickSpy.takeFirst().takeFirst().toInt(), 0); QCOMPARE(doubleClickSpy.count(), 0); - QTest::mouseDClick(&tabBar, button, 0, tabPos); + QTest::mouseDClick(&tabBar, button, {}, tabPos); QCOMPARE(clickSpy.count(), 1); QCOMPARE(clickSpy.takeFirst().takeFirst().toInt(), 0); QCOMPARE(doubleClickSpy.count(), 1); @@ -668,12 +755,12 @@ void tst_QTabBar::tabBarClicked() const QPoint barPos(tabBar.tabRect(0).right() + 5, tabBar.tabRect(0).center().y()); - QTest::mouseClick(&tabBar, button, 0, barPos); + QTest::mouseClick(&tabBar, button, {}, barPos); QCOMPARE(clickSpy.count(), 1); QCOMPARE(clickSpy.takeFirst().takeFirst().toInt(), -1); QCOMPARE(doubleClickSpy.count(), 0); - QTest::mouseDClick(&tabBar, button, 0, barPos); + QTest::mouseDClick(&tabBar, button, {}, barPos); QCOMPARE(clickSpy.count(), 1); QCOMPARE(clickSpy.takeFirst().takeFirst().toInt(), -1); QCOMPARE(doubleClickSpy.count(), 1); diff --git a/tests/auto/widgets/widgets/qtabwidget/CMakeLists.txt b/tests/auto/widgets/widgets/qtabwidget/CMakeLists.txt index 440603fac4..9bd0018082 100644 --- a/tests/auto/widgets/widgets/qtabwidget/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qtabwidget/CMakeLists.txt @@ -1,3 +1,24 @@ -add_qt_test("tst_qtabwidget" RUN_SERIAL SOURCES tst_qtabwidget.cpp LIBRARIES Qt::WidgetsPrivate) +# Generated from qtabwidget.pro. -extend_target("tst_qtabwidget" CONDITION WIN32 AND NOT WINRT LIBRARIES -luser32) +##################################################################### +## tst_qtabwidget Test: +##################################################################### + +add_qt_test(tst_qtabwidget + SOURCES + tst_qtabwidget.cpp + INCLUDE_DIRECTORIES + .. + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets + Qt::WidgetsPrivate +) + +## Scopes: +##################################################################### + +extend_target(tst_qtabwidget CONDITION WIN32 AND NOT WINRT + PUBLIC_LIBRARIES + user32 +) diff --git a/tests/auto/widgets/widgets/qtabwidget/tst_qtabwidget.cpp b/tests/auto/widgets/widgets/qtabwidget/tst_qtabwidget.cpp index feade7d443..28b8bfc6b3 100644 --- a/tests/auto/widgets/widgets/qtabwidget/tst_qtabwidget.cpp +++ b/tests/auto/widgets/widgets/qtabwidget/tst_qtabwidget.cpp @@ -81,6 +81,7 @@ private slots: void addRemoveTab(); void tabPosition(); void tabEnabled(); + void tabHidden(); void tabText(); void tabShape(); void tabTooltip(); @@ -246,6 +247,30 @@ void tst_QTabWidget::tabEnabled() removePage(index); } +void tst_QTabWidget::tabHidden() +{ + // Test bad arguments + QVERIFY(!tw->isTabVisible(-1)); + tw->setTabVisible(-1, false); + QVERIFY(!tw->isTabVisible(tw->count())); + tw->setTabVisible(tw->count(), false); + + const int index = addPage(); + + tw->setTabVisible(index, true); + QVERIFY(tw->isTabVisible(index)); + tw->setTabVisible(index, false); + QVERIFY(!tw->isTabVisible(index)); + tw->setTabVisible(index, true); + QVERIFY(tw->isTabVisible(index)); + + removePage(index); + + for (int i = 0; i < tw->count(); ++i) { + QVERIFY(tw->isTabVisible(i)); + } +} + void tst_QTabWidget::tabText() { // Test bad arguments @@ -536,6 +561,9 @@ protected: void tst_QTabWidget::paintEventCount() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + Q_CHECK_PAINTEVENTS PaintCounter *tab1 = new PaintCounter; @@ -665,12 +693,12 @@ void tst_QTabWidget::tabBarClicked() while (button <= Qt::MaxMouseButton) { const QPoint tabPos = tabBar.tabRect(0).center(); - QTest::mouseClick(&tabBar, button, 0, tabPos); + QTest::mouseClick(&tabBar, button, {}, tabPos); QCOMPARE(clickSpy.count(), 1); QCOMPARE(clickSpy.takeFirst().takeFirst().toInt(), 0); QCOMPARE(doubleClickSpy.count(), 0); - QTest::mouseDClick(&tabBar, button, 0, tabPos); + QTest::mouseDClick(&tabBar, button, {}, tabPos); QCOMPARE(clickSpy.count(), 1); QCOMPARE(clickSpy.takeFirst().takeFirst().toInt(), 0); QCOMPARE(doubleClickSpy.count(), 1); @@ -678,12 +706,12 @@ void tst_QTabWidget::tabBarClicked() const QPoint barPos(tabBar.tabRect(0).right() + 5, tabBar.tabRect(0).center().y()); - QTest::mouseClick(&tabBar, button, 0, barPos); + QTest::mouseClick(&tabBar, button, {}, barPos); QCOMPARE(clickSpy.count(), 1); QCOMPARE(clickSpy.takeFirst().takeFirst().toInt(), -1); QCOMPARE(doubleClickSpy.count(), 0); - QTest::mouseDClick(&tabBar, button, 0, barPos); + QTest::mouseDClick(&tabBar, button, {}, barPos); QCOMPARE(clickSpy.count(), 1); QCOMPARE(clickSpy.takeFirst().takeFirst().toInt(), -1); QCOMPARE(doubleClickSpy.count(), 1); diff --git a/tests/auto/widgets/widgets/qtextbrowser/CMakeLists.txt b/tests/auto/widgets/widgets/qtextbrowser/CMakeLists.txt index 17742cf036..503dc32a83 100644 --- a/tests/auto/widgets/widgets/qtextbrowser/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qtextbrowser/CMakeLists.txt @@ -4,17 +4,30 @@ ## tst_qtextbrowser Test: ##################################################################### +# Collect test data +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + *.html) +list(APPEND test_data ${test_data_glob}) +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + *.md) +list(APPEND test_data ${test_data_glob}) +list(APPEND test_data "markdown.really") +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + subdir/*) +list(APPEND test_data ${test_data_glob}) + add_qt_test(tst_qtextbrowser SOURCES tst_qtextbrowser.cpp PUBLIC_LIBRARIES + Qt::Gui Qt::Widgets + TESTDATA ${test_data} ) -#### Keys ignored in scope 1:.:.:qtextbrowser.pro:<TRUE>: -# CONFIG = "testcase" -# TESTDATA = "*.html" "*.md" "subdir/*" - ## Scopes: ##################################################################### diff --git a/tests/auto/widgets/widgets/qtextbrowser/tst_qtextbrowser.cpp b/tests/auto/widgets/widgets/qtextbrowser/tst_qtextbrowser.cpp index 27bf0ce7be..2496d446d8 100644 --- a/tests/auto/widgets/widgets/qtextbrowser/tst_qtextbrowser.cpp +++ b/tests/auto/widgets/widgets/qtextbrowser/tst_qtextbrowser.cpp @@ -70,6 +70,7 @@ class tst_QTextBrowser : public QObject Q_OBJECT private slots: + void initTestCase(); void init(); void cleanup(); @@ -101,6 +102,12 @@ private: TestBrowser *browser; }; +void tst_QTextBrowser::initTestCase() +{ + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); +} + void tst_QTextBrowser::init() { QString prefix = QFileInfo(QFINDTESTDATA("subdir")).absolutePath(); diff --git a/tests/auto/widgets/widgets/qtextedit/CMakeLists.txt b/tests/auto/widgets/widgets/qtextedit/CMakeLists.txt index 276cabc8b4..61641707b9 100644 --- a/tests/auto/widgets/widgets/qtextedit/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qtextedit/CMakeLists.txt @@ -10,19 +10,15 @@ list(APPEND test_data "fullWidthSelection") add_qt_test(tst_qtextedit SOURCES tst_qtextedit.cpp - LIBRARIES - Qt::CorePrivate - Qt::GuiPrivate - Qt::WidgetsPrivate PUBLIC_LIBRARIES + Qt::CorePrivate Qt::Gui + Qt::GuiPrivate Qt::Widgets + Qt::WidgetsPrivate TESTDATA ${test_data} ) -#### Keys ignored in scope 1:.:.:qtextedit.pro:<TRUE>: -# CONFIG = "testcase" - ## Scopes: ##################################################################### diff --git a/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp b/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp index b31e230893..485a0b0f93 100644 --- a/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp +++ b/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp @@ -500,6 +500,10 @@ void tst_QTextEdit::clearMustNotChangeClipboard() { if (!PlatformClipboard::isAvailable()) QSKIP("Clipboard not working with cron-started unit tests"); + + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + ed->textCursor().insertText("Hello World"); QString txt("This is different text"); QApplication::clipboard()->setText(txt); @@ -756,7 +760,7 @@ void tst_QTextEdit::cursorPositionChanged() ed->setTextCursor(cursor); spy.clear(); QVERIFY(!ed->textCursor().hasSelection()); - QTest::mouseDClick(ed->viewport(), Qt::LeftButton, 0, ed->cursorRect().center()); + QTest::mouseDClick(ed->viewport(), Qt::LeftButton, {}, ed->cursorRect().center()); QVERIFY(ed->textCursor().hasSelection()); QCOMPARE(spy.count(), 1); @@ -790,6 +794,9 @@ void tst_QTextEdit::undoAvailableAfterPaste() if (!PlatformClipboard::isAvailable()) QSKIP("Clipboard not working with cron-started unit tests"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QSignalSpy spy(ed->document(), SIGNAL(undoAvailable(bool))); const QString txt("Test"); @@ -1012,6 +1019,9 @@ void tst_QTextEdit::copyAndSelectAllInReadonly() if (!PlatformClipboard::isAvailable()) QSKIP("Clipboard not working with cron-started unit tests"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + ed->setReadOnly(true); ed->setPlainText("Hello World"); @@ -1559,6 +1569,9 @@ void tst_QTextEdit::canPaste() if (!PlatformClipboard::isAvailable()) QSKIP("Clipboard not working with cron-started unit tests"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QApplication::clipboard()->setText(QString()); QVERIFY(!ed->canPaste()); QApplication::clipboard()->setText("Test"); @@ -1864,6 +1877,9 @@ void tst_QTextEdit::copyPasteBackgroundImage() if (!PlatformClipboard::isAvailable()) QSKIP("Native clipboard not working in this setup"); + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QImage foo(16, 16, QImage::Format_ARGB32_Premultiplied); foo.save("foo.png"); ed->setHtml("<body><table><tr><td background=\"foo.png\">Foo</td></tr></table></body>"); @@ -2440,6 +2456,9 @@ void tst_QTextEdit::bidiLogicalMovement() void tst_QTextEdit::inputMethodEvent() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + ed->show(); // test that text change with an input method event triggers change signal @@ -2543,6 +2562,9 @@ void tst_QTextEdit::inputMethodCursorRect() void tst_QTextEdit::highlightLongLine() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QTextEdit edit; edit.setAcceptRichText(false); edit.setWordWrapMode(QTextOption::NoWrap); diff --git a/tests/auto/widgets/widgets/qtoolbar/CMakeLists.txt b/tests/auto/widgets/widgets/qtoolbar/CMakeLists.txt index ab6d4d082a..d3aef03fa1 100644 --- a/tests/auto/widgets/widgets/qtoolbar/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qtoolbar/CMakeLists.txt @@ -1 +1,15 @@ -add_qt_test("tst_qtoolbar" RUN_SERIAL SOURCES tst_qtoolbar.cpp LIBRARIES Qt::WidgetsPrivate Qt::GuiPrivate) +# Generated from qtoolbar.pro. + +##################################################################### +## tst_qtoolbar Test: +##################################################################### + +add_qt_test(tst_qtoolbar + SOURCES + tst_qtoolbar.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::GuiPrivate + Qt::Widgets + Qt::WidgetsPrivate +) diff --git a/tests/auto/widgets/widgets/qtoolbar/tst_qtoolbar.cpp b/tests/auto/widgets/widgets/qtoolbar/tst_qtoolbar.cpp index d6c165642e..1d5ac7c819 100644 --- a/tests/auto/widgets/widgets/qtoolbar/tst_qtoolbar.cpp +++ b/tests/auto/widgets/widgets/qtoolbar/tst_qtoolbar.cpp @@ -40,7 +40,9 @@ #include <qwidgetaction.h> #include <qtoolbutton.h> #include <qlineedit.h> -#include <qkeysequence.h> +#if QT_CONFIG(shortcut) +# include <qkeysequence.h> +#endif #include <qmenu.h> #include <qlabel.h> #include <private/qtoolbarextension_p.h> @@ -551,7 +553,7 @@ void tst_QToolBar::actionGeometry() QToolBarExtension *extension = extensions.at(0); if (extension->isVisible()) { QRect rect0 = extension->geometry(); - QTest::mouseClick( extension, Qt::LeftButton, 0, rect0.center(), -1 ); + QTest::mouseClick( extension, Qt::LeftButton, {}, rect0.center(), -1 ); QApplication::processEvents(); popupMenu = qobject_cast<QMenu *>(extension->menu()); rect01 = popupMenu->actionGeometry(&action1); @@ -873,7 +875,7 @@ void tst_QToolBar::actionTriggered() QToolBarExtension *extension = extensions.at(0); if (extension->isVisible()) { QRect rect0 = extension->geometry(); - QTest::mouseClick( extension, Qt::LeftButton, 0, rect0.center(), -1 ); + QTest::mouseClick( extension, Qt::LeftButton, {}, rect0.center(), -1 ); QApplication::processEvents(); popupMenu = qobject_cast<QMenu *>(extension->menu()); rect01 = popupMenu->actionGeometry(&action1); @@ -914,28 +916,28 @@ void tst_QToolBar::actionTriggered() if (!rect01.isValid()) QTest::mouseClick(button1, Qt::LeftButton); else - QTest::mouseClick(popupMenu, Qt::LeftButton, 0, rect01.center(), -1 ); + QTest::mouseClick(popupMenu, Qt::LeftButton, {}, rect01.center(), -1 ); QCOMPARE(::triggered, &action1); ::triggered = 0; if (!rect02.isValid()) QTest::mouseClick(button2, Qt::LeftButton); else - QTest::mouseClick(popupMenu, Qt::LeftButton, 0, rect02.center(), -1 ); + QTest::mouseClick(popupMenu, Qt::LeftButton, {}, rect02.center(), -1 ); QCOMPARE(::triggered, &action2); ::triggered = 0; if (!rect03.isValid()) QTest::mouseClick(button3, Qt::LeftButton); else - QTest::mouseClick(popupMenu, Qt::LeftButton, 0, rect03.center(), -1 ); + QTest::mouseClick(popupMenu, Qt::LeftButton, {}, rect03.center(), -1 ); QCOMPARE(::triggered, &action3); ::triggered = 0; if (!rect04.isValid()) QTest::mouseClick(button4, Qt::LeftButton); else - QTest::mouseClick(popupMenu, Qt::LeftButton, 0, rect04.center(), -1 ); + QTest::mouseClick(popupMenu, Qt::LeftButton, {}, rect04.center(), -1 ); QCOMPARE(::triggered, &action4); } @@ -1029,6 +1031,9 @@ QT_END_NAMESPACE void tst_QToolBar::accel() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + #ifdef Q_OS_MAC qt_set_sequence_auto_mnemonic(true); #endif @@ -1071,6 +1076,9 @@ void tst_QToolBar::task191727_layout() void tst_QToolBar::task197996_visibility() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow mw; QToolBar *toolBar = new QToolBar(&mw); @@ -1129,6 +1137,9 @@ private: void tst_QToolBar::extraCpuConsumption() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMainWindow mainWindow; auto tb = new QToolBar(&mainWindow); diff --git a/tests/auto/widgets/widgets/qtoolbox/CMakeLists.txt b/tests/auto/widgets/widgets/qtoolbox/CMakeLists.txt index 337f187878..dc3e5d016c 100644 --- a/tests/auto/widgets/widgets/qtoolbox/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qtoolbox/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qtoolbox" RUN_SERIAL SOURCES tst_qtoolbox.cpp LIBRARIES Qt::Widgets) +# Generated from qtoolbox.pro. + +##################################################################### +## tst_qtoolbox Test: +##################################################################### + +add_qt_test(tst_qtoolbox + SOURCES + tst_qtoolbox.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qtoolbutton/BLACKLIST b/tests/auto/widgets/widgets/qtoolbutton/BLACKLIST index 52ba36562f..315e179d0a 100644 --- a/tests/auto/widgets/widgets/qtoolbutton/BLACKLIST +++ b/tests/auto/widgets/widgets/qtoolbutton/BLACKLIST @@ -1,2 +1,2 @@ [task176137_autoRepeatOfAction] -osx-10.13 +macos diff --git a/tests/auto/widgets/widgets/qtoolbutton/CMakeLists.txt b/tests/auto/widgets/widgets/qtoolbutton/CMakeLists.txt index a253255617..ae36488341 100644 --- a/tests/auto/widgets/widgets/qtoolbutton/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qtoolbutton/CMakeLists.txt @@ -1 +1,13 @@ -add_qt_test("tst_qtoolbutton" RUN_SERIAL SOURCES tst_qtoolbutton.cpp LIBRARIES Qt::Widgets) +# Generated from qtoolbutton.pro. + +##################################################################### +## tst_qtoolbutton Test: +##################################################################### + +add_qt_test(tst_qtoolbutton + SOURCES + tst_qtoolbutton.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/auto/widgets/widgets/qtoolbutton/tst_qtoolbutton.cpp b/tests/auto/widgets/widgets/qtoolbutton/tst_qtoolbutton.cpp index 44b30fa794..ed4df2fc23 100644 --- a/tests/auto/widgets/widgets/qtoolbutton/tst_qtoolbutton.cpp +++ b/tests/auto/widgets/widgets/qtoolbutton/tst_qtoolbutton.cpp @@ -110,6 +110,9 @@ void tst_QToolButton::getSetCheck() void tst_QToolButton::triggered() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + qRegisterMetaType<QAction *>("QAction *"); QWidget mainWidget; mainWidget.setWindowTitle(QStringLiteral("triggered")); @@ -193,6 +196,9 @@ void tst_QToolButton::task230994_iconSize() void tst_QToolButton::task176137_autoRepeatOfAction() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QAction action(0); QWidget mainWidget; mainWidget.setWindowTitle(QStringLiteral("task176137_autoRepeatOfAction")); @@ -209,14 +215,14 @@ void tst_QToolButton::task176137_autoRepeatOfAction() QSignalSpy spy(&action,SIGNAL(triggered())); QTest::mousePress (toolButton, Qt::LeftButton); - QTest::mouseRelease (toolButton, Qt::LeftButton, 0, QPoint (), 2000); + QTest::mouseRelease (toolButton, Qt::LeftButton, {}, QPoint (), 2000); QCOMPARE(spy.count(),1); // try again with auto repeat toolButton->setAutoRepeat (true); QSignalSpy repeatSpy(&action,SIGNAL(triggered())); // new spy QTest::mousePress (toolButton, Qt::LeftButton); - QTest::mouseRelease (toolButton, Qt::LeftButton, 0, QPoint (), 3000); + QTest::mouseRelease (toolButton, Qt::LeftButton, {}, QPoint (), 3000); const qreal expected = (3000 - toolButton->autoRepeatDelay()) / toolButton->autoRepeatInterval() + 1; //we check that the difference is small (on some systems timers are not super accurate) qreal diff = (expected - repeatSpy.count()) / expected; @@ -236,7 +242,7 @@ void tst_QToolButton::sendMouseClick() } if (!m_menu->isVisible()) return; - QTest::mouseClick(m_menu.data(), Qt::LeftButton, 0, QPoint(7, 7)); + QTest::mouseClick(m_menu.data(), Qt::LeftButton, {}, QPoint(7, 7)); if (QTimer *timer = qobject_cast<QTimer *>(sender())) { timer->stop(); timer->deleteLater(); diff --git a/tests/auto/widgets/widgets/widgets.pro b/tests/auto/widgets/widgets/widgets.pro index c6325aac15..66950fa85a 100644 --- a/tests/auto/widgets/widgets/widgets.pro +++ b/tests/auto/widgets/widgets/widgets.pro @@ -47,6 +47,9 @@ SUBDIRS=\ qtoolbox \ qtoolbutton \ +!qtConfig(shortcut): SUBDIRS -= \ + qkeysequenceedit + # The following tests depend on private API: !qtConfig(private_tests): SUBDIRS -= \ qabstractspinbox \ |