diff options
-rw-r--r-- | tests/unittests/test_callbacks.c | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/tests/unittests/test_callbacks.c b/tests/unittests/test_callbacks.c index 32959aa7..78693d4c 100644 --- a/tests/unittests/test_callbacks.c +++ b/tests/unittests/test_callbacks.c @@ -20,13 +20,38 @@ void returns_no_commands(void **state) void returns_commands(void **state) { callbacks_init(); - PluginCommand *command = malloc(sizeof(PluginCommand)); - command->command_name = strdup("something"); - callbacks_add_command("Cool plugin", command); - GList *commands = plugins_get_command_names(); - assert_true(g_list_length(commands) == 1); + PluginCommand *command1 = malloc(sizeof(PluginCommand)); + command1->command_name = strdup("command1"); + callbacks_add_command("plugin1", command1); + + PluginCommand *command2 = malloc(sizeof(PluginCommand)); + command2->command_name = strdup("command2"); + callbacks_add_command("plugin1", command2); + + PluginCommand *command3 = malloc(sizeof(PluginCommand)); + command3->command_name = strdup("command3"); + callbacks_add_command("plugin2", command3); + + GList *names = plugins_get_command_names(); + assert_true(g_list_length(names) == 3); + + gboolean foundCommand1 = FALSE; + gboolean foundCommand2 = FALSE; + gboolean foundCommand3 = FALSE; + GList *curr = names; + while (curr) { + if (g_strcmp0(curr->data, "command1") == 0) { + foundCommand1 = TRUE; + } + if (g_strcmp0(curr->data, "command2") == 0) { + foundCommand2 = TRUE; + } + if (g_strcmp0(curr->data, "command3") == 0) { + foundCommand3 = TRUE; + } + curr = g_list_next(curr); + } - char *name = commands->data; - assert_string_equal(name, "something"); + assert_true(foundCommand1 && foundCommand2 && foundCommand3); } |