public void TestExecFor() { Assert.AreEqual("1234", TemplateCodeGen.CompileTemplateCodeByString("{% for Item in List %}{{ Item }}{% endfor %}").RenderToString(new TemplateScope(new Dictionary <String, object>() { { "List", new int[] { 1, 2, 3, 4 } }, }))); }
public void TestExecVariableSimple() { Assert.AreEqual("Hello Test", TemplateCodeGen.CompileTemplateCodeByString("Hello {{ User }}").RenderToString(new TemplateScope(new Dictionary <String, object>() { { "User", "Test" }, }))); }
protected static TemplateCode CompileTemplateCodeByString(String Code) { var TemplateCodeGen = new TemplateCodeGen(Code); TemplateCodeGen.OutputGeneratedCode = true; return(TemplateCodeGen.GetTemplateCode()); }
public void TestExecForInsideFor() { Assert.AreEqual("[1]1234[1][2]2468[2]", TemplateCodeGen.CompileTemplateCodeByString("{% for Item2 in List2 %}[{{ Item2 }}]{% for Item1 in List1 %}{{ Item1 * Item2 }}{% endfor %}[{{ Item2 }}]{% endfor %}{{ Item1 }}{{ Item2 }}").RenderToString(new TemplateScope(new Dictionary <String, object>() { { "List1", new int[] { 1, 2, 3, 4 } }, { "List2", new int[] { 1, 2 } }, }))); }
public void TestExecAccessSimpleIndexer() { Assert.AreEqual("Value", TemplateCodeGen.CompileTemplateCodeByString("{{ Item['Key'] }}").RenderToString(new TemplateScope(new Dictionary <String, dynamic>() { { "Item", new Hashtable() { { "Key", "Value" }, } } }))); }
public void TestExecAccessInexistentSubKey() { Assert.AreEqual("", TemplateCodeGen.CompileTemplateCodeByString("{{ Item.Key.InexistentKey }}").RenderToString(new TemplateScope(new Dictionary <String, dynamic>() { { "Item", new Hashtable() { { "Key", new Hashtable() { { "SubKey", "Value" }, } } } } }))); }
public void TestTrueFalseNoneAreImmutableConstants() { var Scope = new TemplateScope(new Dictionary <String, object>() { { "true", false }, { "false", true }, { "none", 1 }, }); Assert.AreEqual("1", TemplateCodeGen.CompileTemplateCodeByString("{% if true %}1{% else %}0{% endif %}").RenderToString(Scope)); Assert.AreEqual("0", TemplateCodeGen.CompileTemplateCodeByString("{% if false %}1{% else %}0{% endif %}").RenderToString(Scope)); Assert.AreEqual("0", TemplateCodeGen.CompileTemplateCodeByString("{% if none %}1{% else %}0{% endif %}").RenderToString(Scope)); }
public void TestExecForElse() { var Params1 = new TemplateScope(new Dictionary <String, object>() { { "List", new int[] { 1, 2, 3, 4, 5 } } }); var Params2 = new TemplateScope(new Dictionary <String, object>() { { "List", new int[] { } } }); Assert.AreEqual("12345", TemplateCodeGen.CompileTemplateCodeByString("{% for Item in List %}{{ Item }}{% else %}Empty{% endfor %}").RenderToString(Params1)); Assert.AreEqual("Empty", TemplateCodeGen.CompileTemplateCodeByString("{% for Item in List %}{{ Item }}{% else %}Empty{% endfor %}").RenderToString(Params2)); }
public void TestExecForObjects() { Assert.AreEqual("HelloWorld", TemplateCodeGen.CompileTemplateCodeByString("{% for Post in Posts %}{{ Post.Text }}{% endfor %}").RenderToString(new TemplateScope(new Dictionary <String, object>() { { "Posts", new List <Post>() { new Post() { Text = "Hello" }, new Post() { Text = "World" }, } }, }))); }
public void TestExecPow() { Assert.AreEqual("256", TemplateCodeGen.CompileTemplateCodeByString("{{ 2 ** 8 }}").RenderToString()); }
public void TestExecEscapeTwice() { Assert.AreEqual("Hello &lt;World&gt;", TemplateCodeGen.CompileTemplateCodeByString("{{ 'Hello <World>'|e|e }}").RenderToString()); }
public void TestExecAutoescapeOnEscapeShortcut() { Assert.AreEqual("Hello <World>", TemplateCodeGen.CompileTemplateCodeByString("{{ 'Hello <World>'|e }}").RenderToString()); }
public void TestExecAutoescapeOffEscape() { Assert.AreEqual("Hello <World>", TemplateCodeGen.CompileTemplateCodeByString("{% autoescape false %}{{ 'Hello <World>'|escape }}{% endautoescape %}").RenderToString()); }
public void TestExecForRange() { Assert.AreEqual("0123456789", TemplateCodeGen.CompileTemplateCodeByString("{% for Item in 0..9 %}{{ Item }}{% endfor %}").RenderToString()); }
public void TestExecTernaryTrue() { Assert.AreEqual("A", TemplateCodeGen.CompileTemplateCodeByString("{{ 1 ? 'A' : 'B' }}").RenderToString()); }
public void TestExecAccessInexistentKey() { Assert.AreEqual("", TemplateCodeGen.CompileTemplateCodeByString("{{ Item.InexistentKey }}").RenderToString()); }
public void TestExecIfOr() { Assert.AreEqual("A", TemplateCodeGen.CompileTemplateCodeByString("{% if 0 || 2 %}A{% endif %}").RenderToString()); }
public void TestExecUnary() { Assert.AreEqual("-6", TemplateCodeGen.CompileTemplateCodeByString("{{ -(1 + 2) + -3 }}").RenderToString()); }
public void TestExecTernaryFalse() { Assert.AreEqual("B", TemplateCodeGen.CompileTemplateCodeByString("{{ (1 - 1) ? 'A' : 'B' }}").RenderToString()); }
public void TestExecWithOperatorPrecedence() { Assert.AreEqual("Hello 5 World", TemplateCodeGen.CompileTemplateCodeByString("Hello {{ 1 + 2 * 2 }} World").RenderToString()); }
public void TestExecBlock() { Assert.AreEqual("1", TemplateCodeGen.CompileTemplateCodeByString("{% block Body %}1{% endblock %}").RenderToString()); }
public void TestExecFilter() { Assert.AreEqual("Hello World", TemplateCodeGen.CompileTemplateCodeByString("{{ 'Hello {0}'|format('World') }}").RenderToString()); Assert.AreEqual("Hello <World>", TemplateCodeGen.CompileTemplateCodeByString("{{ 'Hello {0}'|format('<World>') }}").RenderToString()); Assert.AreEqual("Hello <World>", TemplateCodeGen.CompileTemplateCodeByString("{{ 'Hello {0}'|format('<World>')|raw }}").RenderToString()); }
public void TestExecIfElseCond1() { Assert.AreEqual("A", TemplateCodeGen.CompileTemplateCodeByString("{% if 1 %}A{% else %}B{% endif %}").RenderToString()); }