about summary refs log tree commit diff stats
path: root/tests/test_chat_session.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-01-06 21:22:09 +0000
committerJames Booth <boothj5@gmail.com>2015-01-06 21:22:09 +0000
commitf7843def2f307286448fda166b425f48aaa6ddf0 (patch)
tree2e91bac7c056a91e88f40c97ca403360afbc3f45 /tests/test_chat_session.c
parent8d759741e8b71f4bdb0dabcc4c6c453074f85960 (diff)
downloadprofani-tty-f7843def2f307286448fda166b425f48aaa6ddf0.tar.gz
Added chat session tests
Diffstat (limited to 'tests/test_chat_session.c')
-rw-r--r--tests/test_chat_session.c125
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