aboutsummaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
authorLibravatar max <gmx.sht@gmail.com>2023-12-11 16:43:16 +0200
committerLibravatar Dirkjan Ochtman <dirkjan@ochtman.nl>2024-01-17 17:58:53 +0100
commit5cad82f38e800a42717284f20e7e0923add1e32f (patch)
treec58e7220a9e8500b65f3eb116ea12c43bd92a61a /testing
parent514ae1b24cebb50cad04d0717092a9f890b7a245 (diff)
downloadaskama-5cad82f38e800a42717284f20e7e0923add1e32f.tar.gz
askama-5cad82f38e800a42717284f20e7e0923add1e32f.tar.bz2
askama-5cad82f38e800a42717284f20e7e0923add1e32f.zip
Allow included templates to `extend`, `import`, and `macro`
Signed-off-by: max <gmx.sht@gmail.com>
Diffstat (limited to 'testing')
-rw-r--r--testing/templates/include-extends-base.html6
-rw-r--r--testing/templates/include-extends-included.html2
-rw-r--r--testing/templates/include-extends.html4
-rw-r--r--testing/templates/include-macro.html4
-rw-r--r--testing/templates/included-macro.html6
-rw-r--r--testing/tests/include.rs41
6 files changed, 63 insertions, 0 deletions
diff --git a/testing/templates/include-extends-base.html b/testing/templates/include-extends-base.html
new file mode 100644
index 0000000..7a54ca0
--- /dev/null
+++ b/testing/templates/include-extends-base.html
@@ -0,0 +1,6 @@
+<div>
+ <p>Below me is the header</p>
+ {% block header %}{% endblock %}
+ <p>Above me is the header</p>
+</div>
+Hello, {{ name }}!
diff --git a/testing/templates/include-extends-included.html b/testing/templates/include-extends-included.html
new file mode 100644
index 0000000..03b7553
--- /dev/null
+++ b/testing/templates/include-extends-included.html
@@ -0,0 +1,2 @@
+{% extends "include-extends-base.html" %}
+{% block header %}foo{% endblock %}
diff --git a/testing/templates/include-extends.html b/testing/templates/include-extends.html
new file mode 100644
index 0000000..371c133
--- /dev/null
+++ b/testing/templates/include-extends.html
@@ -0,0 +1,4 @@
+<div>
+ <h1>Welcome</h1>
+ {% include "include-extends-included.html" %}
+</div>
diff --git a/testing/templates/include-macro.html b/testing/templates/include-macro.html
new file mode 100644
index 0000000..e29789d
--- /dev/null
+++ b/testing/templates/include-macro.html
@@ -0,0 +1,4 @@
+{% macro m(name) -%}
+ Hello, {{ name }}!
+{%- endmacro -%}
+{% include "included-macro.html" %}
diff --git a/testing/templates/included-macro.html b/testing/templates/included-macro.html
new file mode 100644
index 0000000..efbae18
--- /dev/null
+++ b/testing/templates/included-macro.html
@@ -0,0 +1,6 @@
+{% macro m2(name) -%}
+ Howdy, {{ name }}!
+{%- endmacro -%}
+
+{% call m(name) %}
+{% call m2(name2) %}
diff --git a/testing/tests/include.rs b/testing/tests/include.rs
index f461a7b..c11d96f 100644
--- a/testing/tests/include.rs
+++ b/testing/tests/include.rs
@@ -12,3 +12,44 @@ fn test_include() {
let s = IncludeTemplate { strs: &strs };
assert_eq!(s.render().unwrap(), "\n INCLUDED: foo\n INCLUDED: bar")
}
+
+#[derive(Template)]
+#[template(path = "include-extends.html")]
+struct IncludeExtendsTemplate<'a> {
+ name: &'a str,
+}
+
+#[test]
+fn test_include_extends() {
+ let template = IncludeExtendsTemplate { name: "Alice" };
+
+ assert_eq!(
+ template.render().unwrap(),
+ "<div>\n \
+ <h1>Welcome</h1>\n \
+ <div>\n \
+ <p>Below me is the header</p>\n \
+ foo\n \
+ <p>Above me is the header</p>\n\
+ </div>\n\
+ Hello, Alice!\n\
+ </div>"
+ );
+}
+
+#[derive(Template)]
+#[template(path = "include-macro.html")]
+struct IncludeMacroTemplate<'a> {
+ name: &'a str,
+ name2: &'a str,
+}
+
+#[test]
+fn test_include_macro() {
+ let template = IncludeMacroTemplate {
+ name: "Alice",
+ name2: "Bob",
+ };
+
+ assert_eq!(template.render().unwrap(), "Hello, Alice!\nHowdy, Bob!");
+}