tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

HTML 227Rust 7TOML 3CSS 1307 Definiciones

⎇ 6ce28e1535f2ab4631d0502f2fee13d4827f2a11 tests/border_and_padding.rs Rust · 102 líneas · 3.1 KB Historia Quién tocó qué crudo

Fixing a test testing border instead of padding (#287) 4658ee0c3 · adjabaev ·

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