#include <glib.h> #include <stdarg.h> #include <stddef.h> #include <setjmp.h> #include <cmocka.h> #include <stdlib.h> #include <string.h> #include <stabber.h> #include <expect.h> #include "proftest.h" void sends_new_item(void **state) { prof_connect(); stbbr_for_query("jabber:iq:roster", "<iq type='set' from='stabber@localhost'>" "<query xmlns='jabber:iq:roster'>" "<item jid='bob@localhost' subscription='none' name=''/>" "</query>" "</iq>" ); prof_input("/roster add bob@localhost"); assert_true(stbbr_received( "<iq type='set' id='*'>" "<query xmlns='jabber:iq:roster'>" "<item jid='bob@localhost' name=''/>" "</query>" "</iq>" )); assert_true(prof_output_exact("Roster item added: bob@localhost")); } void sends_new_item_nick(void **state) { prof_connect(); stbbr_for_query("jabber:iq:roster", "<iq type='set' from='stabber@localhost'>" "<query xmlns='jabber:iq:roster'>" "<item jid='bob@localhost' subscription='none' name='Bobby'/>" "</query>" "</iq>" ); prof_input("/roster add bob@localhost Bobby"); assert_true(stbbr_received( "<iq type='set' id='*'>" "<query xmlns='jabber:iq:roster'>" "<item jid='bob@localhost' name='Bobby'/>" "</query>" "</iq>" )); assert_true(prof_output_exact("Roster item added: bob@localhost (Bobby)")); } void sends_remove_item(void **state) { prof_connect_with_roster( "<item jid='buddy1@localhost' subscription='both'/>" "<item jid='buddy2@localhost' subscription='both'/>" ); stbbr_for_query("jabber:iq:roster", "<iq id='*' type='set'>" "<query xmlns='jabber:iq:roster'>" "<item jid='buddy1@localhost' subscription='remove'/>" "</query>" "</iq>" ); prof_input("/roster remove buddy1@localhost"); assert_true(stbbr_received( "<iq type='set' id='*'>" "<query xmlns='jabber:iq:roster'>" "<item jid='buddy1@localhost' subscription='remove'/>" "</query>" "</iq>" )); assert_true(prof_output_exact("Roster item removed: buddy1@localhost")); } void sends_nick_change(void **state) { prof_connect_with_roster( "<item jid='buddy1@localhost' subscription='both'/>" ); prof_input("/roster nick buddy1@localhost Buddy1"); assert_true(prof_output_exact("Nickname for buddy1@localhost set to: Buddy1.")); assert_true(stbbr_received( "<iq type='set' id='*'>" "<query xmlns='jabber:iq:roster'>" "<item jid='buddy1@localhost' name='Buddy1'/>" "</query>" "</iq>" )); }