gioser

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 500HTML 254C 19JavaScript 81398 Definiciones

⎇ 97049ea820b89122d9cc918f12e1dfd273449fe0 bindings/js/tests/web.rs Rust · 94 líneas · 2.4 KB Historia Quién tocó qué crudo

fix clippy and fmt 97049ea82 · Emil Sjölander ·

1#![cfg(target_arch = "wasm32")]
2
3extern crate wasm_bindgen_test;
4use js_sys::Function;
5use js_sys::Reflect;
6use stretch_js::*;
7use wasm_bindgen::prelude::*;
8use wasm_bindgen_test::*;
9
10wasm_bindgen_test_configure!(run_in_browser);
11
12fn js_value(js: &str) -> JsValue {
13    Function::new_no_args(&format!("return {};", js)).call0(&JsValue::UNDEFINED).unwrap()
14}
15
16#[wasm_bindgen_test]
17fn set_measure() {
18    let mut node = Node::new(&js_value("{}"));
19    node.set_measure(&js_value(
20        "function (w, h) {
21        return {width: 100, height: 100};
22    }",
23    ));
24
25    let layout = node.compute_layout(&JsValue::UNDEFINED);
26    assert_eq!(layout.width, 100.0);
27    assert_eq!(layout.height, 100.0);
28}
29
30#[wasm_bindgen_test]
31fn add_child() {
32    let mut node = Node::new(&js_value("{}"));
33    let child = Node::new(&js_value("{}"));
34
35    node.add_child(&child);
36
37    assert_eq!(node.childCount, 1);
38}
39
40#[wasm_bindgen_test]
41fn remove_child() {
42    let mut node = Node::new(&js_value("{}"));
43    let child = Node::new(&js_value("{}"));
44
45    node.add_child(&child);
46    node.remove_child(&child);
47
48    assert_eq!(node.childCount, 0);
49}
50
51#[wasm_bindgen_test]
52fn remove_child_at_index() {
53    let mut node = Node::new(&js_value("{}"));
54    let child = Node::new(&js_value("{}"));
55
56    node.add_child(&child);
57    node.remove_child_at_index(0);
58
59    assert_eq!(node.childCount, 0);
60}
61
62#[wasm_bindgen_test]
63fn replace_child_at_index() {
64    let mut node = Node::new(&js_value("{}"));
65    let child1 = Node::new(&js_value("{width: 100, height: 100}"));
66    let child2 = Node::new(&js_value("{width: 200, height: 200}"));
67
68    node.add_child(&child1);
69    node.replace_child_at_index(0, &child2);
70    let layout = node.compute_layout(&JsValue::UNDEFINED);
71
72    assert_eq!(layout.width, 200.0);
73    assert_eq!(layout.height, 200.0);
74}
75
76#[wasm_bindgen_test]
77fn set_style() {
78    let mut node = Node::new(&js_value("{}"));
79    node.set_style(&js_value("{width: 200, height: 200}"));
80    let style = node.get_style();
81
82    assert_eq!(Reflect::get(&style, &"width".into()).unwrap().as_f64(), Some(200.0));
83    assert_eq!(Reflect::get(&style, &"height".into()).unwrap().as_f64(), Some(200.0));
84}
85
86#[wasm_bindgen_test]
87fn mark_dirty() {
88    let mut node = Node::new(&js_value("{}"));
89    node.compute_layout(&JsValue::UNDEFINED);
90
91    assert_eq!(node.is_dirty(), false);
92    node.mark_dirty();
93    assert_eq!(node.is_dirty(), true);
94}