summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-03-04 09:54:26 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2017-03-04 09:54:26 +0000
commit5c847f10affda81210b45fbaa884c2eb46a16604 (patch)
tree2276e0bc37476651b7b90e93dfe64f7d33f01ddd /tests/auto
parent5936b717c375448bbb907f60039c42b133596214 (diff)
parentd058d6c9df1ff866e4259ca2989ad144bb01a1e0 (diff)
Merge "Merge remote-tracking branch 'origin/5.8' into 5.9" into refs/staging/5.9
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/quick/qmltests/qmltests.pro4
-rw-r--r--tests/auto/quick/qquickwebengineview/BLACKLIST3
-rw-r--r--tests/auto/widgets/qwebengineview/BLACKLIST3
-rw-r--r--tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp50
4 files changed, 59 insertions, 1 deletions
diff --git a/tests/auto/quick/qmltests/qmltests.pro b/tests/auto/quick/qmltests/qmltests.pro
index 4d4268324..60c11addc 100644
--- a/tests/auto/quick/qmltests/qmltests.pro
+++ b/tests/auto/quick/qmltests/qmltests.pro
@@ -32,8 +32,8 @@ OTHER_FILES += \
$$PWD/data/prompt.html \
$$PWD/data/multifileupload.html \
$$PWD/data/redirect.html \
+ $$PWD/data/script-with-metadata.js \
$$PWD/data/singlefileupload.html \
- $$PWD/data/small-favicon.png \
$$PWD/data/test1.html \
$$PWD/data/test2.html \
$$PWD/data/test3.html \
@@ -41,6 +41,7 @@ OTHER_FILES += \
$$PWD/data/keyboardModifierMapping.html \
$$PWD/data/keyboardEvents.html \
$$PWD/data/titleupdate.js \
+ $$PWD/data/tst_activeFocusOnPress.qml \
$$PWD/data/tst_desktopBehaviorLoadHtml.qml \
$$PWD/data/tst_download.qml \
$$PWD/data/tst_favicon.qml \
@@ -72,6 +73,7 @@ OTHER_FILES += \
$$PWD/data/tst_settings.qml \
$$PWD/data/tst_keyboardModifierMapping.qml \
$$PWD/data/tst_keyboardEvents.qml \
+ $$PWD/data/webchannel-test.html \
$$PWD/data/icons/favicon.png \
$$PWD/data/icons/gray128.png \
$$PWD/data/icons/gray16.png \
diff --git a/tests/auto/quick/qquickwebengineview/BLACKLIST b/tests/auto/quick/qquickwebengineview/BLACKLIST
index 2cde59454..6cfd71635 100644
--- a/tests/auto/quick/qquickwebengineview/BLACKLIST
+++ b/tests/auto/quick/qquickwebengineview/BLACKLIST
@@ -3,3 +3,6 @@ windows
[inputEventForwardingDisabledWhenActiveFocusOnPressDisabled]
*
+
+[changeLocale]
+windows
diff --git a/tests/auto/widgets/qwebengineview/BLACKLIST b/tests/auto/widgets/qwebengineview/BLACKLIST
index 0a909d0f6..d249ac141 100644
--- a/tests/auto/widgets/qwebengineview/BLACKLIST
+++ b/tests/auto/widgets/qwebengineview/BLACKLIST
@@ -1,2 +1,5 @@
[doNotSendMouseKeyboardEventsWhenDisabled]
windows
+[changeLocale]
+windows
+linux
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
index 8057b5beb..e51171437 100644
--- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
+++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
@@ -87,6 +87,7 @@ private Q_SLOTS:
void stopSettingFocusWhenDisabled_data();
void focusOnNavigation_data();
void focusOnNavigation();
+ void focusInternalRenderWidgetHostViewQuickItem();
void changeLocale();
void inputMethodsTextFormat_data();
@@ -858,11 +859,60 @@ void tst_QWebEngineView::focusOnNavigation()
webView->setFocus();
QTRY_COMPARE(webView->hasFocus(), true);
+
// Clean up.
#undef loadAndTriggerFocusAndCompare
#undef triggerJavascriptFocus
}
+void tst_QWebEngineView::focusInternalRenderWidgetHostViewQuickItem()
+{
+ // Create a container widget, that will hold a line edit that has initial focus, and a web
+ // engine view.
+ QScopedPointer<QWidget> containerWidget(new QWidget);
+ QLineEdit *label = new QLineEdit;
+ label->setText(QString::fromLatin1("Text"));
+ label->setFocus();
+
+ // Create the web view, and set its focusOnNavigation property to false, so it doesn't
+ // get initial focus.
+ QWebEngineView *webView = new QWebEngineView;
+ QWebEngineSettings *settings = webView->page()->settings();
+ settings->setAttribute(QWebEngineSettings::FocusOnNavigationEnabled, false);
+ webView->resize(300, 300);
+
+ QHBoxLayout *layout = new QHBoxLayout;
+ layout->addWidget(label);
+ layout->addWidget(webView);
+
+ containerWidget->setLayout(layout);
+ containerWidget->show();
+ QTest::qWaitForWindowExposed(containerWidget.data());
+
+ // Load the content, and check that focus is not set.
+ QSignalSpy loadSpy(webView, SIGNAL(loadFinished(bool)));
+ webView->setHtml("<html><head><title>Title</title></head><body>Hello"
+ "<input id=\"input\" type=\"text\"></body></html>");
+ QTRY_COMPARE(loadSpy.count(), 1);
+ QTRY_COMPARE(webView->hasFocus(), false);
+
+ // Manually trigger focus.
+ webView->setFocus();
+
+ // Check that focus is set in QWebEngineView and all internal classes.
+ QTRY_COMPARE(webView->hasFocus(), true);
+
+ QQuickWidget *renderWidgetHostViewQtDelegateWidget =
+ qobject_cast<QQuickWidget *>(webView->focusProxy());
+ QVERIFY(renderWidgetHostViewQtDelegateWidget);
+ QTRY_COMPARE(renderWidgetHostViewQtDelegateWidget->hasFocus(), true);
+
+ QQuickItem *renderWidgetHostViewQuickItem =
+ renderWidgetHostViewQtDelegateWidget->rootObject();
+ QVERIFY(renderWidgetHostViewQuickItem);
+ QTRY_COMPARE(renderWidgetHostViewQuickItem->hasFocus(), true);
+}
+
void tst_QWebEngineView::changeLocale()
{
QStringList errorLines;