aboutsummaryrefslogtreecommitdiff
path: root/niri-ipc/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'niri-ipc/src/lib.rs')
-rw-r--r--niri-ipc/src/lib.rs58
1 files changed, 58 insertions, 0 deletions
diff --git a/niri-ipc/src/lib.rs b/niri-ipc/src/lib.rs
index fa524970..10d88de7 100644
--- a/niri-ipc/src/lib.rs
+++ b/niri-ipc/src/lib.rs
@@ -1609,3 +1609,61 @@ impl FromStr for ScaleToSet {
Ok(Self::Specific(scale))
}
}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn parse_size_change() {
+ assert_eq!(
+ "10".parse::<SizeChange>().unwrap(),
+ SizeChange::SetFixed(10),
+ );
+ assert_eq!(
+ "+10".parse::<SizeChange>().unwrap(),
+ SizeChange::AdjustFixed(10),
+ );
+ assert_eq!(
+ "-10".parse::<SizeChange>().unwrap(),
+ SizeChange::AdjustFixed(-10),
+ );
+ assert_eq!(
+ "10%".parse::<SizeChange>().unwrap(),
+ SizeChange::SetProportion(10.),
+ );
+ assert_eq!(
+ "+10%".parse::<SizeChange>().unwrap(),
+ SizeChange::AdjustProportion(10.),
+ );
+ assert_eq!(
+ "-10%".parse::<SizeChange>().unwrap(),
+ SizeChange::AdjustProportion(-10.),
+ );
+
+ assert!("-".parse::<SizeChange>().is_err());
+ assert!("10% ".parse::<SizeChange>().is_err());
+ }
+
+ #[test]
+ fn parse_position_change() {
+ assert_eq!(
+ "10".parse::<PositionChange>().unwrap(),
+ PositionChange::SetFixed(10.),
+ );
+ assert_eq!(
+ "+10".parse::<PositionChange>().unwrap(),
+ PositionChange::AdjustFixed(10.),
+ );
+ assert_eq!(
+ "-10".parse::<PositionChange>().unwrap(),
+ PositionChange::AdjustFixed(-10.),
+ );
+
+ assert!("10%".parse::<PositionChange>().is_err());
+ assert!("+10%".parse::<PositionChange>().is_err());
+ assert!("-10%".parse::<PositionChange>().is_err());
+ assert!("-".parse::<PositionChange>().is_err());
+ assert!("10% ".parse::<PositionChange>().is_err());
+ }
+}