Skip to content
This repository was archived by the owner on Mar 11, 2025. It is now read-only.

Commit 6021e9c

Browse files
Add tests for allow whitespaces patch
1 parent febaaf4 commit 6021e9c

2 files changed

Lines changed: 107 additions & 0 deletions

File tree

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
2+
{{ tuple.0 }}
3+
{{ tuple .1 }}
4+
{{ tuple. 2 }}
5+
{{ tuple . 3 }}
6+
{% let ( t0 , t1 , t2 , t3 , ) = tuple %}
7+
8+
{{ string }}
9+
{{ string.len( ) }}
10+
{{ string . len () }}
11+
{{ string . len () }}
12+
{{ string. len () }}
13+
{{ string . len ( ) }}
14+
15+
{{ nested_1 . nested_2 . array [0] }}
16+
{{ nested_1 .nested_2. array [ 1 ] }}
17+
{{ nested_1 .nested_2. hash [ "key" ] }}
18+
19+
{% let array = nested_1.nested_2.array %}
20+
{#
21+
{% let array = nested_1.nested_2.array %}
22+
{% let array = nested_1 . nested_2 . array %}
23+
#}
24+
{#
25+
{% let hash = &nested_1.nested_2.hash %}
26+
#}
27+
28+
{{ array| json }}
29+
{{ array[..]| json }}{{ array [ .. ]| json }}
30+
{{ array[1..2]| json }}{{ array [ 1 .. 2 ]| json }}
31+
{{ array[1..=2]| json }}{{ array [ 1 ..= 2 ]| json }}
32+
{{ array[(0+1)..(3-2)]| json }}{{ array [ ( 0 + 1 ) .. ( 3 - 2 ) ]| json }}
33+
34+
{{-1}}{{ -1 }}{{ - 1 }}
35+
{{1+2}}{{ 1+2 }}{{ 1 +2 }}{{ 1+ 2 }} {{ 1 + 2 }}
36+
{{1*2}}{{ 1*2 }}{{ 1 *2 }}{{ 1* 2 }} {{ 1 * 2 }}
37+
{{1&2}}{{ 1&2 }}{{ 1 &2 }}{{ 1& 2 }} {{ 1 & 2 }}
38+
{{1|2}}{{ 1|2 }}{{ 1 |2 }}{{ 1| 2 }} {{ 1 | 2 }}
39+
40+
{{true}}{{false}}
41+
{{!true}}{{ !true }}{{ ! true }}
42+
{#
43+
{{true&&false}}{{ true&&false }}{{ true &&false }}{{ true&& false }} {{ true && false }}
44+
{{true||false}}{{ true||false }}{{ true ||false }}{{ true|| false }} {{ true || false }}
45+
#}
46+
47+
{{ self.f0() }}{{ self.f0 () }}{{ self.f0 ( ) }}
48+
{{ self.f1("1") }}{{ self.f1 ( "1" ) }}{{ self.f1 ( "1" ) }}
49+
{{ self.f2("1","2") }}{{ self.f2 ( "1" ,"2" ) }}{{ self.f2 ( "1" , "2" ) }}
50+
51+
{% for s in 0..5 %}{% endfor %}
52+
{% for s in 0 .. 5 %}{% endfor %}
53+
54+
{% match option %}
55+
{% when Option :: Some with ( option ) %}
56+
{% when std :: option :: Option :: None %}
57+
{% endmatch %}
58+
59+
{{ std::string::String::new () }}
60+
{#
61+
{{ ::std::string::String::new () }}
62+
#}
63+

testing/tests/simple.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,3 +402,47 @@ fn test_define_string_var() {
402402
let template = DefineStringVar;
403403
assert_eq!(template.render().unwrap(), "");
404404
}
405+
406+
#[derive(askama::Template, Default)]
407+
#[template(path = "allow-whitespaces.html")]
408+
struct AllowWhitespaces {
409+
tuple: (u64, u64, u64, u64),
410+
string: &'static str,
411+
option: Option<Option<bool>>,
412+
nested_1: AllowWhitespacesNested1,
413+
}
414+
415+
#[derive(Default)]
416+
struct AllowWhitespacesNested1 {
417+
nested_2: AllowWhitespacesNested2,
418+
}
419+
420+
#[derive(Default)]
421+
struct AllowWhitespacesNested2 {
422+
array: &'static [&'static str],
423+
hash: HashMap<&'static str, &'static str>,
424+
}
425+
426+
impl AllowWhitespaces {
427+
fn f0(&self) -> &str {
428+
""
429+
}
430+
fn f1(&self, _a: &str) -> &str {
431+
""
432+
}
433+
fn f2(&self, _a: &str, _b: &str) -> &str {
434+
""
435+
}
436+
}
437+
438+
#[test]
439+
fn test_allow_whitespaces() {
440+
let mut template = AllowWhitespaces::default();
441+
template.nested_1.nested_2.array = &["a0", "a1", "a2", "a3"];
442+
template
443+
.nested_1
444+
.nested_2
445+
.hash
446+
.insert("key".into(), "value".into());
447+
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");
448+
}

0 commit comments

Comments
 (0)