summaryrefslogtreecommitdiffstats
path: root/tests/auto/network
diff options
context:
space:
mode:
authorAlbert Astals Cid <albert.astals.cid@kdab.com>2017-08-25 16:39:25 +0200
committerAlbert Astals Cid <albert.astals.cid@kdab.com>2017-09-01 15:09:14 +0000
commit6e18293299606d9d87e4567b712a83fe59c420fc (patch)
treecccc9ffc713d5cc91ef0b8f33210b0a7395e38cc /tests/auto/network
parenta72513cab7cdfac638ef572838277aa062f1d296 (diff)
Forward the readChannelFinished from the plain socket to the ssl socket
Task-number: QTBUG-62257 Change-Id: I12632b7ffd2012adc99b4784892cbb6f79e065f7 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Diffstat (limited to 'tests/auto/network')
-rw-r--r--tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
index 8a8522760c..1545743ee9 100644
--- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
@@ -237,6 +237,7 @@ private slots:
void ephemeralServerKey();
void allowedProtocolNegotiation();
void pskServer();
+ void forwardReadChannelFinished();
#endif
void setEmptyDefaultConfiguration(); // this test should be last
@@ -3771,6 +3772,28 @@ void tst_QSslSocket::pskServer()
QCOMPARE(disconnectedSpy.count(), 1);
}
+void tst_QSslSocket::forwardReadChannelFinished()
+{
+ if (!QSslSocket::supportsSsl())
+ QSKIP("Needs SSL");
+ QFETCH_GLOBAL(bool, setProxy);
+ if (setProxy)
+ QSKIP("This test doesn't work via a proxy");
+
+ QSslSocket socket;
+ QSignalSpy readChannelFinishedSpy(&socket, &QAbstractSocket::readChannelFinished);
+ connect(&socket, &QSslSocket::encrypted, [&socket]() {
+ const auto data = QString("GET /ip HTTP/1.0\r\nHost: %1\r\n\r\nAccept: */*\r\n\r\n")
+ .arg(QtNetworkSettings::serverLocalName()).toUtf8();
+ socket.write(data);
+ });
+ connect(&socket, &QSslSocket::readChannelFinished,
+ &QTestEventLoop::instance(), &QTestEventLoop::exitLoop);
+ socket.connectToHostEncrypted(QtNetworkSettings::serverLocalName(), 443);
+ enterLoop(10);
+ QVERIFY(readChannelFinishedSpy.count());
+}
+
#endif // QT_NO_OPENSSL
#endif // QT_NO_SSL