Annotate

spec/util_xtemplate_spec.lua @ 13462:720aed1f5cf2

util.startup: Check root after detecting platform and reading config (thanks SigmaTel71) Ensures that startup.detect_platform() runs so know whether to use the POSIX method of checking the current user or something else. Also after reading the config so we know whether the root override setting is set.
author Kim Alvefur <zash@zash.se>
date Sun, 24 Mar 2024 20:39:42 +0100
parent 13404:034c7af177f0
child 13499:1f93e4f78c53
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13395
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local st = require "prosody.util.stanza";
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 local xtemplate = require "prosody.util.xtemplate";
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 describe("util.xtemplate", function ()
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 describe("render()", function ()
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 it("works", function ()
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 assert.same("Hello", xtemplate.render("{greeting}", st.stanza("root"):text_tag("greeting", "Hello")), "regular text content")
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 assert.same("Hello", xtemplate.render("{#}", st.stanza("root"):text("Hello")), "top tag text content")
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 assert.same("Hello", xtemplate.render("{greeting/@en}", st.stanza("root"):tag("greeting", { en = "Hello" })), "attribute")
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 end)
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 it("supports conditionals", function ()
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 local atom_tmpl = "{@pubsub:title|and{*{@pubsub:title}*\n\n}}{summary|or{{author/name|and{{author/name} posted }}{title}}}";
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 local atom_data = st.stanza("entry", { xmlns = "http://www.w3.org/2005/Atom" });
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 assert.same("", xtemplate.render(atom_tmpl, atom_data));
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 atom_data:text_tag("title", "an Entry")
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 assert.same("an Entry", xtemplate.render(atom_tmpl, atom_data));
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 atom_data:tag("author"):text_tag("name","Juliet"):up();
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 assert.same("Juliet posted an Entry", xtemplate.render(atom_tmpl, atom_data));
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 atom_data:text_tag("summary", "Juliet just posted a new entry");
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 assert.same("Juliet just posted a new entry", xtemplate.render(atom_tmpl, atom_data));
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 atom_data.attr["xmlns:pubsub"] = "http://jabber.org/protocol/pubsub";
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 atom_data.attr["pubsub:title"] = "Juliets musings";
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 assert.same("*Juliets musings*\n\nJuliet just posted a new entry", xtemplate.render(atom_tmpl, atom_data));
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 end)
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 it("can strip surrounding whitespace", function ()
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 assert.same("Hello ", xtemplate.render(" {-greeting} ", st.stanza("root"):text_tag("greeting", "Hello")))
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 assert.same(" Hello", xtemplate.render(" {greeting-} ", st.stanza("root"):text_tag("greeting", "Hello")))
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 assert.same("Hello", xtemplate.render(" {-greeting-} ", st.stanza("root"):text_tag("greeting", "Hello")))
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 end)
13404
034c7af177f0 util.xtemplate: Test the each template function
Kim Alvefur <zash@zash.se>
parents: 13395
diff changeset
34 describe("each", function ()
034c7af177f0 util.xtemplate: Test the each template function
Kim Alvefur <zash@zash.se>
parents: 13395
diff changeset
35 it("makes sense", function ()
034c7af177f0 util.xtemplate: Test the each template function
Kim Alvefur <zash@zash.se>
parents: 13395
diff changeset
36 local x = st.stanza("root"):tag("foo"):tag("bar")
034c7af177f0 util.xtemplate: Test the each template function
Kim Alvefur <zash@zash.se>
parents: 13395
diff changeset
37 for i = 1, 5 do x:text_tag("i", tostring(i)); end
034c7af177f0 util.xtemplate: Test the each template function
Kim Alvefur <zash@zash.se>
parents: 13395
diff changeset
38 x:reset();
034c7af177f0 util.xtemplate: Test the each template function
Kim Alvefur <zash@zash.se>
parents: 13395
diff changeset
39 assert.same("12345", xtemplate.render("{foo/bar|each(i){{#}}}", x));
034c7af177f0 util.xtemplate: Test the each template function
Kim Alvefur <zash@zash.se>
parents: 13395
diff changeset
40 end)
034c7af177f0 util.xtemplate: Test the each template function
Kim Alvefur <zash@zash.se>
parents: 13395
diff changeset
41 end)
13395
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 end)
1675d4b6363a util.xtemplate: Add some initial tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43 end)