From 0330699a337f4bd86854eaafccc7128117f10b14 Mon Sep 17 00:00:00 2001 From: Mika Lehtinen Date: Sun, 20 May 2018 21:50:59 +0300 Subject: Add tests for calling methods on self --- testing/tests/methods.rs | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 testing/tests/methods.rs (limited to 'testing') 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"); +} -- cgit