summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-08-03 01:00:16 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2018-08-07 17:44:51 +0200
commit053e7cce79d4bef99ec85101b0d22bbb171072c5 (patch)
treec2059e82cccdea1fd0024c5942d1a834c28d39da /tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
parenta420d02538d28854914a6978c9637a0ddd652146 (diff)
parentf271dd8f960ad9f61697dfa57b26c4071441cadc (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.cpp32
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"));