From c6ff761a95da09b53b3dd385ead93f55ca2fb3f2 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sat, 6 Jun 2015 01:02:27 +0100 Subject: Added chat session functional tests --- functionaltests/test_chat_session.c | 264 ++++++++++++++++++++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 functionaltests/test_chat_session.c (limited to 'functionaltests/test_chat_session.c') diff --git a/functionaltests/test_chat_session.c b/functionaltests/test_chat_session.c new file mode 100644 index 00000000..11df4e76 --- /dev/null +++ b/functionaltests/test_chat_session.c @@ -0,0 +1,264 @@ +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "proftest.h" + +void +sends_message_to_barejid_when_contact_offline(void **state) +{ + stbbr_for_id("roster", + "" + "" + "" + "" + "" + ); + + prof_connect("stabber@localhost", "password"); + stbbr_wait_for("prof_presence_1"); + + prof_input("/msg buddy1@localhost Hi there"); + + assert_true(stbbr_received( + "" + "Hi there" + "" + )); +} + +void +sends_message_to_barejid_when_contact_online(void **state) +{ + stbbr_for_id("roster", + "" + "" + "" + "" + "" + ); + + prof_connect("stabber@localhost", "password"); + stbbr_wait_for("prof_presence_1"); + + stbbr_send( + "" + "10" + "" + ); + prof_output_exact("buddy1@localhost (mobile) is online"); + + prof_input("/msg buddy1@localhost Hi there"); + + assert_true(stbbr_received( + "" + "Hi there" + "" + )); +} + +void +sends_message_to_fulljid_when_received_from_fulljid(void **state) +{ + stbbr_for_id("roster", + "" + "" + "" + "" + "" + ); + + prof_connect("stabber@localhost", "password"); + stbbr_wait_for("prof_presence_1"); + + stbbr_send( + "" + "10" + "" + ); + prof_output_exact("buddy1@localhost (mobile) is online"); + + stbbr_send( + "" + "First message" + "" + ); + prof_output_exact("<< incoming from buddy1@localhost/mobile (2)"); + + prof_input("/msg buddy1@localhost Hi there"); + + assert_true(stbbr_received( + "" + "Hi there" + "" + )); +} + +void +sends_subsequent_messages_to_fulljid(void **state) +{ + stbbr_for_id("roster", + "" + "" + "" + "" + "" + ); + + prof_connect("stabber@localhost", "password"); + stbbr_wait_for("prof_presence_1"); + + stbbr_send( + "" + "10" + "" + ); + prof_output_exact("buddy1@localhost (mobile) is online"); + + stbbr_send( + "" + "First message" + "" + ); + prof_output_exact("<< incoming from buddy1@localhost/mobile (2)"); + + prof_input("/msg buddy1@localhost Outgoing 1"); + prof_input("/msg buddy1@localhost Outgoing 2"); + prof_input("/msg buddy1@localhost Outgoing 3"); + + assert_true(stbbr_received( + "" + "Outgoing 1" + "" + )); + assert_true(stbbr_received( + "" + "Outgoing 2" + "" + )); + assert_true(stbbr_received( + "" + "Outgoing 3" + "" + )); +} + +void +resets_to_barejid_after_presence_received(void **state) +{ + stbbr_for_id("roster", + "" + "" + "" + "" + "" + ); + + prof_connect("stabber@localhost", "password"); + stbbr_wait_for("prof_presence_1"); + + stbbr_send( + "" + "10" + "" + ); + prof_output_exact("buddy1@localhost (mobile) is online"); + + stbbr_send( + "" + "First message" + "" + ); + prof_output_exact("<< incoming from buddy1@localhost/mobile (2)"); + + prof_input("/msg buddy1@localhost Outgoing 1"); + + assert_true(stbbr_received( + "" + "Outgoing 1" + "" + )); + + stbbr_send( + "" + "5" + "dnd" + "" + ); + prof_output_exact("buddy1@localhost (laptop) is dnd"); + + prof_input("/msg buddy1@localhost Outgoing 2"); + + assert_true(stbbr_received( + "" + "Outgoing 2" + "" + )); +} + +void +new_session_when_message_received_from_different_fulljid(void **state) +{ + stbbr_for_id("roster", + "" + "" + "" + "" + "" + ); + + prof_connect("stabber@localhost", "password"); + stbbr_wait_for("prof_presence_1"); + + stbbr_send( + "" + "10" + "" + ); + prof_output_exact("buddy1@localhost (mobile) is online"); + + stbbr_send( + "" + "8" + "away" + "" + ); + prof_output_exact("buddy1@localhost (laptop) is away"); + + stbbr_send( + "" + "From first resource" + "" + ); + prof_output_exact("<< incoming from buddy1@localhost/mobile (2)"); + + prof_input("/msg buddy1@localhost Outgoing 1"); + + assert_true(stbbr_received( + "" + "Outgoing 1" + "" + )); + + stbbr_send( + "" + "From second resource" + "" + ); + prof_output_regex("buddy1@localhost/laptop:.+From second resource"); + + prof_input("/msg buddy1@localhost Outgoing 2"); + + assert_true(stbbr_received( + "" + "Outgoing 2" + "" + )); +} -- cgit 1.4.1-2-gfad0