1: -module(tr_util_SUITE).
    2: -compile([export_all, nowarn_export_all]).
    3: 
    4: -import(distributed_helper, [rpc/4, mim/0]).
    5: 
    6: -include_lib("eunit/include/eunit.hrl").
    7: 
    8: all() ->
    9:     [c2s_hooks].
   10: 
   11: suite() ->
   12:     escalus:suite().
   13: 
   14: init_per_suite(Config) ->
   15:     rpc(mim(), tr, start, []),
   16:     escalus:init_per_suite(Config).
   17: 
   18: end_per_suite(Config) ->
   19:     escalus:end_per_suite(Config),
   20:     rpc(mim(), tr, stop, []).
   21: 
   22: init_per_testcase(CaseName, Config) ->
   23:     escalus:init_per_testcase(CaseName, Config).
   24: 
   25: end_per_testcase(_CaseName, _Config) ->
   26:     rpc(mim(), tr, clean, []).
   27: 
   28: c2s_hooks(Config) ->
   29:     escalus:fresh_story(Config, [{alice, 1}, {bob, 1}], fun c2s_hooks_story/2).
   30: 
   31: c2s_hooks_story(Alice, Bob) ->
   32:     rpc(mim(), tr, trace, [[mongoose_c2s_hooks]]),
   33:     escalus_client:send(Alice, escalus_stanza:chat_to(Bob, <<"Hello">>)),
   34:     escalus:wait_for_stanza(Bob),
   35:     rpc(mim(), tr, stop_tracing, []),
   36:     AliceBareJid = escalus_utils:get_short_jid(Alice),
   37:     BobBareJid = escalus_utils:get_short_jid(Bob),
   38:     AliceJid = escalus_utils:get_jid(Alice),
   39:     BobJid = escalus_utils:get_jid(Bob),
   40:     ?assertMatch([#{name := <<"message">>, type := <<"chat">>,
   41:                     jid := AliceJid, from := AliceJid, to := BobJid},
   42:                   #{name := <<"message">>, type := <<"chat">>,
   43:                     jid := BobJid, from := AliceJid, to := BobJid}],
   44:                  rpc(mim(), tr_util, c2s_elements_between_jids, [[AliceBareJid, BobBareJid]])).