@@ -446,9 +446,41 @@ h_ok_after_a_chat(ConfigIn) ->
446
446
escalus :send (User , escalus_stanza :sm_ack (3 ))
447
447
end ).
448
448
449
- h_ok_after_presence (_ConfigIn ) -> ok .
450
- h_ok_after_iq (_ConfigIn ) -> ok .
451
- h_ok_after_non_xmpp_stanza (_ConfigIn ) -> ok .
449
+ h_ok_after_presence (Config ) ->
450
+ User = connect_fresh (Config , ? config (user , Config ), sm_before_session ),
451
+ assert_h (User , 1 ),
452
+ Presence = escalus_stanza :presence (<<" available" >>),
453
+ escalus :send (User , Presence ),
454
+ escalus :assert (is_presence , escalus :wait_for_stanza (User )),
455
+ assert_h (User , 2 ),
456
+ escalus :send (User , Presence ),
457
+ escalus :assert (is_presence , escalus :wait_for_stanza (User )),
458
+ assert_h (User , 3 ).
459
+
460
+ h_ok_after_iq (Config ) ->
461
+ User = connect_fresh (Config , ? config (user , Config ), sm_before_session ),
462
+ assert_h (User , 1 ),
463
+ Iq = escalus_stanza :iq_get (<<" invalid_ns" >>, []),
464
+ escalus_client :send (User , Iq ),
465
+ escalus :assert (is_iq_error , escalus :wait_for_stanza (User )),
466
+ assert_h (User , 2 ),
467
+ escalus_client :send (User , Iq ),
468
+ escalus :assert (is_iq_error , escalus :wait_for_stanza (User )),
469
+ assert_h (User , 3 ).
470
+
471
+ h_ok_after_non_xmpp_stanza (Config ) ->
472
+ User = connect_fresh (Config , ? config (user , Config ), sm_before_session ),
473
+ assert_h (User , 1 ),
474
+ % % SM stanzas are not counted
475
+ assert_h (User , 1 ),
476
+ % % CSI stanzas are not counted
477
+ CsiActive = csi_helper :csi_stanza (<<" active" >>),
478
+ escalus_client :send (User , CsiActive ),
479
+ assert_h (User , 1 ),
480
+ % % any non-xmpp stanza is not counted
481
+ Stanza = # xmlel {name = <<" dummy_stanza" >>},
482
+ escalus_client :send (User , Stanza ),
483
+ assert_h (User , 1 ).
452
484
453
485
h_non_given_closes_stream_gracefully (ConfigIn ) ->
454
486
AStanza = # xmlel {name = <<" a" >>,
0 commit comments