summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/widgets')
-rw-r--r--tests/auto/widgets/widgets/qmenu/BLACKLIST1
-rw-r--r--tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp13
-rw-r--r--tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp32
-rw-r--r--tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp18
4 files changed, 61 insertions, 3 deletions
diff --git a/tests/auto/widgets/widgets/qmenu/BLACKLIST b/tests/auto/widgets/widgets/qmenu/BLACKLIST
index 837c785141..230512769c 100644
--- a/tests/auto/widgets/widgets/qmenu/BLACKLIST
+++ b/tests/auto/widgets/widgets/qmenu/BLACKLIST
@@ -28,3 +28,4 @@ android
android
[QTBUG_89082_actionTipsHide]
macos ci # Can't move cursor (QTBUG-76312)
+windows-10 ci
diff --git a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp
index a6016f6d27..1ed94ed697 100644
--- a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp
+++ b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp
@@ -174,7 +174,9 @@ void tst_QMenu::getSetCheck()
tst_QMenu::tst_QMenu()
: m_onStatusTipTimerExecuted(false)
{
+ QApplication::setEffectEnabled(Qt::UI_FadeTooltip, false);
QApplication::setEffectEnabled(Qt::UI_AnimateMenu, false);
+ QApplication::setEffectEnabled(Qt::UI_AnimateTooltip, false);
}
void tst_QMenu::initTestCase()
@@ -1368,10 +1370,15 @@ void tst_QMenu::QTBUG_89082_actionTipsHide()
widget.resize(300, 200);
centerOnScreen(&widget);
widget.show();
+#if QT_CONFIG(cursor)
+ QCursor::setPos(widget.screen()->availableGeometry().topLeft() + QPoint(10, 10));
+#endif
widget.activateWindow();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
menu->popup(widget.geometry().topRight() + QPoint(50, 0));
QVERIFY(QTest::qWaitForWindowExposed(menu));
+ auto menuWindow = menu->windowHandle();
+ QVERIFY(menuWindow != nullptr);
auto actionZero = menu->actions().at(0);
auto actionOne = menu->actions().at(1);
@@ -1385,12 +1392,12 @@ void tst_QMenu::QTBUG_89082_actionTipsHide()
const QRect submenuRect5 = menu->actionGeometry(actionFive);
const QPoint submenuPos5(submenuRect5.topLeft() + QPoint(10, 3));
- QTest::mouseMove(menu, submenuPos1);
- QTest::mouseMove(menu, submenuPos0); //show the tip
+ QTest::mouseMove(menuWindow, submenuPos1);
+ QTest::mouseMove(menuWindow, submenuPos0); //show the tip
QTRY_COMPARE_WITH_TIMEOUT(QToolTip::text(), tipFullName, 1000);
//Move to the fifth action without prompting
- QTest::mouseMove(menu, submenuPos5);
+ QTest::mouseMove(menuWindow, submenuPos5);
//The previous tip was hidden, but now is a new tip to get text, So there should be no content
QTRY_COMPARE_WITH_TIMEOUT(QToolTip::text(), QString(), 1000);
}
diff --git a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
index 831612b910..24aa755ad8 100644
--- a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
+++ b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
@@ -153,6 +153,7 @@ private slots:
#ifndef QT_NO_CLIPBOARD
void updateCursorPositionAfterEdit();
#endif
+ void appendTextWhenInvisible();
private:
void createSelection();
@@ -1805,5 +1806,36 @@ void tst_QPlainTextEdit::updateCursorPositionAfterEdit()
}
#endif
+void tst_QPlainTextEdit::appendTextWhenInvisible()
+{
+ QWidget window;
+ window.resize(640, 480);
+
+ QPlainTextEdit *plainTextEdit = new QPlainTextEdit(&window);
+ plainTextEdit->resize(320, 240);
+
+ window.show();
+ QVERIFY(QTest::qWaitForWindowActive(&window));
+
+ // this should be long enough to let vertical scroll bar show up
+ const QString baseText("text\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ntext");
+ const QString textToAppend("aaa");
+
+ plainTextEdit->setPlainText(baseText + "\n" + textToAppend);
+ const auto maxAfterSet = plainTextEdit->verticalScrollBar()->maximum();
+ // make sure the vertical scroll bar is visible
+ QVERIFY(maxAfterSet != 0);
+
+ plainTextEdit->clear();
+ plainTextEdit->setPlainText(baseText);
+ plainTextEdit->hide();
+ plainTextEdit->appendPlainText(textToAppend);
+ plainTextEdit->show();
+ const auto maxAfterAppend = plainTextEdit->verticalScrollBar()->maximum();
+ QVERIFY(maxAfterAppend != 0);
+
+ QCOMPARE(maxAfterAppend, maxAfterSet);
+}
+
QTEST_MAIN(tst_QPlainTextEdit)
#include "tst_qplaintextedit.moc"
diff --git a/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp b/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp
index 5b80ec4e2f..e565645fa8 100644
--- a/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp
+++ b/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp
@@ -73,6 +73,7 @@ private slots:
#endif
void emitReleasedAfterChange();
void hitButton();
+ void iconOnlyStyleSheet();
protected slots:
void resetCounters();
@@ -734,5 +735,22 @@ void tst_QPushButton::hitButton()
QVERIFY(!button2->hitButton(QPoint(2, 2)));
}
+/*
+ Test that a style sheet with only icon doesn't crash.
+ QTBUG-91735
+*/
+void tst_QPushButton::iconOnlyStyleSheet()
+{
+ QIcon icon(":/qt-project.org/styles/commonstyle/images/dvd-32.png");
+ QVERIFY(!icon.isNull());
+ QPushButton pb;
+ pb.setStyleSheet("QPushButton {"
+ "icon: url(:/qt-project.org/styles/commonstyle/images/dvd-32.png);"
+ "border: red;"
+ "}");
+ pb.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&pb));
+}
+
QTEST_MAIN(tst_QPushButton)
#include "tst_qpushbutton.moc"