@@ -6,7 +6,7 @@ use lofty::id3::v2::Id3v2Tag;
6
6
use lofty:: iff:: wav:: { RiffInfoList , WavFile , WavFormat } ;
7
7
use lofty:: tag:: { Accessor , TagType } ;
8
8
9
- use std:: io:: { Cursor , Read , Seek , SeekFrom } ;
9
+ use std:: io:: { Cursor , Read , Seek , SeekFrom , Write } ;
10
10
11
11
#[ test]
12
12
fn test_pcm_properties ( ) {
@@ -280,48 +280,47 @@ fn test_fuzzed_file2() {
280
280
281
281
#[ test]
282
282
fn test_file_with_garbage_appended ( ) {
283
- todo ! ( "Doesn't pass, need to check what TagLib is doing here" )
284
- // let mut file = temp_file!("tests/taglib/data/empty.wav");
285
- // let contents_before_modification;
286
- // {
287
- // file.seek(SeekFrom::End(0)).unwrap();
288
- //
289
- // let garbage = b"12345678";
290
- // file.write_all(garbage).unwrap();
291
- // file.rewind().unwrap();
292
- //
293
- // let mut file_contents = Vec::new();
294
- // file.read_to_end(&mut file_contents).unwrap();
295
- //
296
- // contents_before_modification = file_contents;
297
- // }
298
- // file.rewind().unwrap();
299
- // {
300
- // let mut f = WavFile::read_from(&mut file, ParseOptions::new()).unwrap();
301
- // file.rewind().unwrap();
302
- //
303
- // let mut id3v2 = Id3v2Tag::default();
304
- // id3v2.set_title(String::from("ID3v2 Title"));
305
- // f.set_id3v2(id3v2);
306
- //
307
- // let mut riff_info = RiffInfoList::default();
308
- // riff_info.set_title(String::from("INFO Title"));
309
- // f.set_riff_info(riff_info);
310
- //
311
- // f.save_to(&mut file).unwrap();
312
- // }
313
- // file.rewind().unwrap();
314
- // {
315
- // TagType::Id3v2.remove_from(&mut file).unwrap();
316
- // file.rewind().unwrap();
317
- // TagType::RiffInfo.remove_from(&mut file).unwrap();
318
- // }
319
- // file.rewind().unwrap();
320
- // {
321
- // let mut contents_after_modification = Vec::new();
322
- // file.read_to_end(&mut contents_after_modification).unwrap();
323
- // assert_eq!(contents_before_modification, contents_after_modification);
324
- // }
283
+ let mut file = temp_file ! ( "tests/taglib/data/empty.wav" ) ;
284
+ let contents_before_modification;
285
+ {
286
+ file. seek ( SeekFrom :: End ( 0 ) ) . unwrap ( ) ;
287
+
288
+ let garbage = b"12345678" ;
289
+ file. write_all ( garbage) . unwrap ( ) ;
290
+ file. rewind ( ) . unwrap ( ) ;
291
+
292
+ let mut file_contents = Vec :: new ( ) ;
293
+ file. read_to_end ( & mut file_contents) . unwrap ( ) ;
294
+
295
+ contents_before_modification = file_contents;
296
+ }
297
+ file. rewind ( ) . unwrap ( ) ;
298
+ {
299
+ let mut f = WavFile :: read_from ( & mut file, ParseOptions :: new ( ) ) . unwrap ( ) ;
300
+ file. rewind ( ) . unwrap ( ) ;
301
+
302
+ let mut id3v2 = Id3v2Tag :: default ( ) ;
303
+ id3v2. set_title ( String :: from ( "ID3v2 Title" ) ) ;
304
+ f. set_id3v2 ( id3v2) ;
305
+
306
+ let mut riff_info = RiffInfoList :: default ( ) ;
307
+ riff_info. set_title ( String :: from ( "INFO Title" ) ) ;
308
+ f. set_riff_info ( riff_info) ;
309
+
310
+ f. save_to ( & mut file, WriteOptions :: default ( ) ) . unwrap ( ) ;
311
+ }
312
+ file. rewind ( ) . unwrap ( ) ;
313
+ {
314
+ TagType :: Id3v2 . remove_from ( & mut file) . unwrap ( ) ;
315
+ file. rewind ( ) . unwrap ( ) ;
316
+ TagType :: RiffInfo . remove_from ( & mut file) . unwrap ( ) ;
317
+ }
318
+ file. rewind ( ) . unwrap ( ) ;
319
+ {
320
+ let mut contents_after_modification = Vec :: new ( ) ;
321
+ file. read_to_end ( & mut contents_after_modification) . unwrap ( ) ;
322
+ assert_eq ! ( contents_before_modification, contents_after_modification) ;
323
+ }
325
324
}
326
325
327
326
#[ test]
0 commit comments