142 lines
4.8 KiB
V
142 lines
4.8 KiB
V
import os
|
|
import metadata
|
|
|
|
// Проверка чтения id3v23
|
|
fn test_idv3v23() {
|
|
mut audio := os.open("./data/test_id3v23.mp3") or { panic(err) }
|
|
defer {
|
|
audio.close()
|
|
}
|
|
mut wav := metadata.Audio{}
|
|
wav.detect_tags(mut audio)
|
|
|
|
assert wav.id3v1.embedded == false, 'Тег показан false, а должен быть true'
|
|
assert wav.id3v23.embedded == true, 'Тег показан true, а должен быть false'
|
|
assert wav.id3v24.embedded == false, 'Тег показан true, а должен быть false'
|
|
wav.id3v23.get_full_size(mut audio)
|
|
wav.id3v23.fill_tags(mut audio)
|
|
|
|
assert wav.id3v23.tit2.data == "Test Title"
|
|
assert wav.id3v23.tpe1.data == "Test Author"
|
|
assert wav.id3v23.tpe2.data == "Test Narator"
|
|
assert wav.id3v23.talb.data == "Test Album"
|
|
assert wav.id3v23.tyer.data == "2026"
|
|
assert wav.id3v23.trck.data == "6/7"
|
|
assert wav.id3v23.tcon.data == "Rock"
|
|
assert wav.id3v23.tcop.data == "Test"
|
|
assert wav.id3v23.txxx.data == "comment"
|
|
|
|
id3v1 := wav.id3v23.to_v1()
|
|
|
|
assert id3v1.genre == "Rock"
|
|
assert id3v1.title == "Test Title"
|
|
assert id3v1.artist == "Test Narator"
|
|
assert id3v1.album == "Test Album"
|
|
assert id3v1.track == "6"
|
|
assert id3v1.year == "2026"
|
|
assert id3v1.comment == "comment"
|
|
}
|
|
|
|
fn test_writeidv3v23() {
|
|
mut audio := os.open("./data/test_id3v23.mp3") or { panic(err) }
|
|
defer {
|
|
audio.close()
|
|
}
|
|
mut wav := metadata.Audio{}
|
|
wav.detect_tags(mut audio)
|
|
|
|
assert wav.id3v1.embedded == false, 'Тег показан false, а должен быть true'
|
|
assert wav.id3v23.embedded == true, 'Тег показан true, а должен быть false'
|
|
assert wav.id3v24.embedded == false, 'Тег показан true, а должен быть false'
|
|
wav.id3v23.get_full_size(mut audio)
|
|
wav.id3v23.fill_tags(mut audio)
|
|
|
|
// Изменение значений тэга
|
|
wav.id3v23.tit2.set_data("Test Title2")
|
|
wav.id3v23.tpe1.set_data("Test Author2")
|
|
wav.id3v23.tpe2.set_data("Test Narator2")
|
|
wav.id3v23.talb.set_data("Test Album2")
|
|
wav.id3v23.tyer.set_data("2027")
|
|
wav.id3v23.trck.set_data("7/7")
|
|
wav.id3v23.tcon.set_data("Rock2")
|
|
wav.id3v23.tcop.set_data("Test2")
|
|
wav.id3v23.txxx.set_data("comment2")
|
|
|
|
wav.id3v23.encode_embed_tags()
|
|
wav.id3v23.insert_tags_into_audio(mut audio)
|
|
|
|
os.write_bytes("./data/temp_v23.mp3", wav.id3v23.encoded_header) or { panic(err) }
|
|
|
|
// Чтение файла и проверка записи
|
|
mut temp_audio := os.open("./data/temp_v23.mp3") or { panic(err) }
|
|
defer {
|
|
temp_audio.close()
|
|
}
|
|
|
|
mut temp_wav := metadata.Audio{}
|
|
temp_wav.detect_tags(mut temp_audio)
|
|
|
|
assert temp_wav.id3v1.embedded == false, 'Тег показан false, а должен быть true'
|
|
assert temp_wav.id3v23.embedded == true, 'Тег показан true, а должен быть false'
|
|
assert temp_wav.id3v24.embedded == false, 'Тег показан true, а должен быть false'
|
|
temp_wav.id3v23.get_full_size(mut temp_audio)
|
|
temp_wav.id3v23.fill_tags(mut temp_audio)
|
|
|
|
assert temp_wav.id3v23.tit2.data == "Test Title2"
|
|
assert temp_wav.id3v23.tpe1.data == "Test Author2"
|
|
assert temp_wav.id3v23.tpe2.data == "Test Narator2"
|
|
assert temp_wav.id3v23.talb.data == "Test Album2"
|
|
assert temp_wav.id3v23.tyer.data == "2027"
|
|
assert temp_wav.id3v23.trck.data == "7/7"
|
|
assert temp_wav.id3v23.tcon.data == "Rock2"
|
|
assert temp_wav.id3v23.tcop.data == "Test2"
|
|
assert temp_wav.id3v23.txxx.data == "comment2"
|
|
|
|
id3v1 := wav.id3v23.to_v1()
|
|
|
|
assert id3v1.genre == "Rock2"
|
|
assert id3v1.title == "Test Title2"
|
|
assert id3v1.artist == "Test Narator2"
|
|
assert id3v1.album == "Test Album2"
|
|
assert id3v1.track == "7"
|
|
assert id3v1.year == "2027"
|
|
assert id3v1.comment == "comment2"
|
|
}
|
|
|
|
// Проверка чтения id3v24
|
|
fn test_idv3v24() {
|
|
mut audio := os.open("./data/test_id3v24.mp3") or { panic(err) }
|
|
defer {
|
|
audio.close()
|
|
}
|
|
mut wav := metadata.Audio{}
|
|
wav.detect_tags(mut audio)
|
|
|
|
assert wav.id3v1.embedded == false, 'Тег показан false, а должен быть true'
|
|
assert wav.id3v23.embedded == false, 'Тег показан true, а должен быть false'
|
|
assert wav.id3v24.embedded == true, 'Тег показан true, а должен быть false'
|
|
wav.id3v24.get_full_size(mut audio)
|
|
wav.id3v24.fill_tags(mut audio)
|
|
|
|
assert wav.id3v24.tit2.data == "Test Title"
|
|
assert wav.id3v24.tpe1.data == "Test Author"
|
|
assert wav.id3v24.tpe2.data == "Test Narator"
|
|
assert wav.id3v24.talb.data == "Test Album"
|
|
assert wav.id3v24.tdrc.data == "2026"
|
|
assert wav.id3v24.trck.data == "6/7"
|
|
assert wav.id3v24.tcon.data == "Rock"
|
|
assert wav.id3v24.tcop.data == "Test"
|
|
assert wav.id3v24.txxx.data == "comment"
|
|
|
|
id3v1 := wav.id3v24.to_v1()
|
|
|
|
assert id3v1.genre == "Rock"
|
|
assert id3v1.title == "Test Title"
|
|
assert id3v1.artist == "Test Narator"
|
|
assert id3v1.album == "Test Album"
|
|
assert id3v1.track == "6"
|
|
assert id3v1.year == "2026"
|
|
assert id3v1.comment == "comment"
|
|
}
|
|
|