tests: cleanup tst_QMenu::click_while_dismissing_submenu()

- Use Qt 5 connection syntax
- Use QTest::mouseMove(QWindow *)

Change-Id: Ia2ea8595355801db3f4569a96dead60a7af51109
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
This commit is contained in:
Friedemann Kleint 2018-01-30 15:59:57 +01:00
parent 4772ac90fa
commit bdd2697ce8

View File

@ -1175,25 +1175,27 @@ void tst_QMenu::click_while_dismissing_submenu()
menu.addMenu(&sub);
centerOnScreen(&menu, QSize(120, 100));
menu.show();
QSignalSpy spy(action, SIGNAL(triggered()));
QSignalSpy menuShownSpy(&sub, SIGNAL(aboutToShow()));
QSignalSpy menuHiddenSpy(&sub, SIGNAL(aboutToHide()));
QSignalSpy spy(action, &QAction::triggered);
QSignalSpy menuShownSpy(&sub, &QMenu::aboutToShow);
QSignalSpy menuHiddenSpy(&sub, &QMenu::aboutToHide);
QVERIFY(QTest::qWaitForWindowExposed(&menu));
QWindow *menuWindow = menu.windowHandle();
QVERIFY(menuWindow);
//go over the submenu, press, move and release over the top level action
//this opens the submenu, move two times to emulate user interaction (d->motions > 0 in QMenu)
QTest::mouseMove(&menu, menu.rect().center() + QPoint(0,2));
QTest::mouseMove(&menu, menu.rect().center() + QPoint(1,3), 60);
QTest::mouseMove(menuWindow, menu.rect().center() + QPoint(0,2));
QTest::mouseMove(menuWindow, menu.rect().center() + QPoint(1,3), 60);
QVERIFY(menuShownSpy.wait());
QVERIFY(sub.isVisible());
QVERIFY(QTest::qWaitForWindowExposed(&sub));
//press over the submenu entry
QTest::mousePress(&menu, Qt::LeftButton, 0, menu.rect().center() + QPoint(0,2), 300);
QTest::mousePress(menuWindow, Qt::LeftButton, 0, menu.rect().center() + QPoint(0,2), 300);
//move over the main action
QTest::mouseMove(&menu, menu.rect().center() - QPoint(0,2));
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(&menu, Qt::LeftButton, 0, menu.rect().center() - QPoint(0,2), 300);
QTest::mouseRelease(menuWindow, Qt::LeftButton, 0, menu.rect().center() - QPoint(0,2), 300);
QCOMPARE(spy.count(), 1);
}
#endif