diff options
Diffstat (limited to 'niri-ipc')
| -rw-r--r-- | niri-ipc/src/lib.rs | 58 |
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()); + } +} |
