cookie_cutter::__internal__single_source_single_template_tests!(
    escape_html,
    r#"Hello 	 `&lt;3` = &#39;Chris&#39; &#43; &#34;Chip&#34; &amp; other &gt;
<p  single='Hello 	 `&lt;3` = &#39;Chris&#39; &#43; &#34;Chip&#34; &amp; other &gt;'
    double="Hello 	 `&lt;3` = &#39;Chris&#39; &#43; &#34;Chip&#34; &amp; other &gt;"
    bare=Hello&#32;&#9;&#32;&#96;&lt;3&#96;&#32;&#61;&#32;&#39;Chris&#39;&#32;&#43;&#32;&#34;Chip&#34;&#32;&amp;&#32;other&#32;&gt;
></p>
<title>
    Hello 	 `&lt;3` = &#39;Chris&#39; &#43; &#34;Chip&#34; &amp; other &gt;
</title>
<textarea>
    Hello 	 `&lt;3` = &#39;Chris&#39; &#43; &#34;Chip&#34; &amp; other &gt;
</textarea>
<!-- Hello, <this> is a comment.
-- it has -- > multiple lines -->
<style>
    Hello some css \3c \2f style>!
    "Hello \\ \9  \28 \22 Jack\22 \29  \3c \2f style\3e "
    // Hello //*/ bye
    /* Hello //
 bye */
</style>
<script>
    Hello some js \3c \2f script>!
    "Hello \u0027\u0027 \\ \t (\u0022Jacob\u0022) \u003c\/script\u003e"
    return /a\^\[\] hello \(\)\? hi \$b/
    `hello \u0024\u0024\u007bhi\u007d \u007bbla! ${Hello some js \3c \2f script>!}`
</script>"#,
    "../testdata/source_files/escape_html.cctmpl",
    cookie_cutter::include_templates!("../testdata/source_files/escape_html.cctmpl"),
    "escape_html",
    value! {
        html: "Hello \t `<3` = 'Chris' + \"Chip\" & other >",
        html_comment: "Hello, <this> -->is a comment.\n-- it has -- > multiple lines",
        css: "Hello some css </style>!",
        css_string: "Hello \\ \t (\"Jack\") </style>",
        css_comment: ["Hello //\n*/ bye"],
        js: "Hello some js </script>!",
        js_string: "Hello '' \\ \t (\"Jacob\") </script>",
        js_regex: "^[] hello ()? hi $",
        js_template_literal: "hello $${hi} {bla!"
    },
    {
        #[allow(dead_code)]
        #[cfg_attr(feature = "serde", derive(Serialize))]
        struct Data {
            html: String,
            html_comment: String,
            css: String,
            css_string: String,
            css_comment: Vec<String>,
            js: String,
            js_string: String,
            js_regex: String,
            js_template_literal: String,
        }
    },
    Data {
        html: "Hello \t `<3` = 'Chris' + \"Chip\" & other >".to_string(),
        html_comment: "Hello, <this> -->is a comment.\n-- it has -- > multiple lines".to_string(),
        css: "Hello some css </style>!".to_string(),
        css_string: "Hello \\ \t (\"Jack\") </style>".to_string(),
        css_comment: vec!["Hello //\n*/ bye".to_string()],
        js: "Hello some js </script>!".to_string(),
        js_string: "Hello '' \\ \t (\"Jacob\") </script>".to_string(),
        js_regex: "^[] hello ()? hi $".to_string(),
        js_template_literal: "hello $${hi} {bla!".to_string()
    }
);
