diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2020-05-08 12:52:25 +0200 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2020-05-08 18:11:03 +0200 |
commit | 920487bf6b4d06ce9fef82e99e262ee0dd7d2ea3 (patch) | |
tree | 46d5e10bdffc3540ce6f4737c5711b2168121483 /tests | |
parent | f579be96f7ad0362220f710a03a390d1c1139c52 (diff) |
QSslSocket::setSslSonfiguration - set d.configuration properly
We end up with an absurd situation:
QSslConfiguration conf;
//we set CA certs so that on demand loading is disabled:
conf.setCaCertificates({...});
QSslSocket s;
s.setSslConfiguration(conf);
Q_ASSERT(conf == s.sslConfiguration); // this assert fails.
Pick-to: 5.15
Change-Id: I272bed145434082acc6ead95fe3640d222b21131
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp index 8b5b4156bb..79bd4994db 100644 --- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp @@ -151,6 +151,7 @@ public slots: #ifndef QT_NO_SSL private slots: void constructing(); + void configNoOnDemandLoad(); void simpleConnect(); void simpleConnectWithIgnore(); @@ -590,6 +591,25 @@ void tst_QSslSocket::constructing() QSslConfiguration::setDefaultConfiguration(savedDefault); } +void tst_QSslSocket::configNoOnDemandLoad() +{ + QFETCH_GLOBAL(bool, setProxy); + if (setProxy) + return; // NoProxy is enough. + + // We noticed a peculiar situation, where a configuration + // set on a socket is not equal to the configuration we + // get back from the socket afterwards. + auto customConfig = QSslConfiguration::defaultConfiguration(); + // Setting CA certificates disables loading root certificates + // during verification: + customConfig.setCaCertificates(customConfig.caCertificates()); + + QSslSocket socket; + socket.setSslConfiguration(customConfig); + QCOMPARE(customConfig, socket.sslConfiguration()); +} + void tst_QSslSocket::simpleConnect() { if (!QSslSocket::supportsSsl()) |