Skip to content

Commit 0458748

Browse files
committed
Tests: Add missing Musepack SV5 test
1 parent b9e8c5c commit 0458748

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

tests/files/mpc.rs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use crate::{set_artist, temp_file, verify_artist};
2+
use lofty::musepack::MpcFile;
23
use lofty::{
3-
FileType, ItemKey, ItemValue, ParseOptions, Probe, TagExt, TagItem, TagType, TaggedFileExt,
4+
AudioFile, FileType, ItemKey, ItemValue, ParseOptions, Probe, TagExt, TagItem, TagType,
5+
TaggedFile, TaggedFileExt,
46
};
57
use std::io::{Seek, Write};
68

@@ -81,3 +83,26 @@ macro_rules! generate_tests {
8183

8284
generate_tests!(sv8, "tests/files/assets/minimal/mpc_sv8.mpc");
8385
generate_tests!(sv7, "tests/files/assets/minimal/mpc_sv7.mpc");
86+
87+
// We have to use `MpcFile::read_from` for stream versions <= 6
88+
89+
#[test]
90+
fn read_sv5() {
91+
let mut file = temp_file!("tests/files/assets/minimal/mpc_sv5.mpc");
92+
93+
// Here we have an MPC file with an ID3v2, ID3v1, and an APEv2 tag
94+
let file: TaggedFile = MpcFile::read_from(&mut file, ParseOptions::new())
95+
.unwrap()
96+
.into();
97+
98+
assert_eq!(file.file_type(), FileType::Mpc);
99+
100+
// Verify the APE tag first
101+
crate::verify_artist!(file, primary_tag, "Foo artist", 1);
102+
103+
// Now verify ID3v1 (read only)
104+
crate::verify_artist!(file, tag, TagType::Id3v1, "Bar artist", 1);
105+
106+
// Finally, verify ID3v2 (read only)
107+
crate::verify_artist!(file, tag, TagType::Id3v2, "Baz artist", 1);
108+
}

0 commit comments

Comments
 (0)