summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp
index 3218b8ac68..4e82099706 100644
--- a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp
+++ b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp
@@ -42,6 +42,7 @@
#include <qmenu.h>
#include <qstyle.h>
+#include <QStyleHints>
#include <QTimer>
#include <qdebug.h>
@@ -110,6 +111,8 @@ private slots:
void QTBUG_37933_ampersands_data();
void QTBUG_37933_ampersands();
#endif
+ void QTBUG_56917_wideMenuSize();
+ void QTBUG_56917_wideMenuScreenNumber();
protected slots:
void onActivated(QAction*);
void onHighlighted(QAction*);
@@ -1311,5 +1314,39 @@ void tst_QMenu::QTBUG_37933_ampersands()
}
#endif
+void tst_QMenu::QTBUG_56917_wideMenuSize()
+{
+ // menu shouldn't to take on full screen height when menu width is larger than screen width
+ QMenu menu;
+ QString longString;
+ longString.fill(QLatin1Char('Q'), 3000);
+ menu.addAction(longString);
+ QSize menuSizeHint = menu.sizeHint();
+ menu.popup(QPoint());
+ QTest::qWait(100);
+ QVERIFY(QTest::qWaitForWindowExposed(&menu));
+ QVERIFY(menu.isVisible());
+ QVERIFY(menu.height() <= menuSizeHint.height());
+}
+
+void tst_QMenu::QTBUG_56917_wideMenuScreenNumber()
+{
+ if (QApplication::styleHints()->showIsFullScreen())
+ QSKIP("The platform defaults to windows being fullscreen.");
+ // menu must appear on the same screen where show action is triggered
+ QString longString;
+ longString.fill(QLatin1Char('Q'), 3000);
+
+ for (int i = 0; i < QApplication::desktop()->screenCount(); i++) {
+ QMenu menu;
+ menu.addAction(longString);
+ menu.popup(QApplication::desktop()->screen(i)->geometry().center());
+ QTest::qWait(100);
+ QVERIFY(QTest::qWaitForWindowExposed(&menu));
+ QVERIFY(menu.isVisible());
+ QCOMPARE(QApplication::desktop()->screenNumber(&menu), i);
+ }
+}
+
QTEST_MAIN(tst_QMenu)
#include "tst_qmenu.moc"