From 94939ac6cd45d923dfb84dabf74d3c6aade648d1 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 15 Mar 2023 21:13:15 -0700 Subject: [PATCH] Finished tests --- lib/src/test/java/rife/render/TestCase.java | 40 +++++++++++++-- .../test/java/rife/render/TestDateTime.java | 2 +- lib/src/test/java/rife/render/TestEncode.java | 51 +++++++++++++++---- lib/src/test/resources/templates/dateIso.html | 2 +- .../test/resources/templates/dateTimeIso.html | 2 +- .../resources/templates/dateTimeRfc2822.html | 2 +- .../test/resources/templates/dateTimeUtc.html | 2 +- .../{base64.txt => encodeBase64.txt} | 0 .../templates/encodeHtmlEntities.html | 1 + .../test/resources/templates/encodeJson.json | 3 ++ lib/src/test/resources/templates/encodeQp.txt | 1 + .../resources/templates/encodeUnicode.txt | 1 + .../test/resources/templates/encodeXml.xml | 3 ++ lib/src/test/resources/templates/swapCase.txt | 1 + lib/src/test/resources/templates/timeIso.html | 2 +- lib/src/test/resources/templates/trim.txt | 1 + .../test/resources/templates/uncapitalize.txt | 1 + .../test/resources/templates/uppercase.txt | 1 + lib/src/test/resources/templates/year.html | 3 +- 19 files changed, 98 insertions(+), 21 deletions(-) rename lib/src/test/resources/templates/{base64.txt => encodeBase64.txt} (100%) create mode 100644 lib/src/test/resources/templates/encodeHtmlEntities.html create mode 100644 lib/src/test/resources/templates/encodeJson.json create mode 100644 lib/src/test/resources/templates/encodeQp.txt create mode 100644 lib/src/test/resources/templates/encodeUnicode.txt create mode 100644 lib/src/test/resources/templates/encodeXml.xml create mode 100644 lib/src/test/resources/templates/swapCase.txt create mode 100644 lib/src/test/resources/templates/trim.txt create mode 100644 lib/src/test/resources/templates/uncapitalize.txt create mode 100644 lib/src/test/resources/templates/uppercase.txt diff --git a/lib/src/test/java/rife/render/TestCase.java b/lib/src/test/java/rife/render/TestCase.java index 07fc9f1..cebd066 100644 --- a/lib/src/test/java/rife/render/TestCase.java +++ b/lib/src/test/java/rife/render/TestCase.java @@ -19,22 +19,54 @@ package rife.render; import org.junit.jupiter.api.Test; import rife.template.TemplateFactory; +import rife.tools.Localization; import static org.assertj.core.api.Assertions.assertThat; class TestCase { + static final String FOO = "foo"; + static final String SAMPLE_TEXT = "This is a test."; + @Test void testCapitalize() { var t = TemplateFactory.TXT.get("capitalize"); - t.setAttribute("foo", "this is a test"); - assertThat(t.getContent()).isEqualTo("This is a test"); + t.setAttribute(FOO, SAMPLE_TEXT.toLowerCase(Localization.getLocale())); + assertThat(t.getContent()).isEqualTo(SAMPLE_TEXT); } @Test void testLowercase() { var t = TemplateFactory.TXT.get("lowercase"); - var bean = new ValueBean("this IS a TEST"); + var bean = new ValueBean("this IS a TEST."); t.setBean(bean); - assertThat(t.getContent()).isEqualTo(bean.getValue() + ": this is a test"); + assertThat(t.getContent()).isEqualTo(bean.getValue() + ": this is a test."); + } + + @Test + void testSwapCase() { + var t = TemplateFactory.TXT.get("swapCase"); + t.setAttribute(FOO, "tHiS iS a TeSt"); + assertThat(t.getContent()).isEqualTo("ThIs Is A tEsT"); + } + + @Test + void testTrim() { + var t = TemplateFactory.TXT.get("trim"); + t.setAttribute(FOO, "\t" + SAMPLE_TEXT + " \n"); + assertThat(t.getContent()).isEqualTo(SAMPLE_TEXT); + } + + @Test + void testUncapitalize() { + var t = TemplateFactory.TXT.get("uncapitalize"); + t.setAttribute(FOO, SAMPLE_TEXT); + assertThat(t.getContent()).isEqualTo(SAMPLE_TEXT.toLowerCase(Localization.getLocale())); + } + + @Test + void testUppercase() { + var t = TemplateFactory.TXT.get("uppercase"); + t.setAttribute("bar", SAMPLE_TEXT); + assertThat(t.getContent()).isEqualTo(SAMPLE_TEXT.toUpperCase(Localization.getLocale())); } } \ No newline at end of file diff --git a/lib/src/test/java/rife/render/TestDateTime.java b/lib/src/test/java/rife/render/TestDateTime.java index 7e70cc0..36ef326 100644 --- a/lib/src/test/java/rife/render/TestDateTime.java +++ b/lib/src/test/java/rife/render/TestDateTime.java @@ -58,6 +58,6 @@ class TestDateTime { void testYear() { var t = TemplateFactory.HTML.get("year"); var year = java.time.Year.now().toString(); - assertThat(t.getContent()).isEqualTo(year + "
\n" + year); + assertThat(t.getContent()).isEqualTo(year + "
" + year); } } diff --git a/lib/src/test/java/rife/render/TestEncode.java b/lib/src/test/java/rife/render/TestEncode.java index 6234532..8d35e09 100644 --- a/lib/src/test/java/rife/render/TestEncode.java +++ b/lib/src/test/java/rife/render/TestEncode.java @@ -23,27 +23,46 @@ import rife.template.TemplateFactory; import static org.assertj.core.api.Assertions.assertThat; class TestEncode { - public static final String FOO = "foo"; - @Test void testEncodeBase64() { - var t = TemplateFactory.TXT.get("base64"); - t.setValue(FOO, "This is a test"); - assertThat(t.getContent()).isEqualTo(t.getValue(FOO) + ": VGhpcyBpcyBhIHRlc3Q="); + var t = TemplateFactory.TXT.get("encodeBase64"); + t.setValue(TestCase.FOO, TestCase.SAMPLE_TEXT); + assertThat(t.getContent()).isEqualTo(t.getValue(TestCase.FOO) + ": VGhpcyBpcyBhIHRlc3Qu"); } @Test void testEncodeHtml() { var t = TemplateFactory.HTML.get("encodeHtml"); - t.setAttribute(FOO, ""); + t.setAttribute(TestCase.FOO, ""); assertThat(t.getContent()).isEqualTo("<a test &>"); } + @Test + void testEncodeHtmlEntities() { + var t = TemplateFactory.HTML.get("encodeHtmlEntities"); + t.setAttribute(TestCase.FOO, "john@doe.com"); + assertThat(t.getContent()).isEqualTo("Email"); + } + + @Test + void testEncodeJson() { + var t = TemplateFactory.JSON.get("encodeJson"); + t.setAttribute(TestCase.FOO, "fde\fde\rjk\tos\\u218Foi"); + assertThat(t.getContent()).isEqualTo("{\n \"foo\": \"fde\\fde\\rjk\\tos\\\\u218Foi\"\n}"); + } + + @Test + void testEncodeQp() { + var t = TemplateFactory.TXT.get("encodeQp"); + t.setAttribute(TestCase.FOO, TestCase.SAMPLE_TEXT + "\nAnd one more test for =A0."); + assertThat(t.getContent()).isEqualTo("This=20is=20a=20test=2E=0AAnd=20one=20more=20test=20for=20=3DA0=2E"); + } + @Test void testEncodeRot13() { var t = TemplateFactory.TXT.get("rot13"); - var value = "This is a test"; - var rot13 = "Guvf vf n grfg"; + var value = TestCase.SAMPLE_TEXT; + var rot13 = "Guvf vf n grfg."; // Encode var bean = new ValueBean(value); @@ -55,10 +74,24 @@ class TestEncode { assertThat(t.getContent()).isEqualTo(rot13 + ": " + value); } + @Test + void testEncodeUnicode() { + var t = TemplateFactory.TXT.get("encodeUnicode"); + t.setAttribute(TestCase.FOO, TestCase.SAMPLE_TEXT); + assertThat(t.getContent()).isEqualTo("\\u0054\\u0068\\u0069\\u0073\\u0020\\u0069\\u0073\\u0020\\u0061\\u0020\\u0074\\u0065\\u0073\\u0074\\u002E"); + } + @Test void testEncodeUrl() { var t = TemplateFactory.HTML.get("encodeUrl"); - t.setAttribute(FOO, "a test &"); + t.setAttribute(TestCase.FOO, "a test &"); assertThat(t.getContent()).isEqualTo("a test &"); } + + @Test + void testEncodeXml() { + var t = TemplateFactory.XML.get("encodeXml"); + t.setAttribute(TestCase.FOO, "a test &"); + assertThat(t.getContent()).isEqualTo("\n a test &\n"); + } } \ No newline at end of file diff --git a/lib/src/test/resources/templates/dateIso.html b/lib/src/test/resources/templates/dateIso.html index 754a329..600bfa0 100644 --- a/lib/src/test/resources/templates/dateIso.html +++ b/lib/src/test/resources/templates/dateIso.html @@ -1 +1 @@ -{{v render:rife.render.DateIso/}} \ No newline at end of file + \ No newline at end of file diff --git a/lib/src/test/resources/templates/dateTimeIso.html b/lib/src/test/resources/templates/dateTimeIso.html index b4f05a1..6d14708 100644 --- a/lib/src/test/resources/templates/dateTimeIso.html +++ b/lib/src/test/resources/templates/dateTimeIso.html @@ -1 +1 @@ -{{v render:rife.render.DateTimeIso/}} \ No newline at end of file + \ No newline at end of file diff --git a/lib/src/test/resources/templates/dateTimeRfc2822.html b/lib/src/test/resources/templates/dateTimeRfc2822.html index c2ec0de..3af7597 100644 --- a/lib/src/test/resources/templates/dateTimeRfc2822.html +++ b/lib/src/test/resources/templates/dateTimeRfc2822.html @@ -1 +1 @@ -{{v render:rife.render.DateTimeRfc2822/}} \ No newline at end of file + \ No newline at end of file diff --git a/lib/src/test/resources/templates/dateTimeUtc.html b/lib/src/test/resources/templates/dateTimeUtc.html index 450d166..fa7ce31 100644 --- a/lib/src/test/resources/templates/dateTimeUtc.html +++ b/lib/src/test/resources/templates/dateTimeUtc.html @@ -1 +1 @@ -{{v render:rife.render.DateTimeUtc/}} \ No newline at end of file + \ No newline at end of file diff --git a/lib/src/test/resources/templates/base64.txt b/lib/src/test/resources/templates/encodeBase64.txt similarity index 100% rename from lib/src/test/resources/templates/base64.txt rename to lib/src/test/resources/templates/encodeBase64.txt diff --git a/lib/src/test/resources/templates/encodeHtmlEntities.html b/lib/src/test/resources/templates/encodeHtmlEntities.html new file mode 100644 index 0000000..8c53b2f --- /dev/null +++ b/lib/src/test/resources/templates/encodeHtmlEntities.html @@ -0,0 +1 @@ +Email \ No newline at end of file diff --git a/lib/src/test/resources/templates/encodeJson.json b/lib/src/test/resources/templates/encodeJson.json new file mode 100644 index 0000000..ac55bf1 --- /dev/null +++ b/lib/src/test/resources/templates/encodeJson.json @@ -0,0 +1,3 @@ +{ + "foo": "{{v render:rife.render.EncodeJson:foo/}}" +} \ No newline at end of file diff --git a/lib/src/test/resources/templates/encodeQp.txt b/lib/src/test/resources/templates/encodeQp.txt new file mode 100644 index 0000000..b3350d2 --- /dev/null +++ b/lib/src/test/resources/templates/encodeQp.txt @@ -0,0 +1 @@ +{{v render:rife.render.EncodeQp:foo/}} \ No newline at end of file diff --git a/lib/src/test/resources/templates/encodeUnicode.txt b/lib/src/test/resources/templates/encodeUnicode.txt new file mode 100644 index 0000000..53912be --- /dev/null +++ b/lib/src/test/resources/templates/encodeUnicode.txt @@ -0,0 +1 @@ +{{v render:rife.render.EncodeUnicode:foo/}} \ No newline at end of file diff --git a/lib/src/test/resources/templates/encodeXml.xml b/lib/src/test/resources/templates/encodeXml.xml new file mode 100644 index 0000000..03f866a --- /dev/null +++ b/lib/src/test/resources/templates/encodeXml.xml @@ -0,0 +1,3 @@ + + {{v render:rife.render.EncodeXml:foo/}} + \ No newline at end of file diff --git a/lib/src/test/resources/templates/swapCase.txt b/lib/src/test/resources/templates/swapCase.txt new file mode 100644 index 0000000..55473bf --- /dev/null +++ b/lib/src/test/resources/templates/swapCase.txt @@ -0,0 +1 @@ +{{v render:rife.render.SwapCase:foo/}} \ No newline at end of file diff --git a/lib/src/test/resources/templates/timeIso.html b/lib/src/test/resources/templates/timeIso.html index 08c13b5..cd991fa 100644 --- a/lib/src/test/resources/templates/timeIso.html +++ b/lib/src/test/resources/templates/timeIso.html @@ -1 +1 @@ -{{v render:rife.render.TimeIso/}} \ No newline at end of file + \ No newline at end of file diff --git a/lib/src/test/resources/templates/trim.txt b/lib/src/test/resources/templates/trim.txt new file mode 100644 index 0000000..2e27e11 --- /dev/null +++ b/lib/src/test/resources/templates/trim.txt @@ -0,0 +1 @@ +{{v render:rife.render.Trim:foo/}} \ No newline at end of file diff --git a/lib/src/test/resources/templates/uncapitalize.txt b/lib/src/test/resources/templates/uncapitalize.txt new file mode 100644 index 0000000..b8298a5 --- /dev/null +++ b/lib/src/test/resources/templates/uncapitalize.txt @@ -0,0 +1 @@ +{{v render:rife.render.Uncapitalize:foo/}} \ No newline at end of file diff --git a/lib/src/test/resources/templates/uppercase.txt b/lib/src/test/resources/templates/uppercase.txt new file mode 100644 index 0000000..b28878b --- /dev/null +++ b/lib/src/test/resources/templates/uppercase.txt @@ -0,0 +1 @@ +{{v render:rife.render.Uppercase:bar/}} \ No newline at end of file diff --git a/lib/src/test/resources/templates/year.html b/lib/src/test/resources/templates/year.html index 15637e5..deb9c19 100644 --- a/lib/src/test/resources/templates/year.html +++ b/lib/src/test/resources/templates/year.html @@ -1,2 +1 @@ -
-{{v render:rife.render.Year/}} \ No newline at end of file +
{{v render:rife.render.Year/}} \ No newline at end of file