mod support;
use muri::render::paint::render_menu;
use muri::render::RasterDrawer;
use muri::{Align, Color, Flex, Icon, Menu, MenuOptions, OsFamily, Row, Segment, Theme};
use support::assert_golden;
fn conformity_menu() -> Menu {
Menu::new()
.section_header(Row::label_only("Account"))
.row(Row::new("acct:me").segments(vec![
Segment::new("me@example.com").flex(Flex::Grow),
Segment::new("47%").align(Align::Right).color(Color::SystemGreen),
]))
.row(
Row::new("acct:on")
.label("Sync enabled")
.leading(Icon::Checkmark)
.checked(true),
)
.separator()
.row(Row::new("quit").segments(vec![
Segment::new("Quit").flex(Flex::Grow),
Segment::new("v0.10").align(Align::Right).color(Color::SecondaryLabel),
]))
}
fn assert_family(family: OsFamily, dark: bool, name: &str) {
let theme = Theme::for_family(family, dark);
let mut drawer = RasterDrawer::new_headless(2.0);
render_menu(
&mut drawer,
&conformity_menu(),
&theme,
&MenuOptions::default(),
None,
);
assert_golden(name, drawer.framebuffer());
}
#[test]
fn conformity_macos_light() {
assert_family(OsFamily::MacOs, false, "conformity-macos-light-2x");
}
#[test]
fn conformity_macos_dark() {
assert_family(OsFamily::MacOs, true, "conformity-macos-dark-2x");
}
#[test]
fn conformity_windows_light() {
assert_family(OsFamily::Windows, false, "conformity-windows-light-2x");
}
#[test]
fn conformity_windows_dark() {
assert_family(OsFamily::Windows, true, "conformity-windows-dark-2x");
}
#[test]
fn conformity_gnome_light() {
assert_family(OsFamily::Gnome, false, "conformity-gnome-light-2x");
}
#[test]
fn conformity_gnome_dark() {
assert_family(OsFamily::Gnome, true, "conformity-gnome-dark-2x");
}