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