diff options
author | James Booth <boothj5@gmail.com> | 2015-01-06 21:22:09 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-01-06 21:22:09 +0000 |
commit | f7843def2f307286448fda166b425f48aaa6ddf0 (patch) | |
tree | 2e91bac7c056a91e88f40c97ca403360afbc3f45 /tests/test_chat_session.c | |
parent | 8d759741e8b71f4bdb0dabcc4c6c453074f85960 (diff) | |
download | profani-tty-f7843def2f307286448fda166b425f48aaa6ddf0.tar.gz |
Added chat session tests
Diffstat (limited to 'tests/test_chat_session.c')
-rw-r--r-- | tests/test_chat_session.c | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/tests/test_chat_session.c b/tests/test_chat_session.c new file mode 100644 index 00000000..a93c64b6 --- /dev/null +++ b/tests/test_chat_session.c @@ -0,0 +1,125 @@ +#include <stdarg.h> +#include <string.h> +#include <stddef.h> +#include <setjmp.h> +#include <cmocka.h> +#include <stdlib.h> + +#include "chat_session.h" + +void returns_false_when_chat_session_does_not_exist(void **state) +{ + gboolean result = chat_session_exists("somejid@server.org"); + assert_false(result); +} + +void creates_chat_session_on_message_send(void **state) +{ + char *barejid = "myjid@server.org"; + + chat_session_on_message_send(barejid); + gboolean exists = chat_session_exists(barejid); + + assert_true(exists); +} + +void creates_chat_session_on_activity(void **state) +{ + char *barejid = "myjid@server.org"; + + chat_session_on_activity(barejid); + gboolean exists = chat_session_exists(barejid); + + assert_true(exists); +} + +void returns_null_resource_for_new_session(void **state) +{ + char *barejid = "myjid@server.org"; + + chat_session_on_message_send(barejid); + char *resource = chat_session_get_resource(barejid); + + assert_null(resource); +} + +void returns_true_send_states_for_new_session(void **state) +{ + char *barejid = "myjid@server.org"; + + chat_session_on_message_send(barejid); + gboolean send_states = chat_session_send_states(barejid); + + assert_true(send_states); +} + +void sets_resource_on_incoming_message(void **state) +{ + char *barejid = "myjid@server.org"; + char *expected_resource = "laptop"; + + chat_session_on_message_send(barejid); + chat_session_on_incoming_message(barejid, expected_resource, FALSE); + char *actual_resource = chat_session_get_resource(barejid); + + assert_string_equal(expected_resource, actual_resource); +} + +void sets_send_states_on_incoming_message(void **state) +{ + char *barejid = "myjid@server.org"; + + chat_session_on_message_send(barejid); + chat_session_on_incoming_message(barejid, "resource", TRUE); + gboolean send_states = chat_session_send_states(barejid); + + assert_true(send_states); +} + +void replaces_chat_session_when_new_resource(void **state) +{ + char *barejid = "myjid@server.org"; + char *first_resource = "laptop"; + char *second_resource = "mobile"; + + chat_session_on_message_send(barejid); + chat_session_on_incoming_message(barejid, first_resource, TRUE); + chat_session_on_incoming_message(barejid, second_resource, TRUE); + char *actual_resource = chat_session_get_resource(barejid); + + assert_string_equal(second_resource, actual_resource); +} + +void removes_chat_session_on_window_close(void **state) +{ + char *barejid = "myjid@server.org"; + + chat_session_on_message_send(barejid); + chat_session_on_window_close(barejid); + gboolean exists = chat_session_exists(barejid); + + assert_false(exists); +} + +void removes_chat_session_on_cancel_for_barejid(void **state) +{ + char *barejid = "myjid@server.org"; + + chat_session_on_message_send(barejid); + chat_session_on_cancel(barejid); + gboolean exists = chat_session_exists(barejid); + + assert_false(exists); +} + +void removes_chat_session_on_cancel_for_fulljid(void **state) +{ + char *barejid = "myjid@server.org"; + char *fulljid = "myjid@server.org/desktop"; + + chat_session_on_message_send(barejid); + chat_session_on_cancel(fulljid); + gboolean exists = chat_session_exists(barejid); + + assert_false(exists); +} \ No newline at end of file |