@@ -2,7 +2,7 @@ use crate::temp_file;
2
2
use crate :: util:: get_file;
3
3
use lofty:: config:: { ParseOptions , WriteOptions } ;
4
4
use lofty:: file:: AudioFile ;
5
- use lofty:: id3:: v2:: Id3v2Tag ;
5
+ use lofty:: id3:: v2:: { Id3v2Tag , Id3v2Version } ;
6
6
use lofty:: iff:: wav:: { RiffInfoList , WavFile , WavFormat } ;
7
7
use lofty:: tag:: { Accessor , TagType } ;
8
8
@@ -108,30 +108,32 @@ fn test_id3v2_tag() {
108
108
}
109
109
}
110
110
111
- // TODO: Support downgrading to ID3v2.3 (#62)
112
111
#[ test]
113
- #[ ignore]
114
112
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
+ }
135
137
}
136
138
137
139
#[ test]
0 commit comments