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"); +} |