diff options
Diffstat (limited to 'tests/functionaltests')
-rw-r--r-- | tests/functionaltests/functionaltests.c | 9 | ||||
-rw-r--r-- | tests/functionaltests/test_muc.c | 54 | ||||
-rw-r--r-- | tests/functionaltests/test_muc.h | 2 | ||||
-rw-r--r-- | tests/functionaltests/test_ping.c | 117 | ||||
-rw-r--r-- | tests/functionaltests/test_ping.h | 7 | ||||
-rw-r--r-- | tests/functionaltests/test_rooms.c | 12 |
6 files changed, 189 insertions, 12 deletions
diff --git a/tests/functionaltests/functionaltests.c b/tests/functionaltests/functionaltests.c index 1e01071d..5e8656b7 100644 --- a/tests/functionaltests/functionaltests.c +++ b/tests/functionaltests/functionaltests.c @@ -35,8 +35,11 @@ int main(int argc, char* argv[]) { PROF_FUNC_TEST(connect_bad_password), PROF_FUNC_TEST(connect_shows_presence_updates), - PROF_FUNC_TEST(ping_multiple), - PROF_FUNC_TEST(ping_responds), + PROF_FUNC_TEST(ping_server), + PROF_FUNC_TEST(ping_server_not_supported), + PROF_FUNC_TEST(ping_responds_to_server_request), + PROF_FUNC_TEST(ping_jid), + PROF_FUNC_TEST(ping_jid_not_supported), PROF_FUNC_TEST(rooms_query), @@ -98,6 +101,8 @@ int main(int argc, char* argv[]) { PROF_FUNC_TEST(shows_history_message), PROF_FUNC_TEST(shows_occupant_join), PROF_FUNC_TEST(shows_message), + PROF_FUNC_TEST(shows_me_message_from_occupant), + PROF_FUNC_TEST(shows_me_message_from_self), PROF_FUNC_TEST(shows_all_messages_in_console_when_window_not_focussed), PROF_FUNC_TEST(shows_first_message_in_console_when_window_not_focussed), PROF_FUNC_TEST(shows_no_message_in_console_when_window_not_focussed), diff --git a/tests/functionaltests/test_muc.c b/tests/functionaltests/test_muc.c index e7fc8dcb..3aac9988 100644 --- a/tests/functionaltests/test_muc.c +++ b/tests/functionaltests/test_muc.c @@ -209,6 +209,60 @@ shows_message(void **state) } void +shows_me_message_from_occupant(void **state) +{ + prof_connect(); + + stbbr_for_id("prof_join_4", + "<presence id='prof_join_4' lang='en' to='stabber@localhost/profanity' from='testroom@conference.localhost/stabber'>" + "<c hash='sha-1' xmlns='http://jabber.org/protocol/caps' node='http://www.profanity.im' ver='*'/>" + "<x xmlns='http://jabber.org/protocol/muc#user'>" + "<item role='participant' jid='stabber@localhost/profanity' affiliation='none'/>" + "</x>" + "<status code='110'/>" + "</presence>" + ); + + prof_input("/join testroom@conference.localhost"); + assert_true(prof_output_exact("-> You have joined the room as stabber, role: participant, affiliation: none")); + + stbbr_send( + "<message type='groupchat' to='stabber@localhost/profanity' from='testroom@conference.localhost/testoccupant'>" + "<body>/me did something</body>" + "</message>" + ); + + assert_true(prof_output_exact("*testoccupant did something")); +} + +void +shows_me_message_from_self(void **state) +{ + prof_connect(); + + stbbr_for_id("prof_join_4", + "<presence id='prof_join_4' lang='en' to='stabber@localhost/profanity' from='testroom@conference.localhost/stabber'>" + "<c hash='sha-1' xmlns='http://jabber.org/protocol/caps' node='http://www.profanity.im' ver='*'/>" + "<x xmlns='http://jabber.org/protocol/muc#user'>" + "<item role='participant' jid='stabber@localhost/profanity' affiliation='none'/>" + "</x>" + "<status code='110'/>" + "</presence>" + ); + + prof_input("/join testroom@conference.localhost"); + assert_true(prof_output_exact("-> You have joined the room as stabber, role: participant, affiliation: none")); + + stbbr_send( + "<message type='groupchat' to='stabber@localhost/profanity' from='testroom@conference.localhost/stabber'>" + "<body>/me did something</body>" + "</message>" + ); + + assert_true(prof_output_exact("*stabber did something")); +} + +void shows_all_messages_in_console_when_window_not_focussed(void **state) { prof_connect(); diff --git a/tests/functionaltests/test_muc.h b/tests/functionaltests/test_muc.h index 4f3c4f5d..1636bd05 100644 --- a/tests/functionaltests/test_muc.h +++ b/tests/functionaltests/test_muc.h @@ -7,6 +7,8 @@ void shows_subject_on_join(void **state); void shows_history_message(void **state); void shows_occupant_join(void **state); void shows_message(void **state); +void shows_me_message_from_occupant(void **state); +void shows_me_message_from_self(void **state); void shows_all_messages_in_console_when_window_not_focussed(void **state); void shows_first_message_in_console_when_window_not_focussed(void **state); void shows_no_message_in_console_when_window_not_focussed(void **state); diff --git a/tests/functionaltests/test_ping.c b/tests/functionaltests/test_ping.c index ecbbfee1..5bb937b6 100644 --- a/tests/functionaltests/test_ping.c +++ b/tests/functionaltests/test_ping.c @@ -12,8 +12,17 @@ #include "proftest.h" void -ping_multiple(void **state) +ping_server(void **state) { + stbbr_for_id("prof_disco_info_onconnect_2", + "<iq id='prof_disco_info_onconnect_2' to='stabber@localhost/profanity' type='result' from='localhost'>" + "<query xmlns='http://jabber.org/protocol/disco#info'>" + "<identity category='server' type='im' name='Prosody'/>" + "<feature var='urn:xmpp:ping'/>" + "</query>" + "</iq>" + ); + stbbr_for_id("prof_ping_4", "<iq id='prof_ping_4' type='result' to='stabber@localhost/profanity'/>" ); @@ -41,7 +50,24 @@ ping_multiple(void **state) } void -ping_responds(void **state) +ping_server_not_supported(void **state) +{ + stbbr_for_id("prof_disco_info_onconnect_2", + "<iq id='prof_disco_info_onconnect_2' to='stabber@localhost/profanity' type='result' from='localhost'>" + "<query xmlns='http://jabber.org/protocol/disco#info'>" + "<identity category='server' type='im' name='Stabber'/>" + "</query>" + "</iq>" + ); + + prof_connect(); + + prof_input("/ping"); + assert_true(prof_output_exact("Server does not support ping requests.")); +} + +void +ping_responds_to_server_request(void **state) { prof_connect(); @@ -55,3 +81,90 @@ ping_responds(void **state) "<iq id='pingtest1' type='result' from='stabber@localhost/profanity' to='localhost'/>" )); } + +void ping_jid(void **state) +{ + stbbr_for_id("prof_caps_4", + "<iq id='prof_caps_4' to='stabber@localhost/profanity' type='result' from='buddy1@localhost/mobile'>" + "<query xmlns='http://jabber.org/protocol/disco#info' node='http://www.profanity.im#LpT2xs3nun7jC2sq4gg3WRDQFZ4='>" + "<identity category='client' type='console' name='Profanity0.6.0'/>" + "<feature var='urn:xmpp:ping'/>" + "<feature var='http://jabber.org/protocol/disco#info'/>" + "<feature var='http://jabber.org/protocol/caps'/>" + "</query>" + "</iq>" + ); + + prof_connect(); + + stbbr_send( + "<presence to='stabber@localhost' from='buddy1@localhost/mobile'>" + "<priority>10</priority>" + "<status>I'm here</status>" + "<c " + "hash='sha-1' " + "xmlns='http://jabber.org/protocol/caps' " + "node='http://www.profanity.im' " + "ver='LpT2xs3nun7jC2sq4gg3WRDQFZ4='" + "/>" + "</presence>" + ); + assert_true(prof_output_exact("Buddy1 (mobile) is online, \"I'm here\"")); + + assert_true(stbbr_received( + "<iq id='prof_caps_4' to='buddy1@localhost/mobile' type='get'>" + "<query xmlns='http://jabber.org/protocol/disco#info' node='http://www.profanity.im#LpT2xs3nun7jC2sq4gg3WRDQFZ4='/>" + "</iq>" + )); + + stbbr_for_id("prof_ping_5", + "<iq from='buddy1@localhost/mobile' to='stabber@localhost' id='prof_ping_5' type='result'/>" + ); + + prof_input("/ping buddy1@localhost/mobile"); + + assert_true(stbbr_received( + "<iq id='prof_ping_5' type='get' to='buddy1@localhost/mobile'>" + "<ping xmlns='urn:xmpp:ping'/>" + "</iq>" + )); + assert_true(prof_output_exact("Ping response from buddy1@localhost/mobile")); +} + +void ping_jid_not_supported(void **state) +{ + stbbr_for_id("prof_caps_4", + "<iq id='prof_caps_4' to='stabber@localhost/profanity' type='result' from='buddy1@localhost/mobile'>" + "<query xmlns='http://jabber.org/protocol/disco#info' node='http://www.profanity.im#LpT2xs3nun7jC2sq4gg3WRDQFZ4='>" + "<identity category='client' type='console' name='Profanity0.6.0'/>" + "<feature var='http://jabber.org/protocol/disco#info'/>" + "<feature var='http://jabber.org/protocol/caps'/>" + "</query>" + "</iq>" + ); + + prof_connect(); + + stbbr_send( + "<presence to='stabber@localhost' from='buddy1@localhost/mobile'>" + "<priority>10</priority>" + "<status>I'm here</status>" + "<c " + "hash='sha-1' " + "xmlns='http://jabber.org/protocol/caps' " + "node='http://www.profanity.im' " + "ver='LpT2xs3nun7jC2sq4gg3WRDQFZ4='" + "/>" + "</presence>" + ); + assert_true(prof_output_exact("Buddy1 (mobile) is online, \"I'm here\"")); + + assert_true(stbbr_received( + "<iq id='prof_caps_4' to='buddy1@localhost/mobile' type='get'>" + "<query xmlns='http://jabber.org/protocol/disco#info' node='http://www.profanity.im#LpT2xs3nun7jC2sq4gg3WRDQFZ4='/>" + "</iq>" + )); + + prof_input("/ping buddy1@localhost/mobile"); + assert_true(prof_output_exact("buddy1@localhost/mobile does not support ping requests.")); +} diff --git a/tests/functionaltests/test_ping.h b/tests/functionaltests/test_ping.h index a222a486..1f2eeb91 100644 --- a/tests/functionaltests/test_ping.h +++ b/tests/functionaltests/test_ping.h @@ -1,2 +1,5 @@ -void ping_multiple(void **state); -void ping_responds(void **state); +void ping_server(void **state); +void ping_server_not_supported(void **state); +void ping_responds_to_server_request(void **state); +void ping_jid(void **state); +void ping_jid_not_supported(void **state); diff --git a/tests/functionaltests/test_rooms.c b/tests/functionaltests/test_rooms.c index c0103279..49b1d892 100644 --- a/tests/functionaltests/test_rooms.c +++ b/tests/functionaltests/test_rooms.c @@ -14,8 +14,8 @@ void rooms_query(void **state) { - stbbr_for_id("confreq", - "<iq id='confreq' type='result' to='stabber@localhost/profanity' from='conference.localhost'>" + stbbr_for_id("prof_confreq_4", + "<iq id='prof_confreq_4' type='result' to='stabber@localhost/profanity' from='conference.localhost'>" "<query xmlns='http://jabber.org/protocol/disco#items'>" "<item jid='chatroom@conference.localhost' name='A chat room'/>" "<item jid='hangout@conference.localhost' name='Another chat room'/>" @@ -25,13 +25,13 @@ rooms_query(void **state) prof_connect(); - prof_input("/rooms conference.localhost"); + prof_input("/rooms service conference.localhost"); - assert_true(prof_output_exact("chatroom@conference.localhost, (A chat room)")); - assert_true(prof_output_exact("hangout@conference.localhost, (Another chat room)")); + assert_true(prof_output_exact("chatroom@conference.localhost (A chat room)")); + assert_true(prof_output_exact("hangout@conference.localhost (Another chat room)")); assert_true(stbbr_last_received( - "<iq id='confreq' to='conference.localhost' type='get'>" + "<iq id='prof_confreq_4' to='conference.localhost' type='get'>" "<query xmlns='http://jabber.org/protocol/disco#items'/>" "</iq>" )); |