summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2014-09-03 10:44:02 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2014-09-03 17:28:02 +0200
commitbdb30abcd274d4fb1958e17ba8790e415a2ffe85 (patch)
tree144fa81547f64be204436ba5f19fe7e3405fe235 /tests/auto
parentc68ef6d2c010da545c839ba669da011162828f76 (diff)
ssl: add support for ASN.1 boolean values
This adds support for reading and writing ASN.1 boolean values. It also adds an operator to test two ASN.1 elements for equality. Change-Id: I4a22cbf9808533d593fc59d27b63caaf650b1f57 Reviewed-by: Richard J. Moore <rich@kde.org>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp b/tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp
index 5fb4c28282..92b603473b 100644
--- a/tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp
+++ b/tests/auto/network/ssl/qasn1element/tst_qasn1element.cpp
@@ -49,6 +49,10 @@ class tst_QAsn1Element : public QObject
private slots:
void emptyConstructor();
+ void equals_data();
+ void equals();
+ void toBool_data();
+ void toBool();
void dateTime_data();
void dateTime();
void integer_data();
@@ -68,6 +72,62 @@ void tst_QAsn1Element::emptyConstructor()
QCOMPARE(elem.value(), QByteArray());
}
+Q_DECLARE_METATYPE(QAsn1Element)
+
+void tst_QAsn1Element::equals_data()
+{
+ QTest::addColumn<QAsn1Element>("a");
+ QTest::addColumn<QAsn1Element>("b");
+ QTest::addColumn<bool>("equals");
+
+ QTest::newRow("equal")
+ << QAsn1Element(QAsn1Element::BooleanType, QByteArray("\0", 1))
+ << QAsn1Element(QAsn1Element::BooleanType, QByteArray("\0", 1))
+ << true;
+ QTest::newRow("different type")
+ << QAsn1Element(QAsn1Element::BooleanType, QByteArray("\0", 1))
+ << QAsn1Element(QAsn1Element::IntegerType, QByteArray("\0", 1))
+ << false;
+ QTest::newRow("different value")
+ << QAsn1Element(QAsn1Element::BooleanType, QByteArray("\0", 1))
+ << QAsn1Element(QAsn1Element::BooleanType, QByteArray("\xff", 1))
+ << false;
+}
+
+void tst_QAsn1Element::equals()
+{
+ QFETCH(QAsn1Element, a);
+ QFETCH(QAsn1Element, b);
+ QFETCH(bool, equals);
+ QCOMPARE(a == b, equals);
+ QCOMPARE(a != b, !equals);
+}
+
+void tst_QAsn1Element::toBool_data()
+{
+ QTest::addColumn<QByteArray>("encoded");
+ QTest::addColumn<bool>("value");
+ QTest::addColumn<bool>("valid");
+
+ QTest::newRow("bad type") << QByteArray::fromHex("0201ff") << false << false;
+ QTest::newRow("bad value") << QByteArray::fromHex("010102") << false << false;
+ QTest::newRow("false") << QByteArray::fromHex("010100") << false << true;
+ QTest::newRow("true") << QByteArray::fromHex("0101ff") << true << true;
+}
+
+void tst_QAsn1Element::toBool()
+{
+ QFETCH(QByteArray, encoded);
+ QFETCH(bool, value);
+ QFETCH(bool, valid);
+
+ bool ok;
+ QAsn1Element elem;
+ QVERIFY(elem.read(encoded));
+ QCOMPARE(elem.toBool(&ok), value);
+ QCOMPARE(ok, valid);
+}
+
void tst_QAsn1Element::dateTime_data()
{
QTest::addColumn<QByteArray>("encoded");