use dioxus::prelude::*; #[test] fn escape_static_values() { fn app() -> Element { rsx! { input { disabled: "\">
" } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "" ); } #[test] fn escape_dynamic_values() { fn app() -> Element { let disabled = "\">
"; rsx! { input { disabled } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "" ); } #[test] fn escape_static_style() { fn app() -> Element { rsx! { div { width: "\">
" } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "
" ); } #[test] fn escape_dynamic_style() { fn app() -> Element { let width = "\">
"; rsx! { div { width } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "
" ); } #[test] fn escape_static_text() { fn app() -> Element { rsx! { div { "\">
" } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "
"><div>
" ); } #[test] fn escape_dynamic_text() { fn app() -> Element { let text = "\">
"; rsx! { div { {text} } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "
"><div>
" ); } #[test] fn don_t_escape_static_scripts() { fn app() -> Element { rsx! { script { "console.log('hello world');" } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "" ); } #[test] fn don_t_escape_dynamic_scripts() { fn app() -> Element { let script = "console.log('hello world');"; rsx! { script { {script} } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "" ); } #[test] fn don_t_escape_static_styles() { fn app() -> Element { rsx! { style { "body {{ background-color: red; }}" } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "" ); } #[test] fn don_t_escape_dynamic_styles() { fn app() -> Element { let style = "body { font-family: \"sans-serif\"; }"; rsx! { style { {style} } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "" ); } #[test] fn don_t_escape_static_fragment_styles() { fn app() -> Element { let style_element = rsx! { "body {{ font-family: \"sans-serif\"; }}" }; rsx! { style { {style_element} } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "" ); } #[test] fn escape_static_component_fragment_div() { #[component] fn StyleContents() -> Element { rsx! { "body {{ font-family: \"sans-serif\"; }}" } } fn app() -> Element { rsx! { div { StyleContents {} } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "
body { font-family: "sans-serif"; }
" ); } #[test] fn escape_dynamic_component_fragment_div() { #[component] fn StyleContents() -> Element { let dynamic = "body { font-family: \"sans-serif\"; }"; rsx! { "{dynamic}" } } fn app() -> Element { rsx! { div { StyleContents {} } } } let mut dom = VirtualDom::new(app); dom.rebuild(&mut dioxus_core::NoOpMutations); assert_eq!( dioxus_ssr::pre_render(&dom), "
body { font-family: "sans-serif"; }
" ); }