diff options
Diffstat (limited to 'testing/tests')
| -rw-r--r-- | testing/tests/methods.rs | 42 | 
1 files changed, 42 insertions, 0 deletions
diff --git a/testing/tests/methods.rs b/testing/tests/methods.rs new file mode 100644 index 0000000..f33441d --- /dev/null +++ b/testing/tests/methods.rs @@ -0,0 +1,42 @@ +#[macro_use] +extern crate askama; + +use askama::Template; + +#[derive(Template)] +#[template(source = "{{ self.get_s() }}", ext = "txt")] +struct MethodTemplate<'a> { +    s: &'a str, +} + +impl<'a> MethodTemplate<'a> { +    fn get_s(&self) -> &str { +        self.s +    } +} + +#[derive(Template)] +#[template(source = "{{ self.get_s() }} {{ t.get_s() }}", ext = "txt")] +struct NestedMethodTemplate<'a> { +    t: MethodTemplate<'a>, +} + +impl<'a> NestedMethodTemplate<'a> { +    fn get_s(&self) -> &str { +        "bar" +    } +} + +#[test] +fn test_method() { +    let t = MethodTemplate { s: "foo" }; +    assert_eq!(t.render().unwrap(), "foo"); +} + +#[test] +fn test_nested() { +    let t = NestedMethodTemplate { +        t: MethodTemplate { s: "foo" }, +    }; +    assert_eq!(t.render().unwrap(), "bar foo"); +}  | 
