Skip to content
This repository was archived by the owner on Mar 20, 2025. It is now read-only.

Commit bff137f

Browse files
committed
tests: AccountMigration: Fix with other unordered_map implementations
Packets are found no matter in what order they were sent. The IQ IDs are ignored while comparing.
1 parent d46c01f commit bff137f

File tree

1 file changed

+93
-84
lines changed

1 file changed

+93
-84
lines changed

tests/qxmppaccountmigrationmanager/tst_qxmppaccountmigrationmanager.cpp

+93-84
Original file line numberDiff line numberDiff line change
@@ -229,45 +229,50 @@ void tst_QXmppAccountMigrationManager::testRealImportExport()
229229
auto exportTask = manager->exportData();
230230
QVERIFY(!exportTask.isFinished());
231231

232-
client->expect(u"<iq id='qxmpp2' from='[email protected]/QXmpp' type='get'>"
233-
"<query xmlns='jabber:iq:roster'>"
234-
"<annotate xmlns='urn:xmpp:mix:roster:0'/>"
235-
"</query>"
236-
"</iq>"_s);
237-
client->inject(packetToXml(newRoster(client.get(), 1, "qxmpp2", QXmppIq::Result)));
238-
239-
client->expect(u"<iq id='qxmpp3' from='[email protected]/QXmpp' type='get'>"
240-
"<query xmlns='jabber:iq:roster'>"
241-
"<annotate xmlns='urn:xmpp:mix:roster:0'/>"
242-
"</query>"
243-
"</iq>"_s);
244-
client->inject(packetToXml(newRoster(client.get(), 1, "qxmpp3", QXmppIq::Result)));
245-
246-
client->expect(u"<iq id='qxmpp4' to='[email protected]' type='get'>"
247-
"<vCard xmlns='vcard-temp'>"
248-
"<TITLE/>"
249-
"<ROLE/>"
250-
"</vCard>"
251-
"</iq>"_s);
252-
client->inject(packetToXml(newClientVCard(client.get(), 1, "qxmpp4", QXmppIq::Result)));
253-
254-
client->expect(u"<iq id='qxmpp7' to='[email protected]' type='get'>"
255-
"<pubsub xmlns='http://jabber.org/protocol/pubsub'>"
256-
"<items node='urn:xmpp:mix:nodes:participants'/>"
257-
"</pubsub>"
258-
"</iq>"_s);
259-
client->inject(u"<iq id='qxmpp7' from='[email protected]' type='result'>"
260-
"<pubsub xmlns='http://jabber.org/protocol/pubsub'>"
261-
"<items node='urn:xmpp:mix:nodes:participants'>"
262-
"<item id='mix2BareId'>"
263-
"<participant xmlns='urn:xmpp:mix:core:1'>"
264-
"<nick>Joe @ Mix 2 Gamer</nick>"
265-
"<jid>[email protected]</jid>"
266-
"</participant>"
267-
"</item>"
268-
"</items>"
269-
"</pubsub>"
270-
"</iq>"_s);
232+
auto id = client->expectPacketRandomOrder(
233+
u"<iq from='[email protected]/QXmpp' type='get'>"
234+
"<query xmlns='jabber:iq:roster'>"
235+
"<annotate xmlns='urn:xmpp:mix:roster:0'/>"
236+
"</query>"
237+
"</iq>"_s);
238+
client->inject(packetToXml(newRoster(client.get(), 1, id, QXmppIq::Result)));
239+
240+
id = client->expectPacketRandomOrder(
241+
u"<iq from='[email protected]/QXmpp' type='get'>"
242+
"<query xmlns='jabber:iq:roster'>"
243+
"<annotate xmlns='urn:xmpp:mix:roster:0'/>"
244+
"</query>"
245+
"</iq>"_s);
246+
client->inject(packetToXml(newRoster(client.get(), 1, id, QXmppIq::Result)));
247+
248+
id = client->expectPacketRandomOrder(
249+
u"<iq to='[email protected]' type='get'>"
250+
"<vCard xmlns='vcard-temp'>"
251+
"<TITLE/>"
252+
"<ROLE/>"
253+
"</vCard>"
254+
"</iq>"_s);
255+
client->inject(packetToXml(newClientVCard(client.get(), 1, id, QXmppIq::Result)));
256+
257+
id = client->expectPacketRandomOrder(
258+
u"<iq to='[email protected]' type='get'>"
259+
"<pubsub xmlns='http://jabber.org/protocol/pubsub'>"
260+
"<items node='urn:xmpp:mix:nodes:participants'/>"
261+
"</pubsub>"
262+
"</iq>"_s);
263+
client->inject(
264+
u"<iq id='%1' from='[email protected]' type='result'>"
265+
"<pubsub xmlns='http://jabber.org/protocol/pubsub'>"
266+
"<items node='urn:xmpp:mix:nodes:participants'>"
267+
"<item id='mix2BareId'>"
268+
"<participant xmlns='urn:xmpp:mix:core:1'>"
269+
"<nick>Joe @ Mix 2 Gamer</nick>"
270+
"<jid>[email protected]</jid>"
271+
"</participant>"
272+
"</item>"
273+
"</items>"
274+
"</pubsub>"
275+
"</iq>"_s.arg(id));
271276

272277
client->expectNoPacket();
273278

@@ -276,51 +281,55 @@ void tst_QXmppAccountMigrationManager::testRealImportExport()
276281
// import exported data
277282
auto importTask = manager->importData(data);
278283

