From 06b679ba30d095e2c1c6b984fb882a87bcf9e367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Sun, 7 May 2023 14:32:48 +0200 Subject: [PATCH] add archive tests --- rust/springylib/src/media/ui/menu.rs | 17 +++++++++++- rust/springylib/src/media/ui/mod.rs | 32 ++++++++++++++++++++++- rust/springylib/src/media/ui/text_area.rs | 32 +++++++++++++++++++++++ 3 files changed, 79 insertions(+), 2 deletions(-) diff --git a/rust/springylib/src/media/ui/menu.rs b/rust/springylib/src/media/ui/menu.rs index 3fb51eb..b4f51eb 100644 --- a/rust/springylib/src/media/ui/menu.rs +++ b/rust/springylib/src/media/ui/menu.rs @@ -1,5 +1,5 @@ -use serde::Deserialize; use crate::media::ui::UiTag; +use serde::Deserialize; #[derive(Debug, Clone, Deserialize)] pub struct UiMenu { @@ -9,3 +9,18 @@ pub struct UiMenu { #[serde(rename = "$value", default)] pub children: Vec, } + +#[cfg(test)] +mod tests { + use crate::media::ui::menu::UiMenu; + + // language=xml + const MENU: &str = ""; + + #[test] + fn it_should_read() { + let menu: UiMenu = serde_xml_rs::from_str(MENU).unwrap(); + assert_eq!(menu.selected, "item".to_string()); + assert_eq!(menu.on_back, Some("back".to_string())); + } +} diff --git a/rust/springylib/src/media/ui/mod.rs b/rust/springylib/src/media/ui/mod.rs index 6ce9eb3..23cedec 100644 --- a/rust/springylib/src/media/ui/mod.rs +++ b/rust/springylib/src/media/ui/mod.rs @@ -71,7 +71,7 @@ impl UiTag { area_stack.push(children); } - if area.position.is_some() && area.size.is_some() { + if !area.is_closing_tag() { let children = area.children.drain(..).collect(); area_stack.last_mut().unwrap().push(UiTag::TextArea(area)); area_stack.push(children); @@ -86,3 +86,33 @@ impl UiTag { } } } + +#[cfg(test)] +mod tests { + use crate::media::ui::menu::UiMenu; + use crate::media::ui::text_area::UiTextArea; + use crate::media::ui::UiTag; + + // language=xml + const XML: &str = " \ +