diff options
-rw-r--r-- | testing/templates/allow-whitespaces.html | 63 | ||||
-rw-r--r-- | testing/tests/whitespace.rs | 41 |
2 files changed, 104 insertions, 0 deletions
diff --git a/testing/templates/allow-whitespaces.html b/testing/templates/allow-whitespaces.html new file mode 100644 index 0000000..80f7ecd --- /dev/null +++ b/testing/templates/allow-whitespaces.html @@ -0,0 +1,63 @@ + +{{ tuple.0 }} +{{ tuple .1 }} +{{ tuple. 2 }} +{{ tuple . 3 }} +{% let ( t0 , t1 , t2 , t3 , ) = tuple %} + +{{ string }} +{{ string.len( ) }} +{{ string . len () }} +{{ string . len () }} +{{ string. len () }} +{{ string . len ( ) }} + +{{ nested_1 . nested_2 . array [0] }} +{{ nested_1 .nested_2. array [ 1 ] }} +{{ nested_1 .nested_2. hash [ "key" ] }} + +{% let array = nested_1.nested_2.array %} +{# +{% let array = nested_1.nested_2.array %} +{% let array = nested_1 . nested_2 . array %} +#} +{# +{% let hash = &nested_1.nested_2.hash %} +#} + +{{ array| json }} +{{ array[..]| json }}{{ array [ .. ]| json }} +{{ array[1..2]| json }}{{ array [ 1 .. 2 ]| json }} +{{ array[1..=2]| json }}{{ array [ 1 ..= 2 ]| json }} +{{ array[(0+1)..(3-2)]| json }}{{ array [ ( 0 + 1 ) .. ( 3 - 2 ) ]| json }} + +{{-1}}{{ -1 }}{{ - 1 }} +{{1+2}}{{ 1+2 }}{{ 1 +2 }}{{ 1+ 2 }} {{ 1 + 2 }} +{{1*2}}{{ 1*2 }}{{ 1 *2 }}{{ 1* 2 }} {{ 1 * 2 }} +{{1&2}}{{ 1&2 }}{{ 1 &2 }}{{ 1& 2 }} {{ 1 & 2 }} +{{1|2}}{{ 1|2 }}{{ 1 |2 }}{{ 1| 2 }} {{ 1 | 2 }} + +{{true}}{{false}} +{{!true}}{{ !true }}{{ ! true }} +{# +{{true&&false}}{{ true&&false }}{{ true &&false }}{{ true&& false }} {{ true && false }} +{{true||false}}{{ true||false }}{{ true ||false }}{{ true|| false }} {{ true || false }} +#} + +{{ self.f0() }}{{ self.f0 () }}{{ self.f0 ( ) }} +{{ self.f1("1") }}{{ self.f1 ( "1" ) }}{{ self.f1 ( "1" ) }} +{{ self.f2("1","2") }}{{ self.f2 ( "1" ,"2" ) }}{{ self.f2 ( "1" , "2" ) }} + +{% for s in 0..5 %}{% endfor %} +{% for s in 0 .. 5 %}{% endfor %} + +{% match option %} +{% when Option :: Some with ( option ) %} +{% when std :: option :: Option :: None %} +{% endmatch %} + +{{ std::string::String::new () }} +{# +{{ ::std::string::String::new () }} +#} + diff --git a/testing/tests/whitespace.rs b/testing/tests/whitespace.rs new file mode 100644 index 0000000..befc7d1 --- /dev/null +++ b/testing/tests/whitespace.rs @@ -0,0 +1,41 @@ +use askama::Template; + +#[derive(askama::Template, Default)] +#[template(path = "allow-whitespaces.html")] +struct AllowWhitespaces { + tuple: (u64, u64, u64, u64), + string: &'static str, + option: Option<bool>, + nested_1: AllowWhitespacesNested1, +} + +#[derive(Default)] +struct AllowWhitespacesNested1 { + nested_2: AllowWhitespacesNested2, +} + +#[derive(Default)] +struct AllowWhitespacesNested2 { + array: &'static [&'static str], + hash: std::collections::HashMap<&'static str, &'static str>, +} + +impl AllowWhitespaces { + fn f0(&self) -> &str { + "" + } + fn f1(&self, _a: &str) -> &str { + "" + } + fn f2(&self, _a: &str, _b: &str) -> &str { + "" + } +} + +#[test] +fn test_extra_whitespace() { + let mut template = AllowWhitespaces::default(); + template.nested_1.nested_2.array = &["a0", "a1", "a2", "a3"]; + template.nested_1.nested_2.hash.insert("key", "value"); + assert_eq!(template.render().unwrap(), "\n0\n0\n0\n0\n\n\n\n0\n0\n0\n0\n0\n\na0\na1\nvalue\n\n\n\n\n\n[\n \"a0\",\n \"a1\",\n \"a2\",\n \"a3\"\n]\n[\n \"a0\",\n \"a1\",\n \"a2\",\n \"a3\"\n][\n \"a0\",\n \"a1\",\n \"a2\",\n \"a3\"\n]\n[\n \"a1\"\n][\n \"a1\"\n]\n[\n \"a1\",\n \"a2\"\n][\n \"a1\",\n \"a2\"\n]\n[][]1-1-1\n3333 3\n2222 2\n0000 0\n3333 3\n\ntruefalse\nfalsefalsefalse\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); +} |