diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2017-03-03 10:31:57 +0100 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2017-03-08 09:37:19 +0000 |
commit | dc3eab2af2a7da6a896f5b2391254c609a14b8ff (patch) | |
tree | 43bcf7aff4a176b69ce8945eb0b36db28974a79b | |
parent | 44cb79ed88152d93d418b0ee1c101da8e05069a7 (diff) |
Rework form validation QML tests
Use Custom Dialog API instead of Test Support API for testing form
validation messages. Moreover, remove the form validation part from the
Test Support API.
Change-Id: I8ecc80745ddad26f90df413d9a1d04045512af6c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r-- | src/webengine/api/qquickwebenginetestsupport_p.h | 1 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 4 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/data/tst_formValidation.qml | 107 |
3 files changed, 57 insertions, 55 deletions
diff --git a/src/webengine/api/qquickwebenginetestsupport_p.h b/src/webengine/api/qquickwebenginetestsupport_p.h index cb24a9c0b..cca8d1df4 100644 --- a/src/webengine/api/qquickwebenginetestsupport_p.h +++ b/src/webengine/api/qquickwebenginetestsupport_p.h @@ -82,7 +82,6 @@ public: QQuickWebEngineErrorPage *errorPage() const; Q_SIGNALS: - void validationMessageShown(const QString &mainText, const QString &subText); void windowCloseRejected(); void loadVisuallyCommitted(); diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 1cc0969ef..60fb5d0a5 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -1113,10 +1113,6 @@ void QQuickWebEngineViewPrivate::didPrintPageToPdf(const QString &filePath, bool void QQuickWebEngineViewPrivate::showValidationMessage(const QRect &anchor, const QString &mainText, const QString &subText) { -#ifdef ENABLE_QML_TESTSUPPORT_API - if (m_testSupport) - Q_EMIT m_testSupport->validationMessageShown(mainText, subText); -#endif Q_Q(QQuickWebEngineView); QQuickWebEngineFormValidationMessageRequest *request; request = new QQuickWebEngineFormValidationMessageRequest(QQuickWebEngineFormValidationMessageRequest::Show, diff --git a/tests/auto/quick/qmltests/data/tst_formValidation.qml b/tests/auto/quick/qmltests/data/tst_formValidation.qml index cae41821c..182a2eaa9 100644 --- a/tests/auto/quick/qmltests/data/tst_formValidation.qml +++ b/tests/auto/quick/qmltests/data/tst_formValidation.qml @@ -28,22 +28,17 @@ import QtQuick 2.0 import QtTest 1.0 -import QtWebEngine 1.2 -import QtWebEngine.testsupport 1.0 +import QtWebEngine 1.4 TestWebEngineView { id: webEngineView width: 400 height: 300 - testSupport: WebEngineTestSupport { - id: testSupportAPI - } - SignalSpy { - id: showSpy - target: testSupportAPI - signalName: "validationMessageShown" + id: formValidationMessageRequestSpy + target: webEngineView + signalName: "formValidationMessageRequested" } TestCase { @@ -51,63 +46,75 @@ TestWebEngineView { when: windowShown function init() { - webEngineView.url = Qt.resolvedUrl("about:blank") - verify(webEngineView.waitForLoadSucceeded()) - showSpy.clear() + webEngineView.url = Qt.resolvedUrl("about:blank"); + verify(webEngineView.waitForLoadSucceeded()); + formValidationMessageRequestSpy.clear(); } function test_urlForm() { - webEngineView.url = Qt.resolvedUrl("forms.html#url_empty") - verify(webEngineView.waitForLoadSucceeded()) - keyPress(Qt.Key_Enter) - showSpy.wait() - compare(showSpy.signalArguments[0][0], "Please fill out this field.") + webEngineView.url = Qt.resolvedUrl("forms.html#url_empty"); + verify(webEngineView.waitForLoadSucceeded()); + keyPress(Qt.Key_Enter); + formValidationMessageRequestSpy.wait(); + compare(formValidationMessageRequestSpy.signalArguments[0][0].type, FormValidationMessageRequest.Show); + compare(formValidationMessageRequestSpy.signalArguments[0][0].text, "Please fill out this field."); - webEngineView.url = Qt.resolvedUrl("about:blank") - verify(webEngineView.waitForLoadSucceeded()) + webEngineView.url = Qt.resolvedUrl("about:blank"); + verify(webEngineView.waitForLoadSucceeded()); + formValidationMessageRequestSpy.wait(); + compare(formValidationMessageRequestSpy.signalArguments[1][0].type, FormValidationMessageRequest.Hide); - webEngineView.url = Qt.resolvedUrl("forms.html#url_invalid") - verify(webEngineView.waitForLoadSucceeded()) - keyPress(Qt.Key_Enter) - showSpy.wait() - compare(showSpy.signalArguments[1][0], "Please enter a URL.") + webEngineView.url = Qt.resolvedUrl("forms.html#url_invalid"); + verify(webEngineView.waitForLoadSucceeded()); + keyPress(Qt.Key_Enter); + formValidationMessageRequestSpy.wait(); + compare(formValidationMessageRequestSpy.signalArguments[2][0].type, FormValidationMessageRequest.Show); + compare(formValidationMessageRequestSpy.signalArguments[2][0].text, "Please enter a URL."); } function test_emailForm() { - webEngineView.url = Qt.resolvedUrl("forms.html#email_empty") - verify(webEngineView.waitForLoadSucceeded()) - keyPress(Qt.Key_Enter) - showSpy.wait() - compare(showSpy.signalArguments[0][0], "Please fill out this field.") + webEngineView.url = Qt.resolvedUrl("forms.html#email_empty"); + verify(webEngineView.waitForLoadSucceeded()); + keyPress(Qt.Key_Enter); + formValidationMessageRequestSpy.wait(); + compare(formValidationMessageRequestSpy.signalArguments[0][0].type, FormValidationMessageRequest.Show); + compare(formValidationMessageRequestSpy.signalArguments[0][0].text, "Please fill out this field."); - webEngineView.url = Qt.resolvedUrl("about:blank") - verify(webEngineView.waitForLoadSucceeded()) + webEngineView.url = Qt.resolvedUrl("about:blank"); + verify(webEngineView.waitForLoadSucceeded()); + formValidationMessageRequestSpy.wait(); + compare(formValidationMessageRequestSpy.signalArguments[1][0].type, FormValidationMessageRequest.Hide); - webEngineView.url = Qt.resolvedUrl("forms.html#email_invalid") - verify(webEngineView.waitForLoadSucceeded()) - keyPress(Qt.Key_Enter) - showSpy.wait() - compare(showSpy.signalArguments[1][0], "Please include an '@' in the email address. 'invalid' is missing an '@'.") + webEngineView.url = Qt.resolvedUrl("forms.html#email_invalid"); + verify(webEngineView.waitForLoadSucceeded()); + keyPress(Qt.Key_Enter); + formValidationMessageRequestSpy.wait(); + compare(formValidationMessageRequestSpy.signalArguments[2][0].type, FormValidationMessageRequest.Show); + compare(formValidationMessageRequestSpy.signalArguments[2][0].text, "Please include an '@' in the email address. 'invalid' is missing an '@'."); } function test_textForm() { - webEngineView.url = Qt.resolvedUrl("forms.html#input_empty") - verify(webEngineView.waitForLoadSucceeded()) - keyPress(Qt.Key_Enter) - showSpy.wait() - compare(showSpy.signalArguments[0][0], "Please fill out this field.") + webEngineView.url = Qt.resolvedUrl("forms.html#input_empty"); + verify(webEngineView.waitForLoadSucceeded()); + keyPress(Qt.Key_Enter); + formValidationMessageRequestSpy.wait(); + compare(formValidationMessageRequestSpy.signalArguments[0][0].type, FormValidationMessageRequest.Show); + compare(formValidationMessageRequestSpy.signalArguments[0][0].text, "Please fill out this field."); // Title should be shown for pattern mismatch only - compare(showSpy.signalArguments[0][1], "") + compare(formValidationMessageRequestSpy.signalArguments[0][0].subText, ""); - webEngineView.url = Qt.resolvedUrl("about:blank") - verify(webEngineView.waitForLoadSucceeded()) + webEngineView.url = Qt.resolvedUrl("about:blank"); + verify(webEngineView.waitForLoadSucceeded()); + formValidationMessageRequestSpy.wait(); + compare(formValidationMessageRequestSpy.signalArguments[1][0].type, FormValidationMessageRequest.Hide); - webEngineView.url = Qt.resolvedUrl("forms.html#lorem_ipsum") - verify(webEngineView.waitForLoadSucceeded()) - keyPress(Qt.Key_Enter) - showSpy.wait() - compare(showSpy.signalArguments[1][0], "Please match the requested format.") - compare(showSpy.signalArguments[1][1], "Should type 'Lorem ipsum'") + webEngineView.url = Qt.resolvedUrl("forms.html#lorem_ipsum"); + verify(webEngineView.waitForLoadSucceeded()); + keyPress(Qt.Key_Enter); + formValidationMessageRequestSpy.wait(); + compare(formValidationMessageRequestSpy.signalArguments[2][0].type, FormValidationMessageRequest.Show); + compare(formValidationMessageRequestSpy.signalArguments[2][0].text, "Please match the requested format."); + compare(formValidationMessageRequestSpy.signalArguments[2][0].subText, "Should type 'Lorem ipsum'"); } } } |