Add `taffy_test_helpers` crate (#755)
1use taffy::prelude::*;
2use taffy::style_helpers::TaffyZero;
3use taffy_test_helpers::new_test_tree;
4
5fn arr_to_rect<T: Copy>(items: [T; 4]) -> Rect<T> {
6 Rect { left: items[0], right: items[1], top: items[2], bottom: items[3] }
7}
8
9#[test]
10#[ignore]
11fn border_on_a_single_axis_doesnt_increase_size() {
12 for i in 0..4 {
13 let mut taffy = new_test_tree();
14 let node = taffy
15 .new_leaf(Style {
16 border: {
17 let mut lengths = [LengthPercentage::ZERO; 4];
18 lengths[i] = LengthPercentage::Length(10.);
19 arr_to_rect(lengths)
20 },
21 ..Default::default()
22 })
23 .unwrap();
24
25 taffy
26 .compute_layout(
27 node,
28 Size { width: AvailableSpace::Definite(100.0), height: AvailableSpace::Definite(100.0) },
29 )
30 .unwrap();
31
32 let layout = taffy.layout(node).unwrap();
33 assert_eq!(layout.size.width * layout.size.height, 0.);
34 }
35}
36
37#[test]
38#[ignore]
39fn padding_on_a_single_axis_doesnt_increase_size() {
40 for i in 0..4 {
41 let mut taffy = new_test_tree();
42 let node = taffy
43 .new_leaf(Style {
44 padding: {
45 let mut lengths = [LengthPercentage::ZERO; 4];
46 lengths[i] = LengthPercentage::Length(10.);
47 arr_to_rect(lengths)
48 },
49 ..Default::default()
50 })
51 .unwrap();
52
53 taffy
54 .compute_layout(
55 node,
56 Size { width: AvailableSpace::Definite(100.0), height: AvailableSpace::Definite(100.0) },
57 )
58 .unwrap();
59
60 let layout = taffy.layout(node).unwrap();
61 assert_eq!(layout.size.width * layout.size.height, 0.);
62 }
63}
64
65#[test]
66#[ignore]
67fn border_and_padding_on_a_single_axis_doesnt_increase_size() {
68 for i in 0..4 {
69 let mut taffy = new_test_tree();
70 let rect = {
71 let mut lengths = [LengthPercentage::ZERO; 4];
72 lengths[i] = LengthPercentage::Length(10.);
73 arr_to_rect(lengths)
74 };
75 let node = taffy.new_leaf(Style { border: rect, padding: rect, ..Default::default() }).unwrap();
76
77 taffy
78 .compute_layout(
79 node,
80 Size { width: AvailableSpace::Definite(100.0), height: AvailableSpace::Definite(100.0) },
81 )
82 .unwrap();
83 let layout = taffy.layout(node).unwrap();
84 assert_eq!(layout.size.width * layout.size.height, 0.);
85 }
86}
87
88#[test]
89#[ignore]
90fn vertical_border_and_padding_percentage_values_use_available_space_correctly() {
91 let mut taffy = new_test_tree();
92
93 let node = taffy
94 .new_leaf(Style {
95 padding: Rect { left: LengthPercentage::Percent(1.0), top: LengthPercentage::Percent(1.0), ..Rect::zero() },
96 ..Default::default()
97 })
98 .unwrap();
99
100 taffy
101 .compute_layout(node, Size { width: AvailableSpace::Definite(200.0), height: AvailableSpace::Definite(100.0) })
102 .unwrap();
103
104 let layout = taffy.layout(node).unwrap();
105 assert_eq!(layout.size.width, 200.0);
106 assert_eq!(layout.size.height, 200.0);
107}