More tests, but need to be run with --test-threads=1

This commit is contained in:
Andrew Radev
2019-02-17 21:55:04 +02:00
parent 7b8ac1b476
commit 915a6e8ff4
4 changed files with 301 additions and 63 deletions

View File

@ -6,8 +6,9 @@ use id3_image::*;
macro_rules! in_temp_dir {
($block:block) => {
let tmpdir = env::temp_dir();
let tmpdir = tempfile::tempdir().unwrap();
env::set_current_dir(&tmpdir).unwrap();
$block;
}
}
@ -23,66 +24,6 @@ macro_rules! fixture {
}
}
#[test]
fn test_successful_jpeg_image_embedding() {
in_temp_dir!({
fixture!("attempt_1_no_image.mp3");
fixture!("attempt_1.jpg");
{
let tag = id3::Tag::read_from_path("attempt_1_no_image.mp3").unwrap();
assert!(tag.pictures().count() == 0);
}
embed_image("attempt_1_no_image.mp3", "attempt_1.jpg").unwrap();
{
let tag = id3::Tag::read_from_path("attempt_1_no_image.mp3").unwrap();
assert!(tag.pictures().count() > 0);
}
});
}
#[test]
fn test_successful_png_image_embedding() {
in_temp_dir!({
fixture!("attempt_1_no_image.mp3");
fixture!("attempt_1.png");
{
let tag = id3::Tag::read_from_path("attempt_1_no_image.mp3").unwrap();
assert!(tag.pictures().count() == 0);
}
embed_image("attempt_1_no_image.mp3", "attempt_1.png").unwrap();
{
let tag = id3::Tag::read_from_path("attempt_1_no_image.mp3").unwrap();
assert!(tag.pictures().count() > 0);
}
});
}
#[test]
fn test_successful_image_embedding_in_a_file_that_already_has_an_image() {
in_temp_dir!({
fixture!("attempt_1.mp3");
fixture!("attempt_1.jpg");
{
let tag = id3::Tag::read_from_path("attempt_1.mp3").unwrap();
assert!(tag.pictures().count() > 0);
}
embed_image("attempt_1.mp3", "attempt_1.jpg").unwrap();
{
let tag = id3::Tag::read_from_path("attempt_1.mp3").unwrap();
assert!(tag.pictures().count() > 0);
}
});
}
#[test]
fn test_unsuccessful_image_embedding() {
in_temp_dir!({
@ -100,3 +41,72 @@ fn test_unsuccessful_image_embedding() {
assert!(embed_image("attempt_1.jpg", "attempt_1.jpg").is_err());
});
}
#[test]
fn test_successful_jpeg_image_embedding() {
in_temp_dir!({
fixture!("attempt_1_no_image.mp3");
fixture!("attempt_1.jpg");
let tag = id3::Tag::read_from_path("attempt_1_no_image.mp3").unwrap();
assert!(tag.pictures().count() == 0);
embed_image("attempt_1_no_image.mp3", "attempt_1.jpg").unwrap();
let tag = id3::Tag::read_from_path("attempt_1_no_image.mp3").unwrap();
assert!(tag.pictures().count() > 0);
});
}
#[test]
fn test_successful_png_image_embedding() {
in_temp_dir!({
fixture!("attempt_1_no_image.mp3");
fixture!("attempt_1.png");
let tag = id3::Tag::read_from_path("attempt_1_no_image.mp3").unwrap();
assert!(tag.pictures().count() == 0);
embed_image("attempt_1_no_image.mp3", "attempt_1.png").unwrap();
let tag = id3::Tag::read_from_path("attempt_1_no_image.mp3").unwrap();
assert!(tag.pictures().count() > 0);
});
}
#[test]
fn test_successful_image_embedding_in_a_file_that_already_has_an_image() {
in_temp_dir!({
fixture!("attempt_1.mp3");
fixture!("attempt_1.jpg");
let tag = id3::Tag::read_from_path("attempt_1.mp3").unwrap();
assert!(tag.pictures().count() > 0);
embed_image("attempt_1.mp3", "attempt_1.jpg").unwrap();
let tag = id3::Tag::read_from_path("attempt_1.mp3").unwrap();
assert!(tag.pictures().count() > 0);
});
}
#[test]
fn test_remove_and_add_image() {
in_temp_dir!({
fixture!("attempt_1.mp3");
fixture!("attempt_1.jpg");
let tag = id3::Tag::read_from_path("attempt_1.mp3").unwrap();
assert!(tag.pictures().count() > 0);
remove_images("attempt_1.mp3").unwrap();
let tag = id3::Tag::read_from_path("attempt_1.mp3").unwrap();
assert!(tag.pictures().count() == 0);
embed_image("attempt_1.mp3", "attempt_1.jpg").unwrap();
let tag = id3::Tag::read_from_path("attempt_1.mp3").unwrap();
assert!(tag.pictures().count() > 0);
});
}