diff options
Diffstat (limited to 'tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp')
-rw-r--r-- | tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp | 67 |
1 files changed, 61 insertions, 6 deletions
diff --git a/tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp b/tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp index 30a01cb6f4..2ec61a61fe 100644 --- a/tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp +++ b/tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2014 Jeremy Lainé <jeremy.laine@m4x.org> -** Contact: http://www.qt-project.org/legal +** Contact: http://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. ** @@ -10,9 +10,9 @@ ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser @@ -23,8 +23,8 @@ ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** $QT_END_LICENSE$ @@ -55,6 +55,8 @@ private slots: void octetString(); void objectIdentifier_data(); void objectIdentifier(); + void string_data(); + void string(); }; void tst_QAsn1Element::emptyConstructor() @@ -265,5 +267,58 @@ void tst_QAsn1Element::objectIdentifier() QCOMPARE(elem.toObjectName(), name); } +void tst_QAsn1Element::string_data() +{ + QTest::addColumn<QAsn1Element>("element"); + QTest::addColumn<QString>("value"); + + QTest::newRow("printablestring") + << QAsn1Element(QAsn1Element::PrintableStringType, QByteArray("Hello World")) + << QStringLiteral("Hello World"); + QTest::newRow("teletextstring") + << QAsn1Element(QAsn1Element::TeletexStringType, QByteArray("Hello World")) + << QStringLiteral("Hello World"); + QTest::newRow("utf8string") + << QAsn1Element(QAsn1Element::Utf8StringType, QByteArray("Hello World")) + << QStringLiteral("Hello World"); + QTest::newRow("rfc822name") + << QAsn1Element(QAsn1Element::Rfc822NameType, QByteArray("Hello World")) + << QStringLiteral("Hello World"); + QTest::newRow("dnsname") + << QAsn1Element(QAsn1Element::DnsNameType, QByteArray("Hello World")) + << QStringLiteral("Hello World"); + QTest::newRow("uri") + << QAsn1Element(QAsn1Element::UniformResourceIdentifierType, QByteArray("Hello World")) + << QStringLiteral("Hello World"); + + // Embedded NULs are not allowed and should be rejected + QTest::newRow("evil_printablestring") + << QAsn1Element(QAsn1Element::PrintableStringType, QByteArray("Hello\0World", 11)) + << QString(); + QTest::newRow("evil_teletextstring") + << QAsn1Element(QAsn1Element::TeletexStringType, QByteArray("Hello\0World", 11)) + << QString(); + QTest::newRow("evil_utf8string") + << QAsn1Element(QAsn1Element::Utf8StringType, QByteArray("Hello\0World", 11)) + << QString(); + QTest::newRow("evil_rfc822name") + << QAsn1Element(QAsn1Element::Rfc822NameType, QByteArray("Hello\0World", 11)) + << QString(); + QTest::newRow("evil_dnsname") + << QAsn1Element(QAsn1Element::DnsNameType, QByteArray("Hello\0World", 11)) + << QString(); + QTest::newRow("evil_uri") + << QAsn1Element(QAsn1Element::UniformResourceIdentifierType, QByteArray("Hello\0World", 11)) + << QString(); +} + +void tst_QAsn1Element::string() +{ + QFETCH(QAsn1Element, element); + QFETCH(QString, value); + + QCOMPARE(element.toString(), value); +} + QTEST_MAIN(tst_QAsn1Element) #include "tst_qasn1element.moc" |