package org.jtwig.integration.node; import org.jtwig.JtwigModel; import org.jtwig.JtwigTemplate; import org.jtwig.integration.AbstractIntegrationTest; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; public class AutoEscapeTest extends AbstractIntegrationTest { @Test public void simpleAutoEscape() throws Exception { JtwigTemplate template = JtwigTemplate.inlineTemplate("{% autoescape %}{{ '&' }}{% endautoescape %}"); String result = template.render(JtwigModel.newModel()); assertThat(result, is("&")); } @Test public void simpleAutoEscapeWithInnerRaw() throws Exception { JtwigTemplate template = JtwigTemplate.inlineTemplate("{% autoescape %}{{ '&' | raw }}{% endautoescape %}"); String result = template.render(JtwigModel.newModel()); assertThat(result, is("&")); } @Test public void nestedAutoEscape() throws Exception { JtwigTemplate template = JtwigTemplate.inlineTemplate("{% autoescape 'js' %}{{ '&' }}{% autoescape %}{{ '&' }}{% endautoescape %}{{ '&' }}{% endautoescape %}"); String result = template.render(JtwigModel.newModel()); assertThat(result, is("&&&")); } @Test public void nestedAutoEscapeFalse() throws Exception { JtwigTemplate template = JtwigTemplate.inlineTemplate("{% autoescape 'js' %}{{ '&' }}{% autoescape false %}{{ '&' }}{% endautoescape %}{{ '&' }}{% endautoescape %}"); String result = template.render(JtwigModel.newModel()); assertThat(result, is("&&&")); } }