From f7b23fb0e26c8e5941e2706e644eb7a58b065eba Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Fri, 17 Jan 2020 21:36:24 +0100 Subject: [PATCH] check that recoding of jpg and png files actually works --- src/config.rs | 23 +++++++++++++++++++++-- test-data/image/avatar900x900.png | Bin 0 -> 11613 bytes 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 test-data/image/avatar900x900.png diff --git a/src/config.rs b/src/config.rs index 4bc1b1058..afa4aa167 100644 --- a/src/config.rs +++ b/src/config.rs @@ -190,7 +190,9 @@ mod tests { use std::str::FromStr; use std::string::ToString; + use crate::constants::AVATAR_SIZE; use crate::test_utils::*; + use image::GenericImageView; use std::fs::File; use std::io::Write; @@ -229,21 +231,38 @@ mod tests { assert!(std::fs::metadata(&avatar_blob).unwrap().len() < avatar_bytes.len() as u64); let avatar_cfg = t.ctx.get_config(Config::Selfavatar); assert_eq!(avatar_cfg, avatar_blob.to_str().map(|s| s.to_string())); + + let img = image::open(avatar_src).unwrap(); + assert_eq!(img.width(), 1000); + assert_eq!(img.height(), 1000); + + let img = image::open(avatar_blob).unwrap(); + assert_eq!(img.width(), AVATAR_SIZE); + assert_eq!(img.height(), AVATAR_SIZE); } #[test] fn test_selfavatar_in_blobdir() { let t = dummy_context(); - let avatar_src = t.ctx.get_blobdir().join("avatar.jpg"); - let avatar_bytes = include_bytes!("../test-data/image/avatar1000x1000.jpg"); + let avatar_src = t.ctx.get_blobdir().join("avatar.png"); + let avatar_bytes = include_bytes!("../test-data/image/avatar900x900.png"); File::create(&avatar_src) .unwrap() .write_all(avatar_bytes) .unwrap(); + + let img = image::open(&avatar_src).unwrap(); + assert_eq!(img.width(), 900); + assert_eq!(img.height(), 900); + t.ctx .set_config(Config::Selfavatar, Some(&avatar_src.to_str().unwrap())) .unwrap(); let avatar_cfg = t.ctx.get_config(Config::Selfavatar); assert_eq!(avatar_cfg, avatar_src.to_str().map(|s| s.to_string())); + + let img = image::open(avatar_src).unwrap(); + assert_eq!(img.width(), AVATAR_SIZE); + assert_eq!(img.height(), AVATAR_SIZE); } } diff --git a/test-data/image/avatar900x900.png b/test-data/image/avatar900x900.png new file mode 100644 index 0000000000000000000000000000000000000000..05b02b8e14bb93395a9819175353b1142e741dec GIT binary patch literal 11613 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