summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/qwebenginepage
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-06-14 16:19:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2016-06-14 15:01:59 +0000
commit818a2ce5dc773db55938968d5f6e7a2fd758f68a (patch)
treea2e6e0a4ae7307962ba7860091cc6a75a85e0caf /tests/auto/widgets/qwebenginepage
parentcf8bc1899abbce736a29841a10119fc0ca8b8b42 (diff)
Fix translation of multiple pressed mouse buttons
We were reporting any mouse button event where the left mouse button was held as a left mouse button event. We should instead separate the button changed and the ones held. Also adds test of the translation. Change-Id: I1139d6615d54a036dfe843fdb1d1c90b23b467b5 Reviewed-by: Alexandru Croitor <alexandru.croitor@theqtcompany.com> Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'tests/auto/widgets/qwebenginepage')
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index f8012c1df..4cff50d3b 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -236,6 +236,7 @@ private Q_SLOTS:
void toPlainTextLoadFinishedRace_data();
void toPlainTextLoadFinishedRace();
void setZoomFactor();
+ void mouseButtonTranslation();
private:
QWebEngineView* m_view;
@@ -4990,5 +4991,40 @@ void tst_QWebEnginePage::setZoomFactor()
delete page;
}
+void tst_QWebEnginePage::mouseButtonTranslation()
+{
+ QWebEngineView *view = new QWebEngineView;
+
+ QSignalSpy spy(view, SIGNAL(loadFinished(bool)));
+ view->setHtml(QStringLiteral(
+ "<html><head><script>\
+ var lastEvent = { 'button' : -1 }; \
+ function saveLastEvent(event) { console.log(event); lastEvent = event; }; \
+ </script></head>\
+ <body>\
+ <div style=\"height:600px;\" onmousedown=\"saveLastEvent(event)\">\
+ </div>\
+ </body></html>"));
+ view->show();
+ QTest::qWaitForWindowExposed(view);
+ QTRY_VERIFY(spy.count() == 1);
+
+ QVERIFY(view->focusProxy() != nullptr);
+
+ QMouseEvent evpres(QEvent::MouseButtonPress, view->rect().center(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
+ QGuiApplication::sendEvent(view->focusProxy(), &evpres);
+
+ QTRY_COMPARE(evaluateJavaScriptSync(view->page(), "lastEvent.button").toInt(), 0);
+ QCOMPARE(evaluateJavaScriptSync(view->page(), "lastEvent.buttons").toInt(), 1);
+
+ QMouseEvent evpres2(QEvent::MouseButtonPress, view->rect().center(), Qt::RightButton, Qt::LeftButton | Qt::RightButton, Qt::NoModifier);
+ QGuiApplication::sendEvent(view->focusProxy(), &evpres2);
+
+ QTRY_COMPARE(evaluateJavaScriptSync(view->page(), "lastEvent.button").toInt(), 2);
+ QCOMPARE(evaluateJavaScriptSync(view->page(), "lastEvent.buttons").toInt(), 3);
+
+ delete view;
+}
+
QTEST_MAIN(tst_QWebEnginePage)
#include "tst_qwebenginepage.moc"