/* * Copyright (C) 2008-2021 The QXmpp developers * * Author: * Linus Jahn * * Source: * https://github.com/qxmpp-project/qxmpp * * This file is a part of QXmpp library. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * */ #include "QXmppStartTlsPacket.h" #include "util.h" #include class tst_QXmppStartTlsPacket : public QObject { Q_OBJECT private slots: void testBasic_data(); void testBasic(); }; void tst_QXmppStartTlsPacket::testBasic_data() { QTest::addColumn("xml"); QTest::addColumn("valid"); QTest::addColumn("type"); #define ROW(name, xml, valid, type) \ QTest::newRow(name) \ << QByteArrayLiteral(xml) \ << valid \ << type ROW("starttls", R"()", true, QXmppStartTlsPacket::StartTls); ROW("proceed", R"()", true, QXmppStartTlsPacket::Proceed); ROW("failure", R"()", true, QXmppStartTlsPacket::Failure); ROW("invalid-tag", R"()", false, QXmppStartTlsPacket::StartTls); #undef ROW } void tst_QXmppStartTlsPacket::testBasic() { QFETCH(QByteArray, xml); QFETCH(bool, valid); QFETCH(QXmppStartTlsPacket::Type, type); QDomDocument doc; QCOMPARE(doc.setContent(xml, true), true); QCOMPARE(QXmppStartTlsPacket::isStartTlsPacket(doc.documentElement()), valid); QCOMPARE(QXmppStartTlsPacket::isStartTlsPacket(doc.documentElement(), type), valid); // test other types return false for (auto testValue : { QXmppStartTlsPacket::StartTls, QXmppStartTlsPacket::Proceed, QXmppStartTlsPacket::Failure }) { QCOMPARE(QXmppStartTlsPacket::isStartTlsPacket(doc.documentElement(), testValue), testValue == type && valid); } if (valid) { QXmppStartTlsPacket packet; parsePacket(packet, xml); QCOMPARE(packet.type(), type); serializePacket(packet, xml); QXmppStartTlsPacket packet2(type); serializePacket(packet2, xml); QXmppStartTlsPacket packet3; packet3.setType(type); serializePacket(packet2, xml); } } QTEST_MAIN(tst_QXmppStartTlsPacket) #include "tst_qxmppstarttlspacket.moc"