tests/auto/qsslsocket/tst_qsslsocket.cpp
changeset 33 3e2da88830cd
parent 30 5dc02b23752f
child 37 758a864f9613
equal deleted inserted replaced
30:5dc02b23752f 33:3e2da88830cd
    53 
    53 
    54 #include <QNetworkProxy>
    54 #include <QNetworkProxy>
    55 #include <QAuthenticator>
    55 #include <QAuthenticator>
    56 
    56 
    57 #include "private/qhostinfo_p.h"
    57 #include "private/qhostinfo_p.h"
       
    58 #include "private/qsslsocket_openssl_p.h"
    58 
    59 
    59 #include "../network-settings.h"
    60 #include "../network-settings.h"
    60 
    61 
    61 Q_DECLARE_METATYPE(QAbstractSocket::SocketState)
    62 Q_DECLARE_METATYPE(QAbstractSocket::SocketState)
    62 Q_DECLARE_METATYPE(QAbstractSocket::SocketError)
    63 Q_DECLARE_METATYPE(QAbstractSocket::SocketError)
   161     void resetDefaultCiphers();
   162     void resetDefaultCiphers();
   162     void setDefaultCaCertificates();
   163     void setDefaultCaCertificates();
   163     void setDefaultCiphers();
   164     void setDefaultCiphers();
   164     void supportedCiphers();
   165     void supportedCiphers();
   165     void systemCaCertificates();
   166     void systemCaCertificates();
       
   167     void wildcardCertificateNames();
   166     void wildcard();
   168     void wildcard();
   167     void setEmptyKey();
   169     void setEmptyKey();
   168     void spontaneousWrite();
   170     void spontaneousWrite();
   169     void setReadBufferSize();
   171     void setReadBufferSize();
   170     void setReadBufferSize_task_250027();
   172     void setReadBufferSize_task_250027();
  1061     QList<QSslCertificate> certs = QSslSocket::systemCaCertificates();
  1063     QList<QSslCertificate> certs = QSslSocket::systemCaCertificates();
  1062     QVERIFY(certs.size() > 1);
  1064     QVERIFY(certs.size() > 1);
  1063     QCOMPARE(certs, QSslSocket::defaultCaCertificates());
  1065     QCOMPARE(certs, QSslSocket::defaultCaCertificates());
  1064 }
  1066 }
  1065 
  1067 
       
  1068 void tst_QSslSocket::wildcardCertificateNames()
       
  1069 {
       
  1070     // Passing CN matches
       
  1071     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("www.example.com"), QString("www.example.com")), true );
       
  1072     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("www.example.com")), true );
       
  1073     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx*.example.com"), QString("xxxwww.example.com")), true );
       
  1074     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("foo.example.com")), true );
       
  1075 
       
  1076     // Failing CN matches
       
  1077     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx.example.com"), QString("www.example.com")), false );
       
  1078     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www.example.com")), false );
       
  1079     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.*.com"), QString("www.example.com")), false );
       
  1080     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("baa.foo.example.com")), false );
       
  1081     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("baa.example.com")), false );
       
  1082     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.com"), QString("example.com")), false );
       
  1083     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*fail.com"), QString("example.com")), false );
       
  1084     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example.")), false );
       
  1085     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example")), false );
       
  1086     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString(""), QString("www")), false );
       
  1087     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www")), false );
       
  1088 }
       
  1089 
  1066 void tst_QSslSocket::wildcard()
  1090 void tst_QSslSocket::wildcard()
  1067 {
  1091 {
  1068     QSKIP("TODO: solve wildcard problem", SkipAll);
  1092     QSKIP("TODO: solve wildcard problem", SkipAll);
  1069 
  1093 
  1070     if (!QSslSocket::supportsSsl())
  1094     if (!QSslSocket::supportsSsl())