diff options
Diffstat (limited to 'src/webengine/api/qquickwebenginetestsupport.cpp')
-rw-r--r-- | src/webengine/api/qquickwebenginetestsupport.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/webengine/api/qquickwebenginetestsupport.cpp b/src/webengine/api/qquickwebenginetestsupport.cpp index d85e56e59..0bb16ae14 100644 --- a/src/webengine/api/qquickwebenginetestsupport.cpp +++ b/src/webengine/api/qquickwebenginetestsupport.cpp @@ -39,6 +39,34 @@ #include "qquickwebengineloadrequest_p.h" QT_BEGIN_NAMESPACE +using namespace QtWebEngineCore; + +QQuickWebEngineJavaScriptDialog::QQuickWebEngineJavaScriptDialog(QSharedPointer<JavaScriptDialogController> controller) +{ + m_dialogController = controller; +} + +QString QQuickWebEngineJavaScriptDialog::message() const +{ + return m_dialogController->message(); +} + +QString QQuickWebEngineJavaScriptDialog::defaultValue() const +{ + return m_dialogController->defaultPrompt(); +} + +void QQuickWebEngineJavaScriptDialog::reject() +{ + QMetaObject::invokeMethod(m_dialogController.data(), "reject"); +} + +void QQuickWebEngineJavaScriptDialog::accept(const QString &input) +{ + if (!input.isNull()) + QMetaObject::invokeMethod(m_dialogController.data(), "textProvided", Q_ARG(QString, input)); + QMetaObject::invokeMethod(m_dialogController.data(), "accept"); +} QQuickWebEngineErrorPage::QQuickWebEngineErrorPage() { @@ -70,6 +98,28 @@ QQuickWebEngineErrorPage *QQuickWebEngineTestSupport::errorPage() const return m_errorPage.data(); } +void QQuickWebEngineTestSupport::testDialog(QSharedPointer<JavaScriptDialogController> dialogController) +{ + Q_ASSERT(!dialogController.isNull()); + + QQuickWebEngineJavaScriptDialog dialog(dialogController); + switch (dialogController->type()) { + case WebContentsAdapterClient::AlertDialog: + Q_EMIT alertDialog(&dialog); + break; + case WebContentsAdapterClient::ConfirmDialog: + Q_EMIT confirmDialog(&dialog); + break; + case WebContentsAdapterClient::PromptDialog: + Q_EMIT promptDialog(&dialog); + break; + case WebContentsAdapterClient::InternalAuthorizationDialog: + break; + default: + Q_UNREACHABLE(); + } +} + QT_END_NAMESPACE #include "moc_qquickwebenginetestsupport_p.cpp" |