Add/Update translations
[gmpc-dynamic-playlist.git] / tests / test_dbSong.c
blob16de5433f0d9bb79f1a48043fb70df9e05cad554
1 #include <gtk/gtk.h>
2 #include <glib.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #include "fixture_gmpc.h"
6 #include "../src/dbSong.h"
7 #include "../src/fuzzy.h"
9 strList* createDummyList()
11 strList* list = new_strListItem(NULL, "dummy1");
12 list = new_strListItem(list, "dummy2");
13 return new_strListItem(list, "dummy3");
16 void test_free_next_strListItem()
18 strList* list = createDummyList();
19 g_assert_cmpint(g_slist_length(list), ==, 3);
21 free_next_strListItem(list);
22 g_assert_cmpint(g_slist_length(list), ==, 2);
23 g_assert(strcasecmp("dummy3", g_slist_nth_data(list, 0)) == 0);
24 g_assert(strcasecmp("dummy1", g_slist_nth_data(list, 1)) == 0);
26 free_next_strListItem(list);
27 g_assert_cmpint(g_slist_length(list), ==, 1);
28 g_assert(strcasecmp("dummy3", g_slist_nth_data(list, 0)) == 0);
30 if(g_test_trap_fork(0, G_TEST_TRAP_SILENCE_STDERR))
32 free_next_strListItem(list);
33 exit(EXIT_SUCCESS);
35 g_test_trap_assert_failed();
37 free_strList(list);
40 void test_clear_strListItem()
42 strList* list = createDummyList();
43 g_assert_cmpint(g_slist_length(list), ==, 3);
45 clear_strListItem(list);
46 g_assert_cmpint(g_slist_length(list), ==, 3);
47 g_assert(g_slist_nth_data(list, 0) == NULL);
48 g_assert(strcasecmp("dummy2", g_slist_nth_data(list, 1)) == 0);
49 g_assert(strcasecmp("dummy1", g_slist_nth_data(list, 2)) == 0);
51 free_strList(list);
54 void test_exists_strList()
56 strList* list = createDummyList();
58 g_assert(exists_strList(list, "dummy1"));
59 g_assert(exists_strList(list, "dummy2"));
60 g_assert(exists_strList(list, "dummy3"));
61 g_assert(!exists_strList(list, "notInList"));
63 free_strList(list);
66 void test_exists_dbList()
68 fake_gmpc_init();
69 dbList* list = g_list_prepend(NULL, new_dbSong("Metallica", "The Unforgiven", "path"));
70 list = g_list_prepend(list, new_dbSong("The Offspring", "Self Esteem", "path"));
72 g_assert(exists_dbList(list, "Metallica", "The Unforgiven"));
73 g_assert(exists_dbList(list, "The Offspring", "Self Esteem"));
75 g_assert(!exists_dbList(list, "notInList", "notInList"));
76 g_assert(!exists_dbList(list, "Metallica", "TheUnforgiven"));
77 g_assert(!exists_dbList(list, "TheOffspring", "Self Esteem"));
78 g_assert(!exists_dbList(list, "Metallica", "Self Esteem"));
80 free_dbList(list);
81 fake_gmpc_free();
84 int main(int argc, char** argv)
86 gtk_test_init(&argc, &argv, NULL);
88 g_test_add_func("/dbSong/free_next_strListItem", test_free_next_strListItem);
89 g_test_add_func("/dbSong/clear_strListItem", test_clear_strListItem);
90 g_test_add_func("/dbSong/exists_strList", test_exists_strList);
91 g_test_add_func("/dbSong/exists_dbList", test_exists_dbList);
93 /* mute standard debug output from plugin */
94 g_log_set_handler("dynlist", G_LOG_LEVEL_DEBUG, redirect_log, NULL);
96 return g_test_run();
99 /* vim:set ts=4 sw=4: */