From 332528a1aad8774bb20fb47ac2a0958d88e67716 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 21 Feb 2016 19:13:33 +0000 Subject: Add parser for HTML paths --- .../mammoth/tests/styles/HtmlPathParsingTests.java | 57 ++++++++++++++++++++++ .../mammoth/tests/styles/StyleMapParserTests.java | 4 ++ 2 files changed, 61 insertions(+) create mode 100644 src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java create mode 100644 src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java (limited to 'src/test/java') diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java new file mode 100644 index 0000000..6b75f0f --- /dev/null +++ b/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java @@ -0,0 +1,57 @@ +package org.zwobble.mammoth.tests.styles; + +import org.junit.Test; +import org.zwobble.mammoth.styles.HtmlPath; +import org.zwobble.mammoth.styles.HtmlPathElement; +import org.zwobble.mammoth.styles.StyleMapParser; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals; +import static org.zwobble.mammoth.util.MammothLists.list; +import static org.zwobble.mammoth.util.MammothMaps.map; + +public class HtmlPathParsingTests { + @Test + public void canParseEmptyPath() { + assertThat( + StyleMapParser.parseHtmlPath(""), + deepEquals(HtmlPath.EMPTY)); + } + + @Test + public void canReadSingleElement() { + assertThat( + StyleMapParser.parseHtmlPath("p"), + deepEquals(HtmlPath.collapsibleElement("p"))); + } + + // TODO: choice + + @Test + public void canReadNestedElements() { + assertThat( + StyleMapParser.parseHtmlPath("ul > li"), + deepEquals(new HtmlPath(list(HtmlPathElement.collapsible("ul"), HtmlPathElement.collapsible("li"))))); + } + + @Test + public void canReadClassOnElement() { + assertThat( + StyleMapParser.parseHtmlPath("p.tip"), + deepEquals(HtmlPath.collapsibleElement("p", map("class", "tip")))); + } + + @Test + public void canReadMultipleClassesOnElement() { + assertThat( + StyleMapParser.parseHtmlPath("p.tip.help"), + deepEquals(HtmlPath.collapsibleElement("p", map("class", "tip help")))); + } + + @Test + public void canReadWhenElementMustBeFresh() { + assertThat( + StyleMapParser.parseHtmlPath("p:fresh"), + deepEquals(HtmlPath.element("p"))); + } +} diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java new file mode 100644 index 0000000..09f0806 --- /dev/null +++ b/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java @@ -0,0 +1,4 @@ +package org.zwobble.mammoth.tests.styles; + +public class StyleMapParserTests { +} -- cgit v1.2.3