Skip to content

Commit 7bc96ee

Browse files
committed
Add tests for muc hats
1 parent 3a5f7e6 commit 7bc96ee

File tree

1 file changed

+74
-1
lines changed

1 file changed

+74
-1
lines changed

test/muc_tests.erl

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,9 +305,77 @@ master_slave_cases() ->
305305
master_slave_test(config_voice_request_interval),
306306
master_slave_test(config_visitor_nickchange),
307307
master_slave_test(join_conflict),
308-
master_slave_test(duplicate_occupantid)
308+
master_slave_test(duplicate_occupantid),
309+
master_slave_test(hats)
309310
]}.
310311

312+
hats_master(Config) ->
313+
Room = muc_room_jid(Config),
314+
PeerJID = ?config(slave, Config),
315+
PeerNick = ?config(slave_nick, Config),
316+
PeerNickJID = jid:replace_resource(Room, PeerNick),
317+
ok = master_join(Config),
318+
CommandCreate =
319+
#adhoc_command{action = complete, node = <<"urn:xmpp:hats:commands:create">>, xdata = #xdata{
320+
type = form, fields = [
321+
#xdata_field{var = <<"FORM_TYPE">>, values = [<<"urn:xmpp:hats:commands">>]},
322+
#xdata_field{var = <<"hats#title">>, values = [<<"Test">>]},
323+
#xdata_field{var = <<"hats#uri">>, values = [<<"https://example.com/Test">>]},
324+
#xdata_field{var = <<"hats#hue">>, values = [<<"100">>]}
325+
]}},
326+
#iq{type = result,
327+
sub_els =
328+
[#adhoc_command{status = completed}]} =
329+
send_recv(Config,
330+
#iq{type = set,
331+
to = Room,
332+
sub_els = [CommandCreate]}),
333+
[104] = recv_only_config_change_message(Config),
334+
put_event(Config, post_hat_setup),
335+
post_hat_setup = get_event(Config),
336+
CommandAssign =
337+
#adhoc_command{action = complete, node = <<"urn:xmpp:hats:commands:assign">>, xdata = #xdata{
338+
type = form, fields = [
339+
#xdata_field{var = <<"FORM_TYPE">>, values = [<<"urn:xmpp:hats:commands">>]},
340+
#xdata_field{var = <<"hats#jid">>, values = [jid:encode(PeerJID)]},
341+
#xdata_field{var = <<"hat">>, values = [<<"https://example.com/Test">>]}
342+
]}},
343+
#iq{type = result,
344+
sub_els =
345+
[#adhoc_command{status = completed}]} =
346+
send_recv(Config,
347+
#iq{type = set,
348+
to = Room,
349+
sub_els = [CommandAssign]}),
350+
#presence{from = PeerNickJID} = PresHat = recv_presence(Config),
351+
?match(#muc_hats{hats = [#muc_hat{title = <<"Test">>,
352+
uri = <<"https://example.com/Test">>,
353+
hue = <<"100">>}]},
354+
xmpp:get_subtag(PresHat, #muc_hats{})),
355+
put_event(Config, post_hat_assign),
356+
post_hat_assign = get_event(Config),
357+
recv_muc_presence(Config, PeerNickJID, unavailable),
358+
ok = leave(Config),
359+
disconnect(Config).
360+
361+
hats_slave(Config) ->
362+
Room = muc_room_jid(Config),
363+
MyNick = ?config(nick, Config),
364+
MyNickJID = jid:replace_resource(Room, MyNick),
365+
{[], _, _} = slave_join(Config),
366+
[104] = recv_only_config_change_message(Config),
367+
post_hat_setup = get_event(Config),
368+
put_event(Config, post_hat_setup),
369+
#presence{from = MyNickJID} = PresHat = recv_presence(Config),
370+
?match(#muc_hats{hats = [#muc_hat{title = <<"Test">>,
371+
uri = <<"https://example.com/Test">>,
372+
hue = <<"100">>}]},
373+
xmpp:get_subtag(PresHat, #muc_hats{})),
374+
post_hat_assign = get_event(Config),
375+
put_event(Config, post_hat_assign),
376+
ok = leave(Config),
377+
disconnect(Config).
378+
311379
duplicate_occupantid_master(Config) ->
312380
Room = muc_room_jid(Config),
313381
PeerJID = ?config(slave, Config),
@@ -1950,6 +2018,11 @@ recv_config_change_message(Config) ->
19502018
ct:comment("Receiving configuration change notification message"),
19512019
Room = muc_room_jid(Config),
19522020
#presence{from = Room, type = available} = recv_presence(Config),
2021+
recv_only_config_change_message(Config).
2022+
2023+
recv_only_config_change_message(Config) ->
2024+
ct:comment("Receiving configuration change notification message"),
2025+
Room = muc_room_jid(Config),
19532026
#message{type = groupchat, from = Room} = Msg = recv_message(Config),
19542027
#muc_user{status_codes = Codes} = xmpp:get_subtag(Msg, #muc_user{}),
19552028
lists:sort(Codes).

0 commit comments

Comments
 (0)