// SPDX-FileCopyrightText: 2020 Jonah BrĂ¼chert // // SPDX-License-Identifier: LGPL-2.1-or-later #include #include #include "util.h" #include class tst_QXmppPushEnableIq : public QObject { Q_OBJECT private: Q_SLOT void testPushEnable(); Q_SLOT void testPushDisable(); Q_SLOT void testXmlNs(); Q_SLOT void testDataForm(); Q_SLOT void testIsEnableIq(); }; void tst_QXmppPushEnableIq::testPushEnable() { const QByteArray xml( R"()" R"()" ""); QXmppPushEnableIq iq; parsePacket(iq, xml); QCOMPARE(iq.mode(), QXmppPushEnableIq::Enable); QCOMPARE(iq.jid(), QStringLiteral("push-5.client.example")); QCOMPARE(iq.node(), QStringLiteral("yxs32uqsflafdk3iuqo")); serializePacket(iq, xml); QXmppPushEnableIq sIq; sIq.setJid("push-5.client.example"); sIq.setMode(QXmppPushEnableIq::Enable); sIq.setNode("yxs32uqsflafdk3iuqo"); sIq.setType(QXmppIq::Set); sIq.setId("x42"); serializePacket(sIq, xml); } void tst_QXmppPushEnableIq::testPushDisable() { const QByteArray xml( R"()" R"()" ""); QXmppPushEnableIq iq; parsePacket(iq, xml); QCOMPARE(iq.mode(), QXmppPushEnableIq::Disable); QCOMPARE(iq.jid(), QStringLiteral("push-5.client.example")); serializePacket(iq, xml); QXmppPushEnableIq sIq; sIq.setJid("push-5.client.example"); sIq.setMode(QXmppPushEnableIq::Disable); sIq.setNode("yxs32uqsflafdk3iuqo"); sIq.setType(QXmppIq::Set); sIq.setId("x97"); serializePacket(sIq, xml); } void tst_QXmppPushEnableIq::testXmlNs() { const QByteArray xml( R"()" R"()" ""); QXmppPushEnableIq iq; parsePacket(iq, xml); QVERIFY(iq.jid().isEmpty()); } void tst_QXmppPushEnableIq::testDataForm() { const QByteArray xml( R"()" R"()" R"()" R"(http://jabber.org/protocol/pubsub#publish-options)" R"(eruio234vzxc2kla-91)" "" "" ""); QXmppPushEnableIq iq; parsePacket(iq, xml); QVERIFY(!iq.dataForm().isNull()); QCOMPARE(iq.dataForm().fields().size(), 2); serializePacket(iq, xml); QXmppPushEnableIq sIq; QXmppDataForm::Field field0; field0.setKey("FORM_TYPE"); field0.setType(QXmppDataForm::Field::HiddenField); field0.setValue("http://jabber.org/protocol/pubsub#publish-options"); QXmppDataForm::Field field1; field1.setKey("secret"); field1.setValue("eruio234vzxc2kla-91"); QXmppDataForm form; form.setType(QXmppDataForm::Submit); form.setFields({ field0, field1 }); sIq.setDataForm(form); sIq.setType(QXmppIq::Set); sIq.setMode(QXmppPushEnableIq::Enable); sIq.setId("x43"); sIq.setJid("push-5.client.example"); sIq.setNode("yxs32uqsflafdk3iuqo"); serializePacket(sIq, xml); } void tst_QXmppPushEnableIq::testIsEnableIq() { const QByteArray xml( R"()" R"()" ""); QDomDocument doc; doc.setContent(xml, true); bool isPushEnable = QXmppPushEnableIq::isPushEnableIq(doc.documentElement()); QCOMPARE(isPushEnable, true); // reset isPushEnable = false; const QByteArray xml2( R"()" R"()" ""); doc.setContent(xml2, true); isPushEnable = QXmppPushEnableIq::isPushEnableIq(doc.documentElement()); QCOMPARE(isPushEnable, true); } QTEST_MAIN(tst_QXmppPushEnableIq); #include "tst_qxmpppushenableiq.moc"