Skip to content

Commit ede3223

Browse files
committed
Tests: Impl TagLib TestWAV::testSaveID3v23
1 parent 30db1ba commit ede3223

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

lofty/tests/taglib/test_wav.rs

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::temp_file;
22
use crate::util::get_file;
33
use lofty::config::{ParseOptions, WriteOptions};
44
use lofty::file::AudioFile;
5-
use lofty::id3::v2::Id3v2Tag;
5+
use lofty::id3::v2::{Id3v2Tag, Id3v2Version};
66
use lofty::iff::wav::{RiffInfoList, WavFile, WavFormat};
77
use lofty::tag::{Accessor, TagType};
88

@@ -108,30 +108,32 @@ fn test_id3v2_tag() {
108108
}
109109
}
110110

111-
// TODO: Support downgrading to ID3v2.3 (#62)
112111
#[test]
113-
#[ignore]
114112
fn test_save_id3v23() {
115-
// let mut file = temp_file!("tests/taglib/data/empty.wav");
116-
//
117-
// let xxx = "X".repeat(254);
118-
// {
119-
// let mut f = WavFile::read_from(&mut file, ParseOptions::new()).unwrap();
120-
// assert!(f.id3v2().is_none());
121-
//
122-
// f.id3v2_mut().unwrap().set_title(xxx.clone());
123-
// f.id3v2_mut().unwrap().set_artist(String::from("Artist A"));
124-
//
125-
// // f.save(RIFF::WAV::File::AllTags, File::StripOthers, ID3v2::v3);
126-
// // assert!(f.id3v2().is_some());
127-
// }
128-
// {
129-
// let f2 = WavFile::read_from(&mut file, ParseOptions::new()).unwrap();
130-
// let tag = f2.id3v2().unwrap();
131-
// assert_eq!(tag.original_version(), Id3v2Version::V3);
132-
// assert_eq!(tag.artist().as_deref(), Some("Artist A"));
133-
// assert_eq!(tag.title().as_deref(), Some(&*xxx));
134-
// }
113+
let mut file = temp_file!("tests/taglib/data/empty.wav");
114+
115+
let xxx = "X".repeat(254);
116+
{
117+
let mut f = WavFile::read_from(&mut file, ParseOptions::new()).unwrap();
118+
assert!(f.id3v2().is_none());
119+
120+
let mut id3v2 = Id3v2Tag::new();
121+
id3v2.set_title(xxx.clone());
122+
id3v2.set_artist(String::from("Artist A"));
123+
f.set_id3v2(id3v2);
124+
125+
f.save_to(&mut file, WriteOptions::new().use_id3v23(true))
126+
.unwrap();
127+
assert!(f.id3v2().is_some());
128+
}
129+
file.rewind().unwrap();
130+
{
131+
let f2 = WavFile::read_from(&mut file, ParseOptions::new()).unwrap();
132+
let tag = f2.id3v2().unwrap();
133+
assert_eq!(tag.original_version(), Id3v2Version::V3);
134+
assert_eq!(tag.artist().as_deref(), Some("Artist A"));
135+
assert_eq!(tag.title().as_deref(), Some(&*xxx));
136+
}
135137
}
136138

137139
#[test]

0 commit comments

Comments
 (0)