diff options
author | James Booth <boothj5@gmail.com> | 2015-06-12 23:53:30 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-06-12 23:53:30 +0100 |
commit | 68ed20f10d2fae67b052674a42ed98c2059aa16f (patch) | |
tree | df8d1e7989282cc2e15dda3cd378b3b2895e9892 /tests/functionaltests/test_presence.c | |
parent | c182f3ecd6be5df9b9bc7757930e47b555ddd251 (diff) | |
download | profani-tty-68ed20f10d2fae67b052674a42ed98c2059aa16f.tar.gz |
Moved all tests to tests folder
Diffstat (limited to 'tests/functionaltests/test_presence.c')
-rw-r--r-- | tests/functionaltests/test_presence.c | 253 |
1 files changed, 253 insertions, 0 deletions
diff --git a/tests/functionaltests/test_presence.c b/tests/functionaltests/test_presence.c new file mode 100644 index 00000000..b26bdccb --- /dev/null +++ b/tests/functionaltests/test_presence.c @@ -0,0 +1,253 @@ +#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 +presence_online(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/online"); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + assert_true(prof_output_exact("Status set to online (priority 0)")); +} + +void +presence_online_with_message(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/online \"Hi there\""); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<status>Hi there</status>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + assert_true(prof_output_exact("Status set to online (priority 0), \"Hi there\".")); +} + +void +presence_away(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/away"); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<show>away</show>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + assert_true(prof_output_exact("Status set to away (priority 0)")); +} + +void +presence_away_with_message(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/away \"I'm not here for a bit\""); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<show>away</show>" + "<status>I'm not here for a bit</status>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + 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("stabber@localhost", "password"); + + prof_input("/xa"); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<show>xa</show>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + assert_true(prof_output_exact("Status set to xa (priority 0)")); +} + +void +presence_xa_with_message(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/xa \"Gone to the shops\""); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<show>xa</show>" + "<status>Gone to the shops</status>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + assert_true(prof_output_exact("Status set to xa (priority 0), \"Gone to the shops\".")); +} + +void +presence_dnd(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/dnd"); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<show>dnd</show>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + assert_true(prof_output_exact("Status set to dnd (priority 0)")); +} + +void +presence_dnd_with_message(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/dnd \"Working\""); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<show>dnd</show>" + "<status>Working</status>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + assert_true(prof_output_exact("Status set to dnd (priority 0), \"Working\".")); +} + +void +presence_chat(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/chat"); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<show>chat</show>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + assert_true(prof_output_exact("Status set to chat (priority 0)")); +} + +void +presence_chat_with_message(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/chat \"Free to talk\""); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<show>chat</show>" + "<status>Free to talk</status>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + assert_true(prof_output_exact("Status set to chat (priority 0), \"Free to talk\".")); +} + +void +presence_set_priority(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/priority 25"); + + assert_true(stbbr_received( + "<presence id=\"*\">" + "<priority>25</priority>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + assert_true(prof_output_exact("Priority set to 25.")); +} + +void +presence_includes_priority(void **state) +{ + prof_connect("stabber@localhost", "password"); + + prof_input("/priority 25"); + assert_true(stbbr_received( + "<presence id=\"*\">" + "<priority>25</priority>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + assert_true(prof_output_exact("Priority set to 25.")); + + prof_input("/chat \"Free to talk\""); + assert_true(stbbr_received( + "<presence id=\"*\">" + "<priority>25</priority>" + "<show>chat</show>" + "<status>Free to talk</status>" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + assert_true(prof_output_exact("Status set to chat (priority 25), \"Free to talk\".")); +} + +void +presence_received(void **state) +{ + stbbr_for_id("roster", + "<iq id=\"roster\" type=\"result\" to=\"stabber@localhost/profanity\">" + "<query xmlns=\"jabber:iq:roster\" ver=\"362\">" + "<item jid=\"buddy1@localhost\" subscription=\"both\" name=\"Buddy1\"/>" + "<item jid=\"buddy2@localhost\" subscription=\"both\" name=\"Buddy2\"/>" + "</query>" + "</iq>" + ); + + prof_connect("stabber@localhost", "password"); + stbbr_wait_for("prof_presence_1"); + + stbbr_send( + "<presence to=\"stabber@localhost\" from=\"buddy1@localhost/mobile\">" + "<priority>10</priority>" + "<status>I'm here</status>" + "</presence>" + ); + + assert_true(prof_output_exact("Buddy1 (mobile) is online, \"I'm here\"")); +} |