From b130d19249f0b840945b7dfd7816ce61049e6030 Mon Sep 17 00:00:00 2001 From: Nico Burns Date: Fri, 29 Sep 2023 20:34:45 +0100 Subject: [PATCH] Add test for gap when the first child is position:absolute --- .../flex/gap_column_gap_start_index.html | 20 +++++ .../flex/gap_column_gap_start_index.rs | 86 +++++++++++++++++++ tests/generated/flex/mod.rs | 1 + 3 files changed, 107 insertions(+) create mode 100644 test_fixtures/flex/gap_column_gap_start_index.html create mode 100644 tests/generated/flex/gap_column_gap_start_index.rs diff --git a/test_fixtures/flex/gap_column_gap_start_index.html b/test_fixtures/flex/gap_column_gap_start_index.html new file mode 100644 index 000000000..2b255b0ce --- /dev/null +++ b/test_fixtures/flex/gap_column_gap_start_index.html @@ -0,0 +1,20 @@ + + + + + + + Test description + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/tests/generated/flex/gap_column_gap_start_index.rs b/tests/generated/flex/gap_column_gap_start_index.rs new file mode 100644 index 000000000..5d6047564 --- /dev/null +++ b/tests/generated/flex/gap_column_gap_start_index.rs @@ -0,0 +1,86 @@ +#[test] +fn gap_column_gap_start_index() { + #[allow(unused_imports)] + use taffy::{prelude::*, tree::Layout}; + let mut taffy = taffy::Taffy::new(); + let node0 = taffy + .new_leaf(taffy::style::Style { + position: taffy::style::Position::Absolute, + size: taffy::geometry::Size { + width: taffy::style::Dimension::Length(20f32), + height: taffy::style::Dimension::Length(20f32), + }, + ..Default::default() + }) + .unwrap(); + let node1 = taffy + .new_leaf(taffy::style::Style { + size: taffy::geometry::Size { + width: taffy::style::Dimension::Length(20f32), + height: taffy::style::Dimension::Length(20f32), + }, + ..Default::default() + }) + .unwrap(); + let node2 = taffy + .new_leaf(taffy::style::Style { + size: taffy::geometry::Size { + width: taffy::style::Dimension::Length(20f32), + height: taffy::style::Dimension::Length(20f32), + }, + ..Default::default() + }) + .unwrap(); + let node3 = taffy + .new_leaf(taffy::style::Style { + size: taffy::geometry::Size { + width: taffy::style::Dimension::Length(20f32), + height: taffy::style::Dimension::Length(20f32), + }, + ..Default::default() + }) + .unwrap(); + let node = taffy + .new_with_children( + taffy::style::Style { + flex_wrap: taffy::style::FlexWrap::Wrap, + gap: taffy::geometry::Size { + width: taffy::style::LengthPercentage::Length(10f32), + height: taffy::style::LengthPercentage::Length(20f32), + }, + size: taffy::geometry::Size { width: taffy::style::Dimension::Length(80f32), height: auto() }, + ..Default::default() + }, + &[node0, node1, node2, node3], + ) + .unwrap(); + taffy.compute_layout(node, taffy::geometry::Size::MAX_CONTENT).unwrap(); + println!("\nComputed tree:"); + taffy::util::print_tree(&taffy, node); + println!(); + let Layout { size, location, .. } = taffy.layout(node).unwrap(); + assert_eq!(size.width, 80f32, "width of node {:?}. Expected {}. Actual {}", node, 80f32, size.width); + assert_eq!(size.height, 20f32, "height of node {:?}. Expected {}. Actual {}", node, 20f32, size.height); + assert_eq!(location.x, 0f32, "x of node {:?}. Expected {}. Actual {}", node, 0f32, location.x); + assert_eq!(location.y, 0f32, "y of node {:?}. Expected {}. Actual {}", node, 0f32, location.y); + let Layout { size, location, .. } = taffy.layout(node0).unwrap(); + assert_eq!(size.width, 20f32, "width of node {:?}. Expected {}. Actual {}", node0, 20f32, size.width); + assert_eq!(size.height, 20f32, "height of node {:?}. Expected {}. Actual {}", node0, 20f32, size.height); + assert_eq!(location.x, 0f32, "x of node {:?}. Expected {}. Actual {}", node0, 0f32, location.x); + assert_eq!(location.y, 0f32, "y of node {:?}. Expected {}. Actual {}", node0, 0f32, location.y); + let Layout { size, location, .. } = taffy.layout(node1).unwrap(); + assert_eq!(size.width, 20f32, "width of node {:?}. Expected {}. Actual {}", node1, 20f32, size.width); + assert_eq!(size.height, 20f32, "height of node {:?}. Expected {}. Actual {}", node1, 20f32, size.height); + assert_eq!(location.x, 0f32, "x of node {:?}. Expected {}. Actual {}", node1, 0f32, location.x); + assert_eq!(location.y, 0f32, "y of node {:?}. Expected {}. Actual {}", node1, 0f32, location.y); + let Layout { size, location, .. } = taffy.layout(node2).unwrap(); + assert_eq!(size.width, 20f32, "width of node {:?}. Expected {}. Actual {}", node2, 20f32, size.width); + assert_eq!(size.height, 20f32, "height of node {:?}. Expected {}. Actual {}", node2, 20f32, size.height); + assert_eq!(location.x, 30f32, "x of node {:?}. Expected {}. Actual {}", node2, 30f32, location.x); + assert_eq!(location.y, 0f32, "y of node {:?}. Expected {}. Actual {}", node2, 0f32, location.y); + let Layout { size, location, .. } = taffy.layout(node3).unwrap(); + assert_eq!(size.width, 20f32, "width of node {:?}. Expected {}. Actual {}", node3, 20f32, size.width); + assert_eq!(size.height, 20f32, "height of node {:?}. Expected {}. Actual {}", node3, 20f32, size.height); + assert_eq!(location.x, 60f32, "x of node {:?}. Expected {}. Actual {}", node3, 60f32, location.x); + assert_eq!(location.y, 0f32, "y of node {:?}. Expected {}. Actual {}", node3, 0f32, location.y); +} diff --git a/tests/generated/flex/mod.rs b/tests/generated/flex/mod.rs index d80105ba7..bd2b8baed 100644 --- a/tests/generated/flex/mod.rs +++ b/tests/generated/flex/mod.rs @@ -238,6 +238,7 @@ mod gap_column_gap_percentage_flexible; mod gap_column_gap_percentage_flexible_with_padding; mod gap_column_gap_percentage_inflexible; mod gap_column_gap_row_gap_wrapping; +mod gap_column_gap_start_index; mod gap_column_gap_wrap_align_center; mod gap_column_gap_wrap_align_flex_end; mod gap_column_gap_wrap_align_flex_start;