From 1cf971b99c85614edaccd86356700ad5de6837ea Mon Sep 17 00:00:00 2001 From: Richard Moore Date: Fri, 24 Jun 2011 21:40:52 +0100 Subject: Add a test for multiple CNs and fix the rest of the tests for the API ... change. Add a new test for the support for repeated entries in the subject and issuer. Fix the rest of the tests to pass with the new API. Change-Id: I25fa84089e4aff5f15f53858171ce98b7fbf9dd7 Merge-request: 5 Reviewed-on: http://codereview.qt.nokia.com/798 Reviewed-by: Sergio Ahumada --- tests/auto/qsslcertificate/tst_qsslcertificate.cpp | 40 ++++++++++++++-------- 1 file changed, 26 insertions(+), 14 deletions(-) (limited to 'tests/auto/qsslcertificate/tst_qsslcertificate.cpp') diff --git a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp index 17f8b77f6a..e95af1e97c 100644 --- a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp +++ b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp @@ -114,6 +114,7 @@ private slots: void largeExpirationDate(); void blacklistedCertificates(); void toText(); + void multipleCommonNames(); // ### add tests for certificate bundles (multiple certificates concatenated into a single // structure); both PEM and DER formatted @@ -195,8 +196,8 @@ void tst_QSslCertificate::emptyConstructor() QCOMPARE(certificate.version() , QByteArray()); QCOMPARE(certificate.serialNumber(), QByteArray()); QCOMPARE(certificate.digest(), QCryptographicHash::hash(QByteArray(), QCryptographicHash::Md5)); - QCOMPARE(certificate.issuerInfo(QSslCertificate::Organization)[0], QString()); - QCOMPARE(certificate.subjectInfo(QSslCertificate::Organization)[0], QString()); + QCOMPARE(certificate.issuerInfo(QSslCertificate::Organization), QStringList()); + QCOMPARE(certificate.subjectInfo(QSslCertificate::Organization), QStringList()); QCOMPARE(certificate.alternateSubjectNames(),(QMultiMap())); #ifndef QT_NO_TEXTSTREAM QCOMPARE(certificate.effectiveDate(), QDateTime()); @@ -682,31 +683,31 @@ void tst_QSslCertificate::certInfo() QCOMPARE(cert.issuerInfo(QSslCertificate::Organization)[0], QString("CryptSoft Pty Ltd")); QCOMPARE(cert.issuerInfo(QSslCertificate::CommonName)[0], QString("Test CA (1024 bit)")); - QCOMPARE(cert.issuerInfo(QSslCertificate::LocalityName)[0], QString()); - QCOMPARE(cert.issuerInfo(QSslCertificate::OrganizationalUnitName)[0], QString()); + QCOMPARE(cert.issuerInfo(QSslCertificate::LocalityName), QStringList()); + QCOMPARE(cert.issuerInfo(QSslCertificate::OrganizationalUnitName), QStringList()); QCOMPARE(cert.issuerInfo(QSslCertificate::CountryName)[0], QString("AU")); QCOMPARE(cert.issuerInfo(QSslCertificate::StateOrProvinceName)[0], QString("Queensland")); QCOMPARE(cert.issuerInfo("O")[0], QString("CryptSoft Pty Ltd")); QCOMPARE(cert.issuerInfo("CN")[0], QString("Test CA (1024 bit)")); - QCOMPARE(cert.issuerInfo("L")[0], QString()); - QCOMPARE(cert.issuerInfo("OU")[0], QString()); + QCOMPARE(cert.issuerInfo("L"), QStringList()); + QCOMPARE(cert.issuerInfo("OU"), QStringList()); QCOMPARE(cert.issuerInfo("C")[0], QString("AU")); QCOMPARE(cert.issuerInfo("ST")[0], QString("Queensland")); - QCOMPARE(cert.subjectInfo(QSslCertificate::Organization)[0], QString()); + QCOMPARE(cert.subjectInfo(QSslCertificate::Organization), QStringList()); QCOMPARE(cert.subjectInfo(QSslCertificate::CommonName)[0], QString("name/with/slashes")); - QCOMPARE(cert.subjectInfo(QSslCertificate::LocalityName)[0], QString()); - QCOMPARE(cert.subjectInfo(QSslCertificate::OrganizationalUnitName)[0], QString()); + QCOMPARE(cert.subjectInfo(QSslCertificate::LocalityName), QStringList()); + QCOMPARE(cert.subjectInfo(QSslCertificate::OrganizationalUnitName), QStringList()); QCOMPARE(cert.subjectInfo(QSslCertificate::CountryName)[0], QString("NO")); - QCOMPARE(cert.subjectInfo(QSslCertificate::StateOrProvinceName)[0], QString()); + QCOMPARE(cert.subjectInfo(QSslCertificate::StateOrProvinceName), QStringList()); - QCOMPARE(cert.subjectInfo("O")[0], QString()); + QCOMPARE(cert.subjectInfo("O"), QStringList()); QCOMPARE(cert.subjectInfo("CN")[0], QString("name/with/slashes")); - QCOMPARE(cert.subjectInfo("L")[0], QString()); - QCOMPARE(cert.subjectInfo("OU")[0], QString()); + QCOMPARE(cert.subjectInfo("L"), QStringList()); + QCOMPARE(cert.subjectInfo("OU"), QStringList()); QCOMPARE(cert.subjectInfo("C")[0], QString("NO")); - QCOMPARE(cert.subjectInfo("ST")[0], QString()); + QCOMPARE(cert.subjectInfo("ST"), QStringList()); QCOMPARE(cert.version(), QByteArray::number(1)); QCOMPARE(cert.serialNumber(), QByteArray::number(17)); @@ -871,6 +872,17 @@ void tst_QSslCertificate::toText() QVERIFY(txtOld == cert.toText() || txtNew == cert.toText()); } +void tst_QSslCertificate::multipleCommonNames() +{ + QList certList = + QSslCertificate::fromPath(SRCDIR "more-certificates/test-cn-two-cns-cert.pem"); + QVERIFY2(certList.count() > 0, "Please run this test from the source directory"); + + QStringList commonNames = certList[0].subjectInfo(QSslCertificate::CommonName); + QVERIFY(commonNames.contains(QString("www.example.com"))); + QVERIFY(commonNames.contains(QString("www2.example.com"))); +} + #endif // QT_NO_OPENSSL QTEST_MAIN(tst_QSslCertificate) -- cgit v1.2.3