perf: refine benches and add somes test to ensure we are testing the correct inputs
This commit is contained in:
parent
ab3d5a67f2
commit
64fdb377dc
2 changed files with 141 additions and 16 deletions
106
benches/tests.rs
Normal file
106
benches/tests.rs
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
use freedesktop_icons::lookup;
|
||||
use gtk4::{IconLookupFlags, IconTheme, TextDirection};
|
||||
use speculoos::prelude::*;
|
||||
use std::path::PathBuf;
|
||||
|
||||
#[test]
|
||||
fn gtk_lookup() {
|
||||
gtk4::init().unwrap();
|
||||
let theme = IconTheme::new();
|
||||
|
||||
let x = theme.lookup_icon(
|
||||
"firefox",
|
||||
&[],
|
||||
24,
|
||||
1,
|
||||
TextDirection::None,
|
||||
IconLookupFlags::empty(),
|
||||
);
|
||||
|
||||
assert!(x.icon_name().is_some())
|
||||
}
|
||||
|
||||
// Linicon sometimes fails with theme that have unknown parents
|
||||
// This test only ensure we are running the correct function in the benchmarks
|
||||
// And results are identical.
|
||||
#[test]
|
||||
fn linicon() {
|
||||
// Current theme
|
||||
let lin_user_home = linicon::lookup_icon("user-home")
|
||||
.from_theme("Adwaita")
|
||||
.with_size(24)
|
||||
.with_scale(1)
|
||||
.next();
|
||||
|
||||
let user_home = lookup("user-home")
|
||||
.with_theme("Adwaita")
|
||||
.with_size(24)
|
||||
.with_scale(1)
|
||||
.find();
|
||||
|
||||
asserting!("Linicon return some icon")
|
||||
.that(&lin_user_home.unwrap())
|
||||
.is_ok()
|
||||
.map(|icon| &icon.path)
|
||||
.is_equal_to(PathBuf::from(
|
||||
"/usr/share/icons/Adwaita/24x24/places/user-home.png",
|
||||
));
|
||||
|
||||
// Fixme
|
||||
asserting!("Our implementation should return the same result as linicon")
|
||||
.that(&user_home)
|
||||
.is_some()
|
||||
.is_equal_to(PathBuf::from(
|
||||
"/usr/share/icons/Adwaita/24x24/places/user-home.png",
|
||||
));
|
||||
|
||||
// Fallback to hicolor
|
||||
let lin_firefox = linicon::lookup_icon("firefox")
|
||||
.from_theme("Adwaita")
|
||||
.with_size(24)
|
||||
.with_scale(1)
|
||||
.next();
|
||||
|
||||
let firefox = lookup("firefox")
|
||||
.with_theme("Adwaita")
|
||||
.with_size(24)
|
||||
.with_scale(1)
|
||||
.find();
|
||||
|
||||
asserting!("Linicon return some icon")
|
||||
.that(&lin_firefox.unwrap())
|
||||
.is_ok()
|
||||
.map(|icon| &icon.path)
|
||||
.is_equal_to(PathBuf::from(
|
||||
"/usr/share/icons/hicolor/22x22/apps/firefox.png",
|
||||
));
|
||||
|
||||
asserting!("Our implementation should return the same result as linicon")
|
||||
.that(&firefox)
|
||||
.is_some()
|
||||
.is_equal_to(PathBuf::from(
|
||||
"/usr/share/icons/hicolor/22x22/apps/firefox.png",
|
||||
));
|
||||
|
||||
// pixmaps
|
||||
let lin_archlinux = linicon::lookup_icon("archlinux-logo")
|
||||
.from_theme("Adwaita")
|
||||
.with_size(24)
|
||||
.with_scale(1)
|
||||
.next();
|
||||
|
||||
let archlinux = lookup("archlinux-logo")
|
||||
.with_theme("Adwaita")
|
||||
.with_size(24)
|
||||
.with_scale(1)
|
||||
.find();
|
||||
|
||||
asserting!("Linicon fails to fallback to pixmaps")
|
||||
.that(&lin_archlinux)
|
||||
.is_none();
|
||||
|
||||
asserting!("But we succeed")
|
||||
.that(&archlinux)
|
||||
.is_some()
|
||||
.is_equal_to(PathBuf::from("toto"));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue