forked from larsbs/id3v2lib
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdelete_test.c
78 lines (63 loc) · 2.36 KB
/
delete_test.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
* This file is part of id3v2lib library
*
* Copyright (c) Lars Ruiz
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include <assert.h>
#include <stdio.h>
#include "id3v2lib.h"
#include "test_utils.h"
#include "delete_test.h"
#define ORIGINAL_FILE "extra/file.mp3"
#define EDITED_FILE "extra/file_edited.mp3"
void delete_test_main()
{
// Clone the file to not having to modify the original
clone_file(ORIGINAL_FILE, EDITED_FILE);
ID3v2_Tag* tag = ID3v2_read_tag(EDITED_FILE);
if (tag == NULL)
{
tag = ID3v2_Tag_new_empty();
}
ID3v2_Tag_delete_frame(tag, ID3v2_ALBUM_FRAME_ID);
ID3v2_Tag_delete_artist(tag);
// ID3v2_Tag_delete_album(tag);
ID3v2_Tag_delete_album_artist(tag);
ID3v2_Tag_delete_comment_frame(tag, 0);
// ID3v2_Tag_delete_comment(tag); // Equivalent to the above
ID3v2_Tag_delete_composer(tag);
ID3v2_Tag_delete_disc_number(tag);
ID3v2_Tag_delete_genre(tag);
ID3v2_Tag_delete_title(tag);
ID3v2_Tag_delete_track(tag);
ID3v2_Tag_delete_year(tag);
// ID3v2_Tag_delete_apic_frame(tag, 0);
ID3v2_Tag_delete_album_cover(tag); // Equivalent to the above
ID3v2_write_tag(EDITED_FILE, tag);
// Verify the written data
ID3v2_Tag* edited_tag = ID3v2_read_tag(EDITED_FILE);
assert(edited_tag != NULL);
assert(edited_tag->header->tag_size == edited_tag->padding_size);
assert(ID3v2_Tag_get_artist_frame(edited_tag) == NULL);
assert(ID3v2_Tag_get_album_frame(edited_tag) == NULL);
assert(ID3v2_Tag_get_title_frame(edited_tag) == NULL);
assert(ID3v2_Tag_get_track_frame(edited_tag) == NULL);
assert(ID3v2_Tag_get_album_artist_frame(edited_tag) == NULL);
assert(ID3v2_Tag_get_genre_frame(edited_tag) == NULL);
assert(ID3v2_Tag_get_year_frame(edited_tag) == NULL);
assert(ID3v2_Tag_get_disc_number_frame(edited_tag) == NULL);
assert(ID3v2_Tag_get_composer_frame(edited_tag) == NULL);
assert(ID3v2_Tag_get_comment_frame(edited_tag) == NULL);
assert(ID3v2_Tag_get_album_cover_frame(edited_tag) == NULL);
ID3v2_delete_tag(EDITED_FILE);
ID3v2_Tag* deleted_tag = ID3v2_read_tag(EDITED_FILE);
assert(deleted_tag == NULL);
// Clean up
remove(EDITED_FILE);
ID3v2_Tag_free(tag);
ID3v2_Tag_free(edited_tag);
printf("DELETE TEST: OK\n");
}