summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp')
-rw-r--r--tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp67
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"