"
}
}
}
let mut dom = VirtualDom::new(app);
dom.rebuild(&mut dioxus_core::NoOpMutations);
assert_eq!(
dioxus_ssr::pre_render(&dom),
"
"
);
}
#[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"; }
"
);
}