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