From 0caf1994dae8e88f7c219bedd87b65190b88aa89 Mon Sep 17 00:00:00 2001 From: j-james Date: Sun, 16 Oct 2022 23:58:44 -0700 Subject: Implement LL(1) parsers for HTML and CSS --- src/test/model/CssParserTest.java | 15 +++++++++++++++ src/test/model/HtmlParserTest.java | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/test/model/CssParserTest.java create mode 100644 src/test/model/HtmlParserTest.java (limited to 'src/test') diff --git a/src/test/model/CssParserTest.java b/src/test/model/CssParserTest.java new file mode 100644 index 0000000..2852da5 --- /dev/null +++ b/src/test/model/CssParserTest.java @@ -0,0 +1,15 @@ +package model; + +import model.css.CssParser; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class CssParserTest { + + @Test + void testIdiomaticCss() { + var idiomaticCss = "body { background-color: #f0f0f2; margin: 0; padding: 0; font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;}div { width: 600px; margin: 5em auto; padding: 2em; background-color: #fdfdff; border-radius: 0.5em; box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);}a:link, a:visited { color: #38488f; text-decoration: none;}@media (max - width : 700px) { div { margin: 0 auto; width: auto; }}"; + System.out.println(CssParser.parseLL(idiomaticCss)); + } +} diff --git a/src/test/model/HtmlParserTest.java b/src/test/model/HtmlParserTest.java new file mode 100644 index 0000000..e83c857 --- /dev/null +++ b/src/test/model/HtmlParserTest.java @@ -0,0 +1,34 @@ +package model; + +import model.html.HtmlParser; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; + +import static org.junit.jupiter.api.Assertions.*; + +public class HtmlParserTest { + + String idiomaticHtml = "
Hello,world!
"; + String brokenHtml = "","Hello,world!","
","",""}; + System.out.println(HtmlParser.parseHtmlLL(idiomaticHtml)); +// assertEquals(HtmlParser.parseHtmlLL(idiomaticHtml), Arrays.asList(idiomaticHtmlArray)); + } + + @Test + void testBrokenHtml() { + String[] brokenHtmlArray = {"","