From a8ecbccc9c29a4d9b0ba21fa0a7b6e804f226626 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 2 Feb 2014 00:37:37 +0000 Subject: [PATCH] Added /bookmark remove tests --- src/command/commands.c | 5 +++++ tests/test_cmd_bookmark.c | 38 ++++++++++++++++++++++++++++++++++++++ tests/test_cmd_bookmark.h | 2 ++ tests/testsuite.c | 2 ++ tests/xmpp/mock_xmpp.c | 20 ++++++++++++++++++++ tests/xmpp/mock_xmpp.h | 3 +++ 6 files changed, 70 insertions(+) diff --git a/src/command/commands.c b/src/command/commands.c index 3bc628d1..f28bea4c 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -1778,6 +1778,11 @@ cmd_bookmark(gchar **args, struct cmd_help_t help) g_string_free(msg, TRUE); } else if (strcmp(cmd, "remove") == 0) { bookmark_remove(jid, autojoin); + if (autojoin) { + cons_show("Autojoin disabled for %s.", jid); + } else { + cons_show("Bookmark removed for %s.", jid); + } } else { cons_show("Usage: %s", help.usage); } diff --git a/tests/test_cmd_bookmark.c b/tests/test_cmd_bookmark.c index 60d48550..fc150dc3 100644 --- a/tests/test_cmd_bookmark.c +++ b/tests/test_cmd_bookmark.c @@ -290,3 +290,41 @@ void cmd_bookmark_add_adds_bookmark_with_room_details_autojoin(void **state) free(help); muc_close(); } + +void cmd_bookmark_remove_removes_bookmark(void **state) +{ + mock_bookmark_remove(); + mock_cons_show(); + char *jid = "room@conf.server"; + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "remove", jid, NULL }; + + mock_connection_status(JABBER_CONNECTED); + + expect_bookmark_remove(jid, FALSE); + expect_cons_show("Bookmark removed for room@conf.server."); + + gboolean result = cmd_bookmark(args, *help); + assert_true(result); + + free(help); +} + +void cmd_bookmark_remove_removes_autojoin(void **state) +{ + mock_bookmark_remove(); + mock_cons_show(); + char *jid = "room@conf.server"; + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "remove", jid, "autojoin", NULL }; + + mock_connection_status(JABBER_CONNECTED); + + expect_bookmark_remove(jid, TRUE); + expect_cons_show("Autojoin disabled for room@conf.server."); + + gboolean result = cmd_bookmark(args, *help); + assert_true(result); + + free(help); +} diff --git a/tests/test_cmd_bookmark.h b/tests/test_cmd_bookmark.h index de381c1a..972a93b0 100644 --- a/tests/test_cmd_bookmark.h +++ b/tests/test_cmd_bookmark.h @@ -13,3 +13,5 @@ void cmd_bookmark_add_adds_bookmark_with_jid_autojoin(void **state); void cmd_bookmark_add_adds_bookmark_with_jid_nick_autojoin(void **state); void cmd_bookmark_add_adds_bookmark_with_room_details(void **state); void cmd_bookmark_add_adds_bookmark_with_room_details_autojoin(void **state); +void cmd_bookmark_remove_removes_bookmark(void **state); +void cmd_bookmark_remove_removes_autojoin(void **state); diff --git a/tests/testsuite.c b/tests/testsuite.c index 8446461f..673311df 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -454,6 +454,8 @@ int main(int argc, char* argv[]) { unit_test(cmd_bookmark_add_adds_bookmark_with_jid_nick_autojoin), unit_test(cmd_bookmark_add_adds_bookmark_with_room_details), unit_test(cmd_bookmark_add_adds_bookmark_with_room_details_autojoin), + unit_test(cmd_bookmark_remove_removes_bookmark), + unit_test(cmd_bookmark_remove_removes_autojoin), }; diff --git a/tests/xmpp/mock_xmpp.c b/tests/xmpp/mock_xmpp.c index d6518322..80b1a3e7 100644 --- a/tests/xmpp/mock_xmpp.c +++ b/tests/xmpp/mock_xmpp.c @@ -72,6 +72,13 @@ _mock_bookmark_add(const char *jid, const char *nick, gboolean autojoin) check_expected(autojoin); } +static void +_mock_bookmark_remove(const char *jid, gboolean autojoin) +{ + check_expected(jid); + check_expected(autojoin); +} + void mock_jabber_connect_with_details(void) { @@ -103,6 +110,12 @@ mock_bookmark_add(void) bookmark_add = _mock_bookmark_add; } +void +mock_bookmark_remove(void) +{ + bookmark_remove = _mock_bookmark_remove; +} + void bookmark_get_list_returns(GList *bookmarks) { @@ -191,3 +204,10 @@ expect_bookmark_add(char *expected_jid, char *expected_nick, gboolean expected_a } expect_value(_mock_bookmark_add, autojoin, expected_autojoin); } + +void +expect_bookmark_remove(char *expected_jid, gboolean expected_autojoin) +{ + expect_string(_mock_bookmark_remove, jid, expected_jid); + expect_value(_mock_bookmark_remove, autojoin, expected_autojoin); +} diff --git a/tests/xmpp/mock_xmpp.h b/tests/xmpp/mock_xmpp.h index b3da50d4..12862d51 100644 --- a/tests/xmpp/mock_xmpp.h +++ b/tests/xmpp/mock_xmpp.h @@ -26,4 +26,7 @@ void bookmark_get_list_returns(GList *bookmarks); void mock_bookmark_add(void); void expect_bookmark_add(char *expected_jid, char *expected_nick, gboolean expected_autojoin); +void mock_bookmark_remove(void); +void expect_bookmark_remove(char *expected_jid, gboolean expected_autojoin); + #endif