diff options
| author | Linus Jahn <lnj@kaidan.im> | 2021-09-29 15:38:21 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2021-09-29 16:37:41 +0200 |
| commit | 8e77649e2c29fd65d826852b99ff150cbe3bc337 (patch) | |
| tree | fdef48020648cf77674f4ca984641374c80a3cff | |
| parent | c37d95ea5c2e89642cc17cda3de29d1001cadffd (diff) | |
| download | qxmpp-8e77649e2c29fd65d826852b99ff150cbe3bc337.tar.gz | |
PubSubIq: Fix data form type for create/publish
| -rw-r--r-- | src/base/QXmppPubSubIq.cpp | 8 | ||||
| -rw-r--r-- | tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/base/QXmppPubSubIq.cpp b/src/base/QXmppPubSubIq.cpp index 38d432df..367b0ec0 100644 --- a/src/base/QXmppPubSubIq.cpp +++ b/src/base/QXmppPubSubIq.cpp @@ -632,18 +632,18 @@ void QXmppPubSubIqBase::toXmlElementFromChild(QXmlStreamWriter *writer) const }; // make sure form type is 'submit' - form->setType(QXmppDataForm::Submit); + form->setType(type() == QXmppIq::Result ? QXmppDataForm::Result : QXmppDataForm::Submit); switch (d->queryType) { case Create: - writeForm(writer, *d->dataForm, QStringLiteral("configure")); + writeForm(writer, *form, QStringLiteral("configure")); break; case Publish: - writeForm(writer, *d->dataForm, QStringLiteral("publish-options")); + writeForm(writer, *form, QStringLiteral("publish-options")); break; case Subscribe: case Subscription: - writeForm(writer, *d->dataForm, QStringLiteral("options")); + writeForm(writer, *form, QStringLiteral("options")); break; default: break; diff --git a/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp b/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp index efe3b865..9da709d8 100644 --- a/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp +++ b/tests/qxmpppubsubmanager/tst_qxmpppubsubmanager.cpp @@ -277,7 +277,9 @@ void tst_QXmppPubSubManager::testPublishItems() }(); const auto publishOptionsXml = [&]() -> QString { if (publishOptions) { - return "<publish-options>" + QString::fromUtf8(packetToXml(publishOptions->toDataForm())) + "</publish-options>"; + auto form = publishOptions->toDataForm(); + form.setType(QXmppDataForm::Submit); + return "<publish-options>" + QString::fromUtf8(packetToXml(form)) + "</publish-options>"; } return {}; }(); |