279-
client->expect(u"<iq id='qxmpp13' to='[email protected]' type='set'>"
280-
"<client-join xmlns='urn:xmpp:mix:pam:2' channel='[email protected]'>"
281-
"<join xmlns='urn:xmpp:mix:core:1'>"
282-
"<subscribe node='urn:xmpp:mix:nodes:allowed'/>"
283-
"<subscribe node='urn:xmpp:avatar:data'/>"
284-
"<subscribe node='urn:xmpp:avatar:metadata'/>"
285-
"<subscribe node='urn:xmpp:mix:nodes:banned'/>"
286-
"<subscribe node='urn:xmpp:mix:nodes:config'/>"
287-
"<subscribe node='urn:xmpp:mix:nodes:info'/>"
288-
"<subscribe node='urn:xmpp:mix:nodes:jidmap'/>"
289-
"<subscribe node='urn:xmpp:mix:nodes:messages'/>"
290-
"<subscribe node='urn:xmpp:mix:nodes:participants'/>"
291-
"<subscribe node='urn:xmpp:mix:nodes:presence'/>"
292-
"<nick>Joe @ Mix 2 Gamer</nick>"
293-
"</join>"
294-
"</client-join>"
295-
"</iq>"_s);
296-
client->inject(u"<iq id='qxmpp13' type='result'>"
297-
"<client-join xmlns='urn:xmpp:mix:pam:2'>"
298-
"<join xmlns='urn:xmpp:mix:core:1' id='mix2BareId'>"
299-
"<subscribe node='urn:xmpp:mix:nodes:messages'/>"
300-
"<subscribe node='urn:xmpp:mix:nodes:presence'/>"
301-
"<nick>Joe @ Mix 2 Gamer</nick>"
302-
"</join>"
303-
"</client-join>"
304-
"</iq>"_s);
305-
306-
client->expect(u"<iq id='qxmpp4' to='[email protected]' type='set'>"
307-
"<vCard xmlns='vcard-temp'>"
308-
"<NICKNAME>It is me Bookri</NICKNAME>"
309-
"<N><GIVEN>Nox</GIVEN><FAMILY>Bookri</FAMILY></N>"
310-
"<TITLE/>"
311-
"<ROLE/>"
312-
"</vCard>"
313-
"</iq>"_s);
314-
client->inject(packetToXml(newClientVCard(client.get(), 1, "qxmpp4", QXmppIq::Result)));
315-
316-
client->expect(u"<iq id='qxmpp14' type='set'>"
317-
"<query xmlns='jabber:iq:roster'>"
318-
"<item jid='[email protected]' name='3 Gamer'>"
319-
"<group>gamers</group>"
320-
"</item>"
321-
"</query>"
322-
"</iq>"_s);
323-
client->inject(packetToXml(newRoster(client.get(), 1, "qxmpp14", QXmppIq::Result, 0)));
284+
id = client->expectPacketRandomOrder(
285+
u"<iq to='[email protected]' type='set'>"
286+
"<client-join xmlns='urn:xmpp:mix:pam:2' channel='[email protected]'>"
287+
"<join xmlns='urn:xmpp:mix:core:1'>"
288+
"<subscribe node='urn:xmpp:mix:nodes:allowed'/>"
289+
"<subscribe node='urn:xmpp:avatar:data'/>"
290+
"<subscribe node='urn:xmpp:avatar:metadata'/>"
291+
"<subscribe node='urn:xmpp:mix:nodes:banned'/>"
292+
"<subscribe node='urn:xmpp:mix:nodes:config'/>"
293+
"<subscribe node='urn:xmpp:mix:nodes:info'/>"
294+
"<subscribe node='urn:xmpp:mix:nodes:jidmap'/>"
295+
"<subscribe node='urn:xmpp:mix:nodes:messages'/>"
296+
"<subscribe node='urn:xmpp:mix:nodes:participants'/>"
297+
"<subscribe node='urn:xmpp:mix:nodes:presence'/>"
298+
"<nick>Joe @ Mix 2 Gamer</nick>"
299+
"</join>"
300+
"</client-join>"
301+
"</iq>"_s);
302+
client->inject(
303+
u"<iq id='%1' type='result'>"
304+
"<client-join xmlns='urn:xmpp:mix:pam:2'>"
305+
"<join xmlns='urn:xmpp:mix:core:1' id='mix2BareId'>"
306+
"<subscribe node='urn:xmpp:mix:nodes:messages'/>"
307+
"<subscribe node='urn:xmpp:mix:nodes:presence'/>"
308+
"<nick>Joe @ Mix 2 Gamer</nick>"
309+
"</join>"
310+
"</client-join>"
311+
"</iq>"_s.arg(id));
312+
313+
id = client->expectPacketRandomOrder(
314+
u"<iq to='[email protected]' type='set'>"
315+
"<vCard xmlns='vcard-temp'>"
316+
"<NICKNAME>It is me Bookri</NICKNAME>"
317+
"<N><GIVEN>Nox</GIVEN><FAMILY>Bookri</FAMILY></N>"
318+
"<TITLE/>"
319+
"<ROLE/>"
320+
"</vCard>"
321+
"</iq>"_s);
322+
client->inject(packetToXml(newClientVCard(client.get(), 1, id, QXmppIq::Result)));
323+
324+
id = client->expectPacketRandomOrder(
325+
u"<iq type='set'>"
326+
"<query xmlns='jabber:iq:roster'>"
327+
"<item jid='[email protected]' name='3 Gamer'>"
328+
"<group>gamers</group>"
329+
"</item>"
330+
"</query>"
331+
"</iq>"_s);
332+
client->inject(packetToXml(newRoster(client.get(), 1, id, QXmppIq::Result, 0)));
324333

325334
client->expectNoPacket();
326335

0 commit comments

Comments
 (0)