#include #include #include #include #include #include #include #include #include #include "proftest.h" void presence_online(void **state) { prof_connect(); prof_input("/online"); assert_true(stbbr_received( "" "" "" )); assert_true(prof_output_exact("Status set to online (priority 0)")); } void presence_online_with_message(void **state) { prof_connect(); prof_input("/online \"Hi there\""); assert_true(stbbr_received( "" "Hi there" "" "" )); assert_true(prof_output_exact("Status set to online (priority 0), \"Hi there\".")); } void presence_away(void **state) { prof_connect(); prof_input("/away"); assert_true(stbbr_received( "" "away" "" "" )); assert_true(prof_output_exact("Status set to away (priority 0)")); } void presence_away_with_message(void **state) { prof_connect(); prof_input("/away \"I'm not here for a bit\""); assert_true(stbbr_received( "" "away" "I'm not here for a bit" "" "" )); assert_true(prof_output_exact("Status set to away (priority 0), \"I'm not here for a bit\".")); } void presence_xa(void **state) { prof_connect(); prof_input("/xa"); assert_true(stbbr_received( "" "xa" "" "" )); assert_true(prof_output_exact("Status set to xa (priority 0)")); } void presence_xa_with_message(void **state) { prof_connect(); prof_input("/xa \"Gone to the shops\""); assert_true(stbbr_received( "" "xa" "Gone to the shops" "" "" )); assert_true(prof_output_exact("Status set to xa (priority 0), \"Gone to the shops\".")); } void presence_dnd(void **state) { prof_connect(); prof_input("/dnd"); assert_true(stbbr_received( "" "dnd" "" "" )); assert_true(prof_output_exact("Status set to dnd (priority 0)")); } void presence_dnd_with_message(void **state) { prof_connect(); prof_input("/dnd \"Working\""); assert_true(stbbr_received( "" "dnd" "Working" "" "" )); assert_true(prof_output_exact("Status set to dnd (priority 0), \"Working\".")); } void presence_chat(void **state) { prof_connect(); prof_input("/chat"); assert_true(stbbr_received( "" "chat" "" "" )); assert_true(prof_output_exact("Status set to chat (priority 0)")); } void presence_chat_with_message(void **state) { prof_connect(); prof_input("/chat \"Free to talk\""); assert_true(stbbr_received( "" "chat" "Free to talk" "" "" )); assert_true(prof_output_exact("Status set to chat (priority 0), \"Free to talk\".")); } void presence_set_priority(void **state) { prof_connect(); prof_input("/priority 25"); assert_true(stbbr_received( "" "25" "" "" )); assert_true(prof_output_exact("Priority set to 25.")); } void presence_includes_priority(void **state) { prof_connect(); prof_input("/priority 25"); assert_true(stbbr_received( "" "25" "" "" )); assert_true(prof_output_exact("Priority set to 25.")); prof_input("/chat \"Free to talk\""); assert_true(stbbr_received( "" "25" "chat" "Free to talk" "" "" )); assert_true(prof_output_exact("Status set to chat (priority 25), \"Free to talk\".")); } void presence_keeps_status(void **state) { prof_connect(); prof_input("/chat \"Free to talk\""); assert_true(stbbr_received( "" "chat" "Free to talk" "" "" )); assert_true(prof_output_exact("Status set to chat (priority 0), \"Free to talk\".")); prof_input("/priority 25"); assert_true(stbbr_received( "" "chat" "Free to talk" "25" "" "" )); assert_true(prof_output_exact("Priority set to 25.")); } void presence_received(void **state) { prof_connect(); stbbr_send( "" "10" "I'm here" "" ); assert_true(prof_output_exact("Buddy1 (mobile) is online, \"I'm here\"")); } // Typical use case for gateways that don't support resources void presence_missing_resource_defaults(void **state) { prof_connect(); stbbr_send( "" "15" "My status" "" ); assert_true(prof_output_exact("Buddy1 is online, \"My status\"")); prof_input("/info Buddy1"); assert_true(prof_output_exact("__prof_default (15), online")); }