Skip to content

Commit

Permalink
Add auto min-size tests
Browse files Browse the repository at this point in the history
  • Loading branch information
geom3trik committed Sep 18, 2023
1 parent c7051a9 commit 7a9cb4f
Showing 1 changed file with 225 additions and 0 deletions.
225 changes: 225 additions & 0 deletions tests/size_constraints.rs
Original file line number Diff line number Diff line change
Expand Up @@ -193,3 +193,228 @@ fn min_width_percentage_width_auto() {
assert_eq!(world.cache.bounds(node), Some(&Rect { posx: 0.0, posy: 0.0, width: 600.0, height: 100.0 }));
assert_eq!(world.cache.bounds(node2), Some(&Rect { posx: 0.0, posy: 0.0, width: 200.0, height: 100.0 }));
}

#[test]
fn min_width_auto() {
let mut world = World::default();

let root = world.add(None);
world.set_width(root, Units::Pixels(600.0));
world.set_height(root, Units::Pixels(600.0));
world.set_child_space(root, Units::Stretch(1.0));

let node = world.add(Some(root));
world.set_width(node, Units::Stretch(1.0));
world.set_height(node, Units::Stretch(1.0));
world.set_min_width(node, Units::Auto);

let node2 = world.add(Some(node));
world.set_width(node2, Units::Pixels(300.0));
world.set_height(node2, Units::Pixels(300.0));

root.layout(&mut world.cache, &world.tree, &world.store, &mut ());

assert_eq!(world.cache.bounds(node), Some(&Rect { posx: 150.0, posy: 200.0, width: 300.0, height: 200.0 }));
assert_eq!(world.cache.bounds(node2), Some(&Rect { posx: 0.0, posy: 0.0, width: 300.0, height: 300.0 }));
}

#[test]
fn min_height_auto() {
let mut world = World::default();

let root = world.add(None);
world.set_width(root, Units::Pixels(600.0));
world.set_height(root, Units::Pixels(600.0));
world.set_child_space(root, Units::Stretch(1.0));

let node = world.add(Some(root));
world.set_width(node, Units::Stretch(1.0));
world.set_height(node, Units::Stretch(1.0));
world.set_min_height(node, Units::Auto);

let node2 = world.add(Some(node));
world.set_width(node2, Units::Pixels(300.0));
world.set_height(node2, Units::Pixels(300.0));

root.layout(&mut world.cache, &world.tree, &world.store, &mut ());

assert_eq!(world.cache.bounds(node), Some(&Rect { posx: 200.0, posy: 150.0, width: 200.0, height: 300.0 }));
assert_eq!(world.cache.bounds(node2), Some(&Rect { posx: 0.0, posy: 0.0, width: 300.0, height: 300.0 }));
}

#[test]
fn min_size_auto() {
let mut world = World::default();

let root = world.add(None);
world.set_width(root, Units::Pixels(600.0));
world.set_height(root, Units::Pixels(600.0));
world.set_child_space(root, Units::Stretch(1.0));

let node = world.add(Some(root));
world.set_width(node, Units::Stretch(1.0));
world.set_height(node, Units::Stretch(1.0));
world.set_min_width(node, Units::Auto);
world.set_min_height(node, Units::Auto);

let node2 = world.add(Some(node));
world.set_width(node2, Units::Pixels(300.0));
world.set_height(node2, Units::Pixels(300.0));

root.layout(&mut world.cache, &world.tree, &world.store, &mut ());

assert_eq!(world.cache.bounds(node), Some(&Rect { posx: 150.0, posy: 150.0, width: 300.0, height: 300.0 }));
assert_eq!(world.cache.bounds(node2), Some(&Rect { posx: 0.0, posy: 0.0, width: 300.0, height: 300.0 }));
}

#[test]
fn min_width_auto_self_directed() {
let mut world = World::default();

let root = world.add(None);
world.set_width(root, Units::Pixels(600.0));
world.set_height(root, Units::Pixels(600.0));
world.set_child_space(root, Units::Stretch(1.0));

let node = world.add(Some(root));
world.set_width(node, Units::Stretch(1.0));
world.set_height(node, Units::Stretch(1.0));
world.set_min_width(node, Units::Auto);
world.set_position_type(node, PositionType::SelfDirected);

let node2 = world.add(Some(node));
world.set_width(node2, Units::Pixels(300.0));
world.set_height(node2, Units::Pixels(300.0));

root.layout(&mut world.cache, &world.tree, &world.store, &mut ());

assert_eq!(world.cache.bounds(node), Some(&Rect { posx: 150.0, posy: 200.0, width: 300.0, height: 200.0 }));
assert_eq!(world.cache.bounds(node2), Some(&Rect { posx: 0.0, posy: 0.0, width: 300.0, height: 300.0 }));
}

#[test]
fn min_height_auto_self_directed() {
let mut world = World::default();

let root = world.add(None);
world.set_width(root, Units::Pixels(600.0));
world.set_height(root, Units::Pixels(600.0));
world.set_child_space(root, Units::Stretch(1.0));

let node = world.add(Some(root));
world.set_width(node, Units::Stretch(1.0));
world.set_height(node, Units::Stretch(1.0));
world.set_min_height(node, Units::Auto);
world.set_position_type(node, PositionType::SelfDirected);

let node2 = world.add(Some(node));
world.set_width(node2, Units::Pixels(300.0));
world.set_height(node2, Units::Pixels(300.0));

root.layout(&mut world.cache, &world.tree, &world.store, &mut ());

assert_eq!(world.cache.bounds(node), Some(&Rect { posx: 200.0, posy: 150.0, width: 200.0, height: 300.0 }));
assert_eq!(world.cache.bounds(node2), Some(&Rect { posx: 0.0, posy: 0.0, width: 300.0, height: 300.0 }));
}

#[test]
fn min_size_auto_self_directed() {
let mut world = World::default();

let root = world.add(None);
world.set_width(root, Units::Pixels(600.0));
world.set_height(root, Units::Pixels(600.0));
world.set_child_space(root, Units::Stretch(1.0));

let node = world.add(Some(root));
world.set_width(node, Units::Stretch(1.0));
world.set_height(node, Units::Stretch(1.0));
world.set_min_width(node, Units::Auto);
world.set_min_height(node, Units::Auto);
world.set_position_type(node, PositionType::SelfDirected);

let node2 = world.add(Some(node));
world.set_width(node2, Units::Pixels(300.0));
world.set_height(node2, Units::Pixels(300.0));

root.layout(&mut world.cache, &world.tree, &world.store, &mut ());

assert_eq!(world.cache.bounds(node), Some(&Rect { posx: 150.0, posy: 150.0, width: 300.0, height: 300.0 }));
assert_eq!(world.cache.bounds(node2), Some(&Rect { posx: 0.0, posy: 0.0, width: 300.0, height: 300.0 }));
}

#[test]
fn min_width_auto_child_self_directed() {
let mut world = World::default();

let root = world.add(None);
world.set_width(root, Units::Pixels(600.0));
world.set_height(root, Units::Pixels(600.0));
world.set_child_space(root, Units::Stretch(1.0));

let node = world.add(Some(root));
world.set_width(node, Units::Stretch(1.0));
world.set_height(node, Units::Stretch(1.0));
world.set_min_width(node, Units::Auto);

let node2 = world.add(Some(node));
world.set_width(node2, Units::Pixels(300.0));
world.set_height(node2, Units::Pixels(300.0));
world.set_position_type(node2, PositionType::SelfDirected);

root.layout(&mut world.cache, &world.tree, &world.store, &mut ());

assert_eq!(world.cache.bounds(node), Some(&Rect { posx: 200.0, posy: 200.0, width: 200.0, height: 200.0 }));
assert_eq!(world.cache.bounds(node2), Some(&Rect { posx: 0.0, posy: 0.0, width: 300.0, height: 300.0 }));
}

#[test]
fn min_height_auto_child_self_directed() {
let mut world = World::default();

let root = world.add(None);
world.set_width(root, Units::Pixels(600.0));
world.set_height(root, Units::Pixels(600.0));
world.set_child_space(root, Units::Stretch(1.0));

let node = world.add(Some(root));
world.set_width(node, Units::Stretch(1.0));
world.set_height(node, Units::Stretch(1.0));
world.set_min_height(node, Units::Auto);

let node2 = world.add(Some(node));
world.set_width(node2, Units::Pixels(300.0));
world.set_height(node2, Units::Pixels(300.0));
world.set_position_type(node2, PositionType::SelfDirected);

root.layout(&mut world.cache, &world.tree, &world.store, &mut ());

assert_eq!(world.cache.bounds(node), Some(&Rect { posx: 200.0, posy: 200.0, width: 200.0, height: 200.0 }));
assert_eq!(world.cache.bounds(node2), Some(&Rect { posx: 0.0, posy: 0.0, width: 300.0, height: 300.0 }));
}

#[test]
fn min_size_auto_child_self_directed() {
let mut world = World::default();

let root = world.add(None);
world.set_width(root, Units::Pixels(600.0));
world.set_height(root, Units::Pixels(600.0));
world.set_child_space(root, Units::Stretch(1.0));

let node = world.add(Some(root));
world.set_width(node, Units::Stretch(1.0));
world.set_height(node, Units::Stretch(1.0));
world.set_min_width(node, Units::Auto);
world.set_min_height(node, Units::Auto);

let node2 = world.add(Some(node));
world.set_width(node2, Units::Pixels(300.0));
world.set_height(node2, Units::Pixels(300.0));
world.set_position_type(node2, PositionType::SelfDirected);

root.layout(&mut world.cache, &world.tree, &world.store, &mut ());

assert_eq!(world.cache.bounds(node), Some(&Rect { posx: 200.0, posy: 200.0, width: 200.0, height: 200.0 }));
assert_eq!(world.cache.bounds(node2), Some(&Rect { posx: 0.0, posy: 0.0, width: 300.0, height: 300.0 }));
}

0 comments on commit 7a9cb4f

Please sign in to comment.