diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-08-03 01:00:16 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2018-08-07 17:44:51 +0200 |
commit | 053e7cce79d4bef99ec85101b0d22bbb171072c5 (patch) | |
tree | c2059e82cccdea1fd0024c5942d1a834c28d39da /tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp | |
parent | a420d02538d28854914a6978c9637a0ddd652146 (diff) | |
parent | f271dd8f960ad9f61697dfa57b26c4071441cadc (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Conflicts:
.qmake.conf
src/corelib/doc/src/objectmodel/signalsandslots.qdoc
src/plugins/platforms/cocoa/qcocoamenuloader.mm
src/plugins/platforms/xcb/qxcbconnection.cpp
src/plugins/platforms/xcb/qxcbconnection.h
src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
src/plugins/platforms/xcb/qxcbwindow.cpp
tests/auto/gui/image/qimage/tst_qimage.cpp
Done-with: Gatis Paeglis <gatis.paeglis@qt.io>
Change-Id: I9bd24ee9b00d4f26c8f344ce3970aa6e93935ff5
Diffstat (limited to 'tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp')
-rw-r--r-- | tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 76c9dd8361..30b41da515 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -393,6 +393,7 @@ private Q_SLOTS: void ignoreSslErrorsListWithSlot_data(); void ignoreSslErrorsListWithSlot(); void encrypted(); + void abortOnEncrypted(); void sslConfiguration_data(); void sslConfiguration(); #ifdef QT_BUILD_INTERNAL @@ -6365,6 +6366,37 @@ void tst_QNetworkReply::encrypted() reply->deleteLater(); } +void tst_QNetworkReply::abortOnEncrypted() +{ + SslServer server; + server.listen(); + if (!server.isListening()) + QSKIP("Server fails to listen. Skipping since QTcpServer is covered in another test."); + + server.connect(&server, &SslServer::newEncryptedConnection, [&server]() { + connect(server.socket, &QTcpSocket::readyRead, server.socket, []() { + // This slot must not be invoked! + QVERIFY(false); + }); + }); + + QNetworkAccessManager nm; + QNetworkReply *reply = nm.get(QNetworkRequest(QUrl(QString("https://localhost:%1").arg(server.serverPort())))); + reply->ignoreSslErrors(); + + connect(reply, &QNetworkReply::encrypted, [reply, &nm]() { + reply->abort(); + nm.clearConnectionCache(); + }); + + QSignalSpy spyEncrypted(reply, &QNetworkReply::encrypted); + QTRY_COMPARE(spyEncrypted.count(), 1); + + // Wait for the socket to be closed again in order to be sure QTcpSocket::readyRead would have been emitted. + QTRY_VERIFY(server.socket != nullptr); + QTRY_COMPARE(server.socket->state(), QAbstractSocket::UnconnectedState); +} + void tst_QNetworkReply::sslConfiguration() { QNetworkRequest request(QUrl("https://" + QtNetworkSettings::httpServerName() + "/index.html")); |