1 #include <cutter.h>
2 
3 #include "libmp3splt/mp3splt.h"
4 
5 static int error = SPLT_OK;
6 static splt_state *state = NULL;
7 
cut_setup()8 void cut_setup()
9 {
10   state = mp3splt_new_state(NULL);
11   error = SPLT_OK;
12 }
13 
cut_teardown()14 void cut_teardown()
15 {
16   mp3splt_free_state(state);
17 }
18 
test_initial_tags()19 void test_initial_tags()
20 {
21   splt_tags_group *tags_group = mp3splt_get_tags_group(state, &error);
22   cut_assert_equal_int(SPLT_OK, error);
23 
24   cut_assert_null(tags_group);
25 
26   mp3splt_tags_group_init_iterator(tags_group);
27   cut_assert_null(mp3splt_tags_group_next(tags_group));
28   cut_assert_null(mp3splt_tags_group_next(tags_group));
29 }
30 
test_initial_erase_all_tags()31 void test_initial_erase_all_tags()
32 {
33   error = mp3splt_erase_all_tags(state);
34   cut_assert_equal_int(SPLT_OK, error);
35 
36   splt_tags_group *tags_group = mp3splt_get_tags_group(state, &error);
37   cut_assert_equal_int(SPLT_OK, error);
38 
39   cut_assert_null(tags_group);
40 }
41 
test_append_and_return_tags()42 void test_append_and_return_tags()
43 {
44   //first tags
45   splt_tags *tags1 = mp3splt_tags_new(&error);
46   cut_assert_equal_int(SPLT_OK, error);
47   error = mp3splt_tags_set(tags1,
48       SPLT_TAGS_ARTIST, "artist1",
49       SPLT_TAGS_ALBUM, "album1",
50       SPLT_TAGS_GENRE, "other1",
51       SPLT_TAGS_TRACK, "10",
52       0);
53   cut_assert_equal_int(SPLT_OK, error);
54 
55   //append first tags
56   error = mp3splt_append_tags(state, tags1);
57   cut_assert_equal_int(SPLT_OK, error);
58 
59   //second tags
60   splt_tags *tags2 = mp3splt_tags_new(&error);
61   cut_assert_equal_int(SPLT_OK, error);
62   error = mp3splt_tags_set(tags2,
63       SPLT_TAGS_ARTIST, "artist2",
64       SPLT_TAGS_ALBUM, "album2",
65       SPLT_TAGS_GENRE, "other2",
66       SPLT_TAGS_TRACK, "20",
67       0);
68   cut_assert_equal_int(SPLT_OK, error);
69 
70   //append second tags
71   error = mp3splt_append_tags(state, tags2);
72   cut_assert_equal_int(SPLT_OK, error);
73 
74   splt_tags_group *tags_group = mp3splt_get_tags_group(state, &error);
75   cut_assert_equal_int(SPLT_OK, error);
76   mp3splt_tags_group_init_iterator(tags_group);
77 
78   //check first tags
79   splt_tags *check_tags1 = mp3splt_tags_group_next(tags_group);
80   char *artist1 = mp3splt_tags_get(check_tags1, SPLT_TAGS_ARTIST);
81   cut_assert_equal_string("artist1", artist1);
82   free(artist1);
83   char *album1 = mp3splt_tags_get(check_tags1, SPLT_TAGS_ALBUM);
84   cut_assert_equal_string("album1", album1);
85   free(album1);
86   char *genre1 = mp3splt_tags_get(check_tags1, SPLT_TAGS_GENRE);
87   cut_assert_equal_string("other1", genre1);
88   free(genre1);
89   char *track1 = mp3splt_tags_get(check_tags1, SPLT_TAGS_TRACK);
90   cut_assert_equal_string("10", track1);
91   free(track1);
92   char *title1 = mp3splt_tags_get(check_tags1, SPLT_TAGS_TITLE);
93   cut_assert_null(title1);
94 
95   //check second tags
96   splt_tags *check_tags2 = mp3splt_tags_group_next(tags_group);
97   char *artist2 = mp3splt_tags_get(check_tags2, SPLT_TAGS_ARTIST);
98   cut_assert_equal_string("artist2", artist2);
99   free(artist2);
100   char *album2 = mp3splt_tags_get(check_tags2, SPLT_TAGS_ALBUM);
101   cut_assert_equal_string("album2", album2);
102   free(album2);
103   char *genre2 = mp3splt_tags_get(check_tags2, SPLT_TAGS_GENRE);
104   cut_assert_equal_string("other2", genre2);
105   free(genre2);
106   char *track2 = mp3splt_tags_get(check_tags2, SPLT_TAGS_TRACK);
107   cut_assert_equal_string("20", track2);
108   free(track2);
109   char *title2 = mp3splt_tags_get(check_tags2, SPLT_TAGS_TITLE);
110   cut_assert_null(title2);
111 
112   cut_assert_null(mp3splt_tags_group_next(tags_group));
113 }
114 
test_append_and_erase_all_tags()115 void test_append_and_erase_all_tags()
116 {
117   splt_tags *tags1 = mp3splt_tags_new(&error);
118   cut_assert_equal_int(SPLT_OK, error);
119   error = mp3splt_tags_set(tags1,
120       SPLT_TAGS_ARTIST, "artist1",
121       SPLT_TAGS_ALBUM, "album1",
122       SPLT_TAGS_GENRE, "other1",
123       SPLT_TAGS_TRACK, "10",
124       0);
125   cut_assert_equal_int(SPLT_OK, error);
126 
127   //append tags
128   error = mp3splt_append_tags(state, tags1);
129   cut_assert_equal_int(SPLT_OK, error);
130 
131   error = mp3splt_erase_all_tags(state);
132   cut_assert_equal_int(SPLT_OK, error);
133 
134   splt_tags_group *tags_group = mp3splt_get_tags_group(state, &error);
135   cut_assert_null(tags_group);
136 }
137 
138