@@ -1163,11 +1163,84 @@ void tst_QXmppMixManager::testUpdateSubscriptions()
1163
1163
auto &client = tester.client ;
1164
1164
auto manager = tester.manager ;
1165
1165
1166
+ auto defaultParametersCall = [&client, manager]() {
1167
+ return manager->
updateSubscriptions (
QStringLiteral (
" [email protected] " ));
1168
+ };
1169
+
1170
+ auto task = defaultParametersCall ();
1171
+
1172
+ client.
expect (
QStringLiteral (
" <iq id='qxmpp1' to='[email protected] ' type='set'>"
1173
+ " <update-subscription xmlns='urn:xmpp:mix:core:1'>"
1174
+ " <subscribe node='urn:xmpp:mix:nodes:allowed'/>"
1175
+ " <subscribe node='urn:xmpp:avatar:data'/>"
1176
+ " <subscribe node='urn:xmpp:avatar:metadata'/>"
1177
+ " <subscribe node='urn:xmpp:mix:nodes:banned'/>"
1178
+ " <subscribe node='urn:xmpp:mix:nodes:config'/>"
1179
+ " <subscribe node='urn:xmpp:mix:nodes:info'/>"
1180
+ " <subscribe node='urn:xmpp:mix:nodes:jidmap'/>"
1181
+ " <subscribe node='urn:xmpp:mix:nodes:messages'/>"
1182
+ " <subscribe node='urn:xmpp:mix:nodes:participants'/>"
1183
+ " <subscribe node='urn:xmpp:mix:nodes:presence'/>"
1184
+ " </update-subscription>"
1185
+ " </iq>" ));
1186
+ client.
inject (
QStringLiteral (
" <iq id='qxmpp1' from='[email protected] ' type='result'>"
1187
+ " <update-subscription xmlns='urn:xmpp:mix:core:1'>"
1188
+ " <subscribe node='urn:xmpp:mix:nodes:allowed'/>"
1189
+ " <subscribe node='urn:xmpp:avatar:data'/>"
1190
+ " <subscribe node='urn:xmpp:avatar:metadata'/>"
1191
+ " <subscribe node='urn:xmpp:mix:nodes:banned'/>"
1192
+ " <subscribe node='urn:xmpp:mix:nodes:config'/>"
1193
+ " <subscribe node='urn:xmpp:mix:nodes:info'/>"
1194
+ " <subscribe node='urn:xmpp:mix:nodes:jidmap'/>"
1195
+ " <subscribe node='urn:xmpp:mix:nodes:messages'/>"
1196
+ " <subscribe node='urn:xmpp:mix:nodes:participants'/>"
1197
+ " <subscribe node='urn:xmpp:mix:nodes:presence'/>"
1198
+ " </update-subscription>"
1199
+ " </iq>" ));
1200
+
1201
+ auto subscription = expectFutureVariant<QXmppMixManager::Subscription>(task);
1202
+ QVERIFY (subscription.additions .testFlag (QXmppMixConfigItem::Node::AllowedJids));
1203
+ QVERIFY (subscription.additions .testFlag (QXmppMixConfigItem::Node::AvatarData));
1204
+ QVERIFY (subscription.additions .testFlag (QXmppMixConfigItem::Node::AvatarMetadata));
1205
+ QVERIFY (subscription.additions .testFlag (QXmppMixConfigItem::Node::BannedJids));
1206
+ QVERIFY (subscription.additions .testFlag (QXmppMixConfigItem::Node::Configuration));
1207
+ QVERIFY (subscription.additions .testFlag (QXmppMixConfigItem::Node::Information));
1208
+ QVERIFY (subscription.additions .testFlag (QXmppMixConfigItem::Node::JidMap));
1209
+ QVERIFY (subscription.additions .testFlag (QXmppMixConfigItem::Node::Messages));
1210
+ QVERIFY (subscription.additions .testFlag (QXmppMixConfigItem::Node::Participants));
1211
+ QVERIFY (subscription.additions .testFlag (QXmppMixConfigItem::Node::Presence));
1212
+ // "QCOMPARE(subscription.additions, ~QXmppMixConfigItem::Nodes());" does not work.
1213
+ QCOMPARE (subscription.additions , QXmppMixConfigItem::Node::AllowedJids | QXmppMixConfigItem::Node::AvatarData | QXmppMixConfigItem::Node::AvatarMetadata | QXmppMixConfigItem::Node::BannedJids | QXmppMixConfigItem::Node::Configuration | QXmppMixConfigItem::Node::Information | QXmppMixConfigItem::Node::JidMap | QXmppMixConfigItem::Node::Messages | QXmppMixConfigItem::Node::Participants | QXmppMixConfigItem::Node::Presence);
1214
+ QCOMPARE (subscription.removals , QXmppMixConfigItem::Nodes ());
1215
+
1216
+ auto defaultRemovalParameterCall = [&client, manager]() {
1217
+ return manager->
updateSubscriptions (
QStringLiteral (
" [email protected] " ), QXmppMixConfigItem::Node::AllowedJids | QXmppMixConfigItem::Node::BannedJids);
1218
+ };
1219
+
1220
+ task = defaultRemovalParameterCall ();
1221
+
1222
+ client.
expect (
QStringLiteral (
" <iq id='qxmpp1' to='[email protected] ' type='set'>"
1223
+ " <update-subscription xmlns='urn:xmpp:mix:core:1'>"
1224
+ " <subscribe node='urn:xmpp:mix:nodes:allowed'/>"
1225
+ " <subscribe node='urn:xmpp:mix:nodes:banned'/>"
1226
+ " </update-subscription>"
1227
+ " </iq>" ));
1228
+ client.
inject (
QStringLiteral (
" <iq id='qxmpp1' from='[email protected] ' type='result'>"
1229
+ " <update-subscription xmlns='urn:xmpp:mix:core:1'>"
1230
+ " <subscribe node='urn:xmpp:mix:nodes:allowed'/>"
1231
+ " <subscribe node='urn:xmpp:mix:nodes:banned'/>"
1232
+ " </update-subscription>"
1233
+ " </iq>" ));
1234
+
1235
+ subscription = expectFutureVariant<QXmppMixManager::Subscription>(task);
1236
+ QCOMPARE (subscription.additions , QXmppMixConfigItem::Node::AllowedJids | QXmppMixConfigItem::Node::BannedJids);
1237
+ QCOMPARE (subscription.removals , QXmppMixConfigItem::Nodes ());
1238
+
1166
1239
auto call = [&client, manager]() {
1167
1240
return manager->
updateSubscriptions (
QStringLiteral (
" [email protected] " ), QXmppMixConfigItem::Node::Messages | QXmppMixConfigItem::Node::Presence, QXmppMixConfigItem::Node::Configuration | QXmppMixConfigItem::Node::Information);
1168
1241
};
1169
1242
1170
- auto task = call ();
1243
+ task = call ();
1171
1244
1172
1245
client.
expect (
QStringLiteral (
" <iq id='qxmpp1' to='[email protected] ' type='set'>"
1173
1246
" <update-subscription xmlns='urn:xmpp:mix:core:1'>"
@@ -1186,7 +1259,7 @@ void tst_QXmppMixManager::testUpdateSubscriptions()
1186
1259
" </update-subscription>"
1187
1260
" </iq>" ));
1188
1261
1189
- auto subscription = expectFutureVariant<QXmppMixManager::Subscription>(task);
1262
+ subscription = expectFutureVariant<QXmppMixManager::Subscription>(task);
1190
1263
QCOMPARE (subscription.additions , QXmppMixConfigItem::Node::Messages | QXmppMixConfigItem::Node::Presence);
1191
1264
QCOMPARE (subscription.removals , QXmppMixConfigItem::Node::Configuration | QXmppMixConfigItem::Node::Information);
1192
1265
0 commit comments