summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/ssl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/network/ssl')
-rwxr-xr-xtests/auto/network/ssl/qsslcertificate/certificates/gencertificates.sh4
-rw-r--r--tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp8
-rw-r--r--tests/auto/network/ssl/qsslcipher/tst_qsslcipher.cpp4
-rw-r--r--tests/auto/network/ssl/qsslerror/tst_qsslerror.cpp4
-rwxr-xr-xtests/auto/network/ssl/qsslkey/keys/genkeys.sh4
-rw-r--r--tests/auto/network/ssl/qsslkey/qsslkey.pro1
-rw-r--r--tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp4
-rw-r--r--tests/auto/network/ssl/qsslsocket/qsslsocket.pro1
-rw-r--r--tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp118
-rw-r--r--tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/tst_qsslsocket_onDemandCertificates_member.cpp4
-rw-r--r--tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/tst_qsslsocket_onDemandCertificates_static.cpp4
11 files changed, 115 insertions, 41 deletions
diff --git a/tests/auto/network/ssl/qsslcertificate/certificates/gencertificates.sh b/tests/auto/network/ssl/qsslcertificate/certificates/gencertificates.sh
index 915bf796b1..3570471d73 100755
--- a/tests/auto/network/ssl/qsslcertificate/certificates/gencertificates.sh
+++ b/tests/auto/network/ssl/qsslcertificate/certificates/gencertificates.sh
@@ -2,8 +2,7 @@
#############################################################################
##
## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-## All rights reserved.
-## Contact: Nokia Corporation (qt-info@nokia.com)
+## Contact: http://www.qt-project.org/
##
## This file is the build configuration utility of the Qt Toolkit.
##
@@ -36,6 +35,7 @@
##
##
##
+##
## $QT_END_LICENSE$
##
#############################################################################
diff --git a/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp
index a2fab2b479..8003ad1932 100644
--- a/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp
+++ b/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
@@ -862,11 +862,11 @@ void tst_QSslCertificate::toText()
// Openssl's cert dump method changed slightly between 0.9.8 and 1.0.0 versions, so we want it to match any output
QFile fOld(SRCDIR "more-certificates/cert-large-expiration-date.txt.0.9.8");
- QVERIFY(fOld.open(QIODevice::ReadOnly));
+ QVERIFY(fOld.open(QIODevice::ReadOnly | QFile::Text));
QByteArray txtOld = fOld.readAll();
QFile fNew(SRCDIR "more-certificates/cert-large-expiration-date.txt.1.0.0");
- QVERIFY(fNew.open(QIODevice::ReadOnly));
+ QVERIFY(fNew.open(QIODevice::ReadOnly | QFile::Text));
QByteArray txtNew = fNew.readAll();
QVERIFY(txtOld == cert.toText() || txtNew == cert.toText());
}
diff --git a/tests/auto/network/ssl/qsslcipher/tst_qsslcipher.cpp b/tests/auto/network/ssl/qsslcipher/tst_qsslcipher.cpp
index 89b735aed3..25d5f00e95 100644
--- a/tests/auto/network/ssl/qsslcipher/tst_qsslcipher.cpp
+++ b/tests/auto/network/ssl/qsslcipher/tst_qsslcipher.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/network/ssl/qsslerror/tst_qsslerror.cpp b/tests/auto/network/ssl/qsslerror/tst_qsslerror.cpp
index 481d73650b..e57c5fa7f4 100644
--- a/tests/auto/network/ssl/qsslerror/tst_qsslerror.cpp
+++ b/tests/auto/network/ssl/qsslerror/tst_qsslerror.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/network/ssl/qsslkey/keys/genkeys.sh b/tests/auto/network/ssl/qsslkey/keys/genkeys.sh
index 087a3a64b9..e82dc57e28 100755
--- a/tests/auto/network/ssl/qsslkey/keys/genkeys.sh
+++ b/tests/auto/network/ssl/qsslkey/keys/genkeys.sh
@@ -2,8 +2,7 @@
#############################################################################
##
## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-## All rights reserved.
-## Contact: Nokia Corporation (qt-info@nokia.com)
+## Contact: http://www.qt-project.org/
##
## This file is the build configuration utility of the Qt Toolkit.
##
@@ -36,6 +35,7 @@
##
##
##
+##
## $QT_END_LICENSE$
##
#############################################################################
diff --git a/tests/auto/network/ssl/qsslkey/qsslkey.pro b/tests/auto/network/ssl/qsslkey/qsslkey.pro
index d882362290..4af35487cd 100644
--- a/tests/auto/network/ssl/qsslkey/qsslkey.pro
+++ b/tests/auto/network/ssl/qsslkey/qsslkey.pro
@@ -25,5 +25,4 @@ wince* {
DEFINES += SRCDIR=\\\".\\\"
} else {
DEFINES+= SRCDIR=\\\"$$PWD\\\"
- TARGET.CAPABILITY = NetworkServices
}
diff --git a/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp b/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp
index cf1489c76c..f59f0bb5a9 100644
--- a/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp
+++ b/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/network/ssl/qsslsocket/qsslsocket.pro b/tests/auto/network/ssl/qsslsocket/qsslsocket.pro
index 2739a7eb25..a8763d69af 100644
--- a/tests/auto/network/ssl/qsslsocket/qsslsocket.pro
+++ b/tests/auto/network/ssl/qsslsocket/qsslsocket.pro
@@ -17,7 +17,6 @@ win32 {
# OpenSSL support
contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) {
- include($$QT_SOURCE_TREE/config.tests/unix/openssl/openssl.pri)
# Add optional SSL libs
LIBS += $$OPENSSL_LIBS
}
diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
index 96aea6a4e5..83060e27e4 100644
--- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
@@ -192,10 +192,12 @@ private slots:
void readFromClosedSocket();
void writeBigChunk();
void blacklistedCertificates();
- void setEmptyDefaultConfiguration();
void versionAccessors();
void sslOptions();
void encryptWithoutConnecting();
+ void resume_data();
+ void resume();
+ void setEmptyDefaultConfiguration(); // this test should be last
static void exitLoop()
{
@@ -1320,8 +1322,8 @@ void tst_QSslSocket::wildcard()
QVERIFY2(socket->waitForEncrypted(3000), qPrintable(socket->errorString()));
QSslCertificate certificate = socket->peerCertificate();
- QCOMPARE(certificate.subjectInfo(QSslCertificate::CommonName), QString(QtNetworkSettings::serverLocalName() + ".*." + QtNetworkSettings::serverDomainName()));
- QCOMPARE(certificate.issuerInfo(QSslCertificate::CommonName), QtNetworkSettings::serverName());
+ QVERIFY(certificate.subjectInfo(QSslCertificate::CommonName).contains(QString(QtNetworkSettings::serverLocalName() + ".*." + QtNetworkSettings::serverDomainName())));
+ QVERIFY(certificate.issuerInfo(QSslCertificate::CommonName).contains(QtNetworkSettings::serverName()));
socket->close();
}
@@ -2058,22 +2060,6 @@ void tst_QSslSocket::blacklistedCertificates()
QCOMPARE(sslErrors.at(0).error(), QSslError::CertificateBlacklisted);
}
-void tst_QSslSocket::setEmptyDefaultConfiguration()
-{
- // used to produce a crash in QSslConfigurationPrivate::deepCopyDefaultConfiguration, QTBUG-13265
-
- if (!QSslSocket::supportsSsl())
- return;
-
- QSslConfiguration emptyConf;
- QSslConfiguration::setDefaultConfiguration(emptyConf);
-
- QSslSocketPtr socket = newSocket();
- connect(socket, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(ignoreErrorSlot()));
- socket->connectToHostEncrypted(QtNetworkSettings::serverName(), 443);
- QVERIFY2(!socket->waitForEncrypted(4000), qPrintable(socket->errorString()));
-}
-
void tst_QSslSocket::versionAccessors()
{
if (!QSslSocket::supportsSsl())
@@ -2141,7 +2127,97 @@ void tst_QSslSocket::encryptWithoutConnecting()
sock.startClientEncryption();
}
+void tst_QSslSocket::resume_data()
+{
+ QTest::addColumn<bool>("ignoreErrorsAfterPause");
+ QTest::addColumn<QList<QSslError> >("errorsToIgnore");
+ QTest::addColumn<bool>("expectSuccess");
+
+ QList<QSslError> errorsList;
+ QTest::newRow("DoNotIgnoreErrors") << false << QList<QSslError>() << false;
+ QTest::newRow("ignoreAllErrors") << true << QList<QSslError>() << true;
+
+ QList<QSslCertificate> certs = QSslCertificate::fromPath(QLatin1String(SRCDIR "certs/qt-test-server-cacert.pem"));
+ QSslError rightError(QSslError::SelfSignedCertificate, certs.at(0));
+ QSslError wrongError(QSslError::SelfSignedCertificate);
+ errorsList.append(wrongError);
+ QTest::newRow("ignoreSpecificErrors-Wrong") << true << errorsList << false;
+ errorsList.clear();
+ errorsList.append(rightError);
+ QTest::newRow("ignoreSpecificErrors-Right") << true << errorsList << true;
+}
+
+void tst_QSslSocket::resume()
+{
+ // make sure the server certificate is not in the list of accepted certificates,
+ // we want to trigger the sslErrors signal
+ QSslSocket::setDefaultCaCertificates(QSslSocket::systemCaCertificates());
+
+ QFETCH(bool, ignoreErrorsAfterPause);
+ QFETCH(QList<QSslError>, errorsToIgnore);
+ QFETCH(bool, expectSuccess);
+
+ QSslSocket socket;
+ socket.setPauseMode(QAbstractSocket::PauseOnNotify);
+
+ QSignalSpy sslErrorSpy(&socket, SIGNAL(sslErrors(QList<QSslError>)));
+ QSignalSpy encryptedSpy(&socket, SIGNAL(encrypted()));
+ QSignalSpy errorSpy(&socket, SIGNAL(error(QAbstractSocket::SocketError)));
+
+ connect(&socket, SIGNAL(sslErrors(QList<QSslError>)), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ connect(&socket, SIGNAL(encrypted()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ connect(&socket, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
+ this, SLOT(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
+ connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)), &QTestEventLoop::instance(), SLOT(exitLoop()));
+
+ socket.connectToHostEncrypted(QtNetworkSettings::serverName(), 993);
+ QTestEventLoop::instance().enterLoop(10);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+ QCOMPARE(sslErrorSpy.count(), 1);
+ QCOMPARE(errorSpy.count(), 0);
+ QCOMPARE(encryptedSpy.count(), 0);
+ QVERIFY(!socket.isEncrypted());
+ if (ignoreErrorsAfterPause) {
+ if (errorsToIgnore.empty())
+ socket.ignoreSslErrors();
+ else
+ socket.ignoreSslErrors(errorsToIgnore);
+ }
+ socket.resume();
+ QTestEventLoop::instance().enterLoop(10);
+ QVERIFY(!QTestEventLoop::instance().timeout()); // quit by encrypted() or error() signal
+ if (expectSuccess) {
+ QCOMPARE(encryptedSpy.count(), 1);
+ QVERIFY(socket.isEncrypted());
+ QCOMPARE(errorSpy.count(), 0);
+ socket.disconnectFromHost();
+ QVERIFY(socket.waitForDisconnected(10000));
+ } else {
+ QCOMPARE(encryptedSpy.count(), 0);
+ QVERIFY(!socket.isEncrypted());
+ QCOMPARE(errorSpy.count(), 1);
+ QCOMPARE(socket.error(), QAbstractSocket::SslHandshakeFailedError);
+ }
+}
+
+void tst_QSslSocket::setEmptyDefaultConfiguration() // this test should be last, as it has some side effects
+{
+ // used to produce a crash in QSslConfigurationPrivate::deepCopyDefaultConfiguration, QTBUG-13265
+
+ if (!QSslSocket::supportsSsl())
+ return;
+
+ QSslConfiguration emptyConf;
+ QSslConfiguration::setDefaultConfiguration(emptyConf);
+
+ QSslSocketPtr socket = newSocket();
+ connect(socket, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(ignoreErrorSlot()));
+ socket->connectToHostEncrypted(QtNetworkSettings::serverName(), 443);
+ QVERIFY2(!socket->waitForEncrypted(4000), qPrintable(socket->errorString()));
+}
+
#endif // QT_NO_OPENSSL
QTEST_MAIN(tst_QSslSocket)
+
#include "tst_qsslsocket.moc"
diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/tst_qsslsocket_onDemandCertificates_member.cpp b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/tst_qsslsocket_onDemandCertificates_member.cpp
index d331658fc8..bc0e04a1f2 100644
--- a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/tst_qsslsocket_onDemandCertificates_member.cpp
+++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/tst_qsslsocket_onDemandCertificates_member.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/tst_qsslsocket_onDemandCertificates_static.cpp b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/tst_qsslsocket_onDemandCertificates_static.cpp
index 4c76a44ac1..dd01733fbe 100644
--- a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/tst_qsslsocket_onDemandCertificates_static.cpp
+++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/tst_qsslsocket_onDemandCertificates_static.cpp
@@ -1,8 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
@@ -35,6 +34,7 @@
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/