#include #include #include #include #include #include #include #include #include "proftest.h" #include "checkers/checkers.h" #include "xmpp/xmpp.h" #include "ui/stub_ui.h" #include "ui/window.h" #include "command/command.h" void connect_jid(void **state) { will_return(ui_ask_password, strdup("password")); expect_cons_show("Connecting as stabber@localhost"); cmd_process_input(strdup("/connect stabber@localhost port 5230")); prof_process_xmpp(20); jabber_conn_status_t status = jabber_get_connection_status(); assert_true(status == JABBER_CONNECTED); } void connect_jid_requests_roster(void **state) { will_return(ui_ask_password, strdup("password")); expect_any_cons_show(); cmd_process_input(strdup("/connect stabber@localhost port 5230")); prof_process_xmpp(20); assert_true(stbbr_verify( "" )); } void connect_jid_sends_presence_after_receiving_roster(void **state) { will_return(ui_ask_password, strdup("password")); expect_any_cons_show(); stbbr_for("roster", "" "" "" "" "" "" ); cmd_process_input(strdup("/connect stabber@localhost port 5230")); prof_process_xmpp(20); assert_true(stbbr_verify( "" "" "" )); } void connect_jid_requests_bookmarks(void **state) { will_return(ui_ask_password, strdup("password")); expect_any_cons_show(); cmd_process_input(strdup("/connect stabber@localhost port 5230")); prof_process_xmpp(20); assert_true(stbbr_verify( "" "" "" "" "" )); } void connect_bad_password(void **state) { will_return(ui_ask_password, strdup("badpassword")); expect_cons_show("Connecting as stabber@localhost"); expect_cons_show_error("Login failed."); cmd_process_input(strdup("/connect stabber@localhost port 5230")); prof_process_xmpp(20); jabber_conn_status_t status = jabber_get_connection_status(); assert_true(status == JABBER_DISCONNECTED); } void show_presence_updates(void **state) { will_return(ui_ask_password, strdup("password")); expect_any_cons_show(); stbbr_for("roster", "" "" "" "" "" "" ); cmd_process_input(strdup("/connect stabber@localhost port 5230")); prof_process_xmpp(20); stbbr_send( "" "dnd" "busy!" "" "" "chat" "Talk to me!" "" "" "away" "Out of office" "" ); Resource *resource1 = resource_new("mobile", RESOURCE_DND, "busy!", 0); expect_string(ui_contact_online, barejid, "buddy1@localhost"); expect_check(ui_contact_online, resource, (CheckParameterValue)resource_equal_check, resource1); expect_value(ui_contact_online, last_activity, NULL); Resource *resource2 = resource_new("laptop", RESOURCE_CHAT, "Talk to me!", 0); expect_string(ui_contact_online, barejid, "buddy1@localhost"); expect_check(ui_contact_online, resource, (CheckParameterValue)resource_equal_check, resource2); expect_value(ui_contact_online, last_activity, NULL); Resource *resource3 = resource_new("work", RESOURCE_AWAY, "Out of office", 0); expect_string(ui_contact_online, barejid, "buddy2@localhost"); expect_check(ui_contact_online, resource, (CheckParameterValue)resource_equal_check, resource3); expect_value(ui_contact_online, last_activity, NULL); prof_process_xmpp(20); } void sends_rooms_iq(void **state) { will_return(ui_ask_password, strdup("password")); expect_any_cons_show(); cmd_process_input(strdup("/connect stabber@localhost port 5230")); prof_process_xmpp(20); stbbr_for("confreq", "" "" "" "" "" "" ); cmd_process_input(strdup("/rooms")); prof_process_xmpp(20); assert_true(stbbr_verify_last( "" "" "" )); } void multiple_pings(void **state) { will_return(ui_ask_password, strdup("password")); expect_any_cons_show(); cmd_process_input(strdup("/connect stabber@localhost port 5230")); prof_process_xmpp(20); expect_cons_show("Pinged server..."); expect_any_cons_show(); expect_cons_show("Pinged server..."); expect_any_cons_show(); stbbr_for("prof_ping_1", "" ); stbbr_for("prof_ping_2", "" ); cmd_process_input(strdup("/ping")); prof_process_xmpp(20); cmd_process_input(strdup("/ping")); prof_process_xmpp(20); assert_true(stbbr_verify( "" "" "" )); assert_true(stbbr_verify( "" "" "" )); } void responds_to_ping(void **state) { will_return(ui_ask_password, strdup("password")); expect_any_cons_show(); cmd_process_input(strdup("/connect stabber@localhost port 5230")); prof_process_xmpp(20); stbbr_send( "" "" "" ); prof_process_xmpp(20); assert_true(stbbr_verify( "" )); }