From 3d75bcfe786e23be26302c5d39658d75d19468b7 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Fri, 22 Jun 2018 16:03:53 +0200 Subject: Add test for deep inheritance --- testing/templates/deep-base.html | 14 ++++++ testing/templates/deep-kid.html | 10 +++++ testing/templates/deep-mid.html | 19 +++++++++ testing/tests/inheritance.rs | 92 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 135 insertions(+) create mode 100644 testing/templates/deep-base.html create mode 100644 testing/templates/deep-kid.html create mode 100644 testing/templates/deep-mid.html diff --git a/testing/templates/deep-base.html b/testing/templates/deep-base.html new file mode 100644 index 0000000..0d874ac --- /dev/null +++ b/testing/templates/deep-base.html @@ -0,0 +1,14 @@ +{% import "macro.html" as libb %} + + + {% block head %} + + {% endblock %} + + + {% block body %} + {% call libb::thrice("nav") %} + Copyright {{ year }} + {% endblock %} + + diff --git a/testing/templates/deep-kid.html b/testing/templates/deep-kid.html new file mode 100644 index 0000000..a2aa105 --- /dev/null +++ b/testing/templates/deep-kid.html @@ -0,0 +1,10 @@ +{% extends "deep-mid.html" %} +{% import "macro.html" as libk %} + +{% block head %} + +{% endblock %} + +{% block content %} + {% call libk::thrice(item) %} +{% endblock %} diff --git a/testing/templates/deep-mid.html b/testing/templates/deep-mid.html new file mode 100644 index 0000000..76ab7e6 --- /dev/null +++ b/testing/templates/deep-mid.html @@ -0,0 +1,19 @@ +{% extends "deep-base.html" %} +{% import "macro.html" as libm %} + +{% block head %} + {{ title }} +{% endblock %} + +{% block body %} +
+
+ {% block content %} + No content found + {% endblock %} +
+ +
+{% endblock %} diff --git a/testing/tests/inheritance.rs b/testing/tests/inheritance.rs index 2fd69c6..9efbd62 100644 --- a/testing/tests/inheritance.rs +++ b/testing/tests/inheritance.rs @@ -79,3 +79,95 @@ fn test_nested_blocks() { }; assert_eq!(t.render().unwrap(), "\ndurpy\n"); } + +#[derive(Template)] +#[template(path = "deep-base.html")] +struct DeepBaseTemplate { + year: u16, +} + +#[derive(Template)] +#[template(path = "deep-mid.html")] +struct DeepMidTemplate { + _parent: DeepBaseTemplate, + title: String, +} + +#[derive(Template)] +#[template(path = "deep-kid.html")] +struct DeepKidTemplate { + _parent: DeepMidTemplate, + item: String, +} + +#[test] +fn test_deep() { + let t = DeepKidTemplate { + _parent: DeepMidTemplate { + _parent: DeepBaseTemplate { + year: 2018, + }, + title: "Test".into(), + }, + item: "Foo".into(), + }; + + assert_eq!(t.render().unwrap(), " + + + + + + + + +
+
+ + Foo Foo Foo + +
+
+ nav nav nav +
+
+ + +"); + assert_eq!(t._parent.render().unwrap(), " + + + + Test + + + + +
+
+ + No content found + +
+
+ nav nav nav +
+
+ + +"); + assert_eq!(t._parent._parent.render().unwrap(), " + + + + + + + + + nav nav nav + Copyright 2018 + + +"); +} -- cgit