tests/auto/qsslcertificate/tst_qsslcertificate.cpp
changeset 7 f7bc934e204c
parent 0 1918ee327afb
child 33 3e2da88830cd
--- a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp	Tue Feb 02 00:43:10 2010 +0200
+++ b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp	Wed Mar 31 11:06:36 2010 +0300
@@ -1,6 +1,6 @@
 /****************************************************************************
 **
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
 ** Contact: Nokia Corporation (qt-info@nokia.com)
 **
@@ -105,6 +105,7 @@
     void fromPath_data();
     void fromPath();
     void certInfo();
+    void certInfoQByteArray();
     void task256066toPem();
     void nulInCN();
     void nulInSan();
@@ -542,6 +543,9 @@
     QTest::newRow("\"d.*/c.*.pem\" wildcard der") << QString("d.*/c.*.pem") << int(QRegExp::Wildcard) << false << 0;
 
     QTest::newRow("trailing-whitespace") << QString("more-certificates/trailing-whitespace.pem") << int(QRegExp::FixedString) << true << 1;
+    QTest::newRow("no-ending-newline") << QString("more-certificates/no-ending-newline.pem") << int(QRegExp::FixedString) << true << 1;
+    QTest::newRow("malformed-just-begin") << QString("more-certificates/malformed-just-begin.pem") << int(QRegExp::FixedString) << true << 0;
+    QTest::newRow("malformed-just-begin-no-newline") << QString("more-certificates/malformed-just-begin-no-newline.pem") << int(QRegExp::FixedString) << true << 0;
 }
 
 void tst_QSslCertificate::fromPath()
@@ -697,6 +701,18 @@
     QCOMPARE(cert, QSslCertificate(QByteArray::fromHex(der), QSsl::Der));
 }
 
+void tst_QSslCertificate::certInfoQByteArray()
+{
+    QSslCertificate cert =  QSslCertificate::fromPath("certificates/cert.pem", QSsl::Pem,
+                                                      QRegExp::FixedString).first();
+    QVERIFY(!cert.isNull());
+
+    // in this test, check the bytearray variants before the enum variants to see if
+    // we fixed a bug we had with lazy initialization of the values.
+    QCOMPARE(cert.issuerInfo("CN"), QString("Test CA (1024 bit)"));
+    QCOMPARE(cert.subjectInfo("CN"), QString("name/with/slashes"));
+}
+
 void tst_QSslCertificate::task256066toPem()
 {
     // a certificate whose PEM encoding's length is a multiple of 64