diff options
| -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 {}; }(); |
