diff options
author | Jüri Valdmann <juri.valdmann@qt.io> | 2020-04-28 14:45:18 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2020-08-14 16:34:37 +0200 |
commit | a2a9ea11f95b4a5347f599d8a28151166ad00a71 (patch) | |
tree | 609329b16e7e3febfe600f10c4ec776aa05e9eb2 /tests/auto/quick | |
parent | 4c78cf32fc302a29a61d2fb50551333b5f79051c (diff) |
Move QWebEngineCertificateError to core and use it in QML
Update qml certificate error test.
Task-number: QTBUG-74585
Change-Id: I9383052bd1e37160d03e3d66e8f2e4a749023736
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests/auto/quick')
-rw-r--r-- | tests/auto/quick/certificateerror/testhandler.cpp | 14 | ||||
-rw-r--r-- | tests/auto/quick/certificateerror/testhandler.h | 11 | ||||
-rw-r--r-- | tests/auto/quick/certificateerror/tst_certificateerror.cpp | 31 | ||||
-rw-r--r-- | tests/auto/quick/publicapi/tst_publicapi.cpp | 54 |
4 files changed, 66 insertions, 44 deletions
diff --git a/tests/auto/quick/certificateerror/testhandler.cpp b/tests/auto/quick/certificateerror/testhandler.cpp index 6fb55f44a..cb6710aa3 100644 --- a/tests/auto/quick/certificateerror/testhandler.cpp +++ b/tests/auto/quick/certificateerror/testhandler.cpp @@ -46,16 +46,18 @@ void TestHandler::setLoadSuccess(bool success) } } -QQuickWebEngineCertificateError *TestHandler::certificateError() const +bool TestHandler::loadSuccess() const { - return m_error; + return m_loadSuccess; } -void TestHandler::setCertificateError(QQuickWebEngineCertificateError *error) +QWebEngineCertificateError TestHandler::certificateError() const { - if (m_error == error) - return; - m_error = error; + return *m_error; +} +void TestHandler::setCertificateError(QWebEngineCertificateError error) +{ + m_error = new QWebEngineCertificateError(error); emit certificateErrorChanged(); } diff --git a/tests/auto/quick/certificateerror/testhandler.h b/tests/auto/quick/certificateerror/testhandler.h index d954ed5fc..a6d95d9a9 100644 --- a/tests/auto/quick/certificateerror/testhandler.h +++ b/tests/auto/quick/certificateerror/testhandler.h @@ -29,19 +29,19 @@ #ifndef TESTHANDLER_H #define TESTHANDLER_H -#include <QtWebEngine/private/qquickwebenginecertificateerror_p.h> +#include <QWebEngineCertificateError> class TestHandler : public QObject { Q_OBJECT - Q_PROPERTY(QQuickWebEngineCertificateError *certificateError READ certificateError WRITE + Q_PROPERTY(QWebEngineCertificateError certificateError READ certificateError WRITE setCertificateError NOTIFY certificateErrorChanged) Q_PROPERTY(bool loadSuccess READ loadSuccess WRITE setLoadSuccess NOTIFY loadSuccessChanged) public: explicit TestHandler(QObject *parent = nullptr); - QQuickWebEngineCertificateError *certificateError() const; + QWebEngineCertificateError certificateError() const; - void setCertificateError(QQuickWebEngineCertificateError *error); + void setCertificateError(QWebEngineCertificateError error); void setLoadSuccess(bool success); bool loadSuccess() const; void load(const QUrl &page); @@ -49,9 +49,10 @@ public: signals: void loadPage(const QUrl &page); void certificateErrorChanged(); + void loadSuccessChanged(); private: - QQuickWebEngineCertificateError *m_error = nullptr; + QWebEngineCertificateError *m_error = nullptr; bool m_loadSuccess = false; }; diff --git a/tests/auto/quick/certificateerror/tst_certificateerror.cpp b/tests/auto/quick/certificateerror/tst_certificateerror.cpp index 6201800bd..6652fd511 100644 --- a/tests/auto/quick/certificateerror/tst_certificateerror.cpp +++ b/tests/auto/quick/certificateerror/tst_certificateerror.cpp @@ -28,7 +28,7 @@ #include "testhandler.h" #include <httpsserver.h> #include <util.h> -#include <QtWebEngine/private/qquickwebenginecertificateerror_p.h> +#include <QWebEngineCertificateError> #include <QQuickWebEngineProfile> #include <QQmlApplicationEngine> #include <QQuickWindow> @@ -91,20 +91,37 @@ void tst_CertificateError::handleError() QSignalSpy certificateErrorSpy(m_handler, &TestHandler::certificateErrorChanged); m_handler->load(server.url()); QTRY_COMPARE(certificateErrorSpy.count(), 1); - QQuickWebEngineCertificateError *error = m_handler->certificateError(); - QVERIFY(error); + QWebEngineCertificateError error = m_handler->certificateError(); if (deferError) { - error->defer(); + error.defer(); return; } if (acceptCertificate) - error->ignoreCertificateError(); + error.ignoreCertificateError(); else - error->rejectCertificate(); + error.rejectCertificate(); - QVERIFY(error->overridable()); + QVERIFY(error.isOverridable()); + auto chain = error.certificateChain(); + QCOMPARE(chain.size(), 2); + QCOMPARE(chain[0].serialNumber(), "3b:dd:1a:b7:2f:40:32:3b:c1:bf:37:d4:86:bd:56:c1:d0:6b:2a:43"); + QCOMPARE(chain[1].serialNumber(), "6d:52:fb:b4:57:3b:b2:03:c8:62:7b:7e:44:45:5c:d3:08:87:74:17"); + + if (deferError) { + QVERIFY(error.deferred()); + QVERIFY(!error.answered()); + QVERIFY(!m_handler->loadSuccess()); + + if (acceptCertificate) + error.ignoreCertificateError(); + else + error.rejectCertificate(); + + QVERIFY(error.answered()); + } + QTRY_COMPARE_WITH_TIMEOUT(m_handler->loadSuccess(), acceptCertificate, 3000); } static QByteArrayList params; diff --git a/tests/auto/quick/publicapi/tst_publicapi.cpp b/tests/auto/quick/publicapi/tst_publicapi.cpp index 936d1e948..47ba7b2de 100644 --- a/tests/auto/quick/publicapi/tst_publicapi.cpp +++ b/tests/auto/quick/publicapi/tst_publicapi.cpp @@ -35,6 +35,7 @@ #include <QtTest/QtTest> #include <QtWebEngine/QQuickWebEngineProfile> #include <QtWebEngine/QQuickWebEngineScript> +#include <QtWebEngineCore/QWebEngineCertificateError> #include <QtWebEngineCore/QWebEngineFindTextResult> #include <QtWebEngineCore/QWebEngineNotification> #include <QtWebEngineCore/QWebEngineQuotaRequest> @@ -42,7 +43,6 @@ #include <QtWebEngineCore/QWebEngineContextMenuRequest> #include <private/qquickwebengineview_p.h> #include <private/qquickwebengineaction_p.h> -#include <private/qquickwebenginecertificateerror_p.h> #include <private/qquickwebengineclientcertificateselection_p.h> #include <private/qquickwebenginedialogrequests_p.h> #include <private/qquickwebenginedownloaditem_p.h> @@ -62,7 +62,6 @@ private Q_SLOTS: static const QList<const QMetaObject *> typesToCheck = QList<const QMetaObject *>() << &QQuickWebEngineView::staticMetaObject << &QQuickWebEngineAction::staticMetaObject - << &QQuickWebEngineCertificateError::staticMetaObject << &QQuickWebEngineClientCertificateOption::staticMetaObject << &QQuickWebEngineClientCertificateSelection::staticMetaObject << &QQuickWebEngineDownloadItem::staticMetaObject @@ -83,6 +82,7 @@ static const QList<const QMetaObject *> typesToCheck = QList<const QMetaObject * << &QQuickWebEngineFormValidationMessageRequest::staticMetaObject << &QQuickWebEngineTooltipRequest::staticMetaObject << &QWebEngineContextMenuRequest::staticMetaObject + << &QWebEngineCertificateError::staticMetaObject << &QWebEngineQuotaRequest::staticMetaObject << &QWebEngineRegisterProtocolHandlerRequest::staticMetaObject << &QWebEngineNotification::staticMetaObject @@ -121,29 +121,31 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineAuthenticationDialogRequest.realm --> QString" << "QQuickWebEngineAuthenticationDialogRequest.type --> AuthenticationType" << "QQuickWebEngineAuthenticationDialogRequest.url --> QUrl" - << "QQuickWebEngineCertificateError.CertificateAuthorityInvalid --> Error" - << "QQuickWebEngineCertificateError.CertificateCommonNameInvalid --> Error" - << "QQuickWebEngineCertificateError.CertificateContainsErrors --> Error" - << "QQuickWebEngineCertificateError.CertificateDateInvalid --> Error" - << "QQuickWebEngineCertificateError.CertificateInvalid --> Error" - << "QQuickWebEngineCertificateError.CertificateKnownInterceptionBlocked --> Error" - << "QQuickWebEngineCertificateError.CertificateNameConstraintViolation --> Error" - << "QQuickWebEngineCertificateError.CertificateNoRevocationMechanism --> Error" - << "QQuickWebEngineCertificateError.CertificateNonUniqueName --> Error" - << "QQuickWebEngineCertificateError.CertificateRevoked --> Error" - << "QQuickWebEngineCertificateError.CertificateTransparencyRequired --> Error" - << "QQuickWebEngineCertificateError.CertificateUnableToCheckRevocation --> Error" - << "QQuickWebEngineCertificateError.CertificateValidityTooLong --> Error" - << "QQuickWebEngineCertificateError.CertificateWeakKey --> Error" - << "QQuickWebEngineCertificateError.CertificateWeakSignatureAlgorithm --> Error" - << "QQuickWebEngineCertificateError.SslPinnedKeyNotInCertificateChain --> Error" - << "QQuickWebEngineCertificateError.defer() --> void" - << "QQuickWebEngineCertificateError.description --> QString" - << "QQuickWebEngineCertificateError.error --> Error" - << "QQuickWebEngineCertificateError.ignoreCertificateError() --> void" - << "QQuickWebEngineCertificateError.overridable --> bool" - << "QQuickWebEngineCertificateError.rejectCertificate() --> void" - << "QQuickWebEngineCertificateError.url --> QUrl" + << "QWebEngineCertificateError.CertificateAuthorityInvalid --> Error" + << "QWebEngineCertificateError.CertificateCommonNameInvalid --> Error" + << "QWebEngineCertificateError.CertificateContainsErrors --> Error" + << "QWebEngineCertificateError.CertificateDateInvalid --> Error" + << "QWebEngineCertificateError.CertificateInvalid --> Error" + << "QWebEngineCertificateError.CertificateKnownInterceptionBlocked --> Error" + << "QWebEngineCertificateError.CertificateNameConstraintViolation --> Error" + << "QWebEngineCertificateError.CertificateNoRevocationMechanism --> Error" + << "QWebEngineCertificateError.CertificateNonUniqueName --> Error" + << "QWebEngineCertificateError.CertificateRevoked --> Error" + << "QWebEngineCertificateError.CertificateTransparencyRequired --> Error" + << "QWebEngineCertificateError.CertificateUnableToCheckRevocation --> Error" + << "QWebEngineCertificateError.CertificateValidityTooLong --> Error" + << "QWebEngineCertificateError.CertificateWeakKey --> Error" + << "QWebEngineCertificateError.CertificateWeakSignatureAlgorithm --> Error" + << "QWebEngineCertificateError.SslPinnedKeyNotInCertificateChain --> Error" + << "QWebEngineCertificateError.answered --> bool" + << "QWebEngineCertificateError.deferred --> bool" + << "QWebEngineCertificateError.defer() --> void" + << "QWebEngineCertificateError.description --> QString" + << "QWebEngineCertificateError.error --> Error" + << "QWebEngineCertificateError.ignoreCertificateError() --> void" + << "QWebEngineCertificateError.overridable --> bool" + << "QWebEngineCertificateError.rejectCertificate() --> void" + << "QWebEngineCertificateError.url --> QUrl" << "QQuickWebEngineClientCertificateOption.issuer --> QString" << "QQuickWebEngineClientCertificateOption.subject --> QString" << "QQuickWebEngineClientCertificateOption.effectiveDate --> QDateTime" @@ -687,7 +689,7 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineView.backgroundColorChanged() --> void" << "QQuickWebEngineView.canGoBack --> bool" << "QQuickWebEngineView.canGoForward --> bool" - << "QQuickWebEngineView.certificateError(QQuickWebEngineCertificateError*) --> void" + << "QQuickWebEngineView.certificateError(QWebEngineCertificateError) --> void" << "QQuickWebEngineView.colorDialogRequested(QQuickWebEngineColorDialogRequest*) --> void" << "QQuickWebEngineView.contentsSize --> QSizeF" << "QQuickWebEngineView.contentsSizeChanged(QSizeF) --> void" |