summaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-23 20:48:50 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-23 20:48:50 +0000
commitce3d0cb6b5349787d26f4a2d7201b3d04b8e5085 (patch)
treeef055c3449b4b8511dbc474b45241fd19b3927e1 /src/test/java
parent14a07f679a1ad1726445f363fee484e3b2d52884 (diff)
Add parsing for paragraph matchers
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/styles/DocumentMatcherParsingTests.java53
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java7
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java20
3 files changed, 78 insertions, 2 deletions
diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/DocumentMatcherParsingTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/DocumentMatcherParsingTests.java
new file mode 100644
index 0000000..dc87945
--- /dev/null
+++ b/src/test/java/org/zwobble/mammoth/tests/styles/DocumentMatcherParsingTests.java
@@ -0,0 +1,53 @@
+package org.zwobble.mammoth.tests.styles;
+
+import org.junit.Test;
+import org.parboiled.support.Var;
+import org.zwobble.mammoth.styles.ParagraphMatcher;
+import org.zwobble.mammoth.styles.parsing.Parsing;
+import org.zwobble.mammoth.styles.parsing.StyleMappingParser;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals;
+
+public class DocumentMatcherParsingTests {
+ @Test
+ public void canReadPlainParagraph() {
+ assertThat(
+ parseParagraphMatcher("p"),
+ deepEquals(ParagraphMatcher.ANY));
+ }
+
+ @Test
+ public void readsParagraphWithStyleId() {
+ assertThat(
+ parseParagraphMatcher("p.Heading1"),
+ deepEquals(ParagraphMatcher.styleId("Heading1")));
+ }
+
+ @Test
+ public void readsParagraphWithStyleName() {
+ assertThat(
+ parseParagraphMatcher("p[style-name='Heading 1']"),
+ deepEquals(ParagraphMatcher.styleName("Heading 1")));
+ }
+
+ @Test
+ public void readsParagraphOrderedList() {
+ assertThat(
+ parseParagraphMatcher("p:ordered-list(2)"),
+ deepEquals(ParagraphMatcher.orderedList("1")));
+ }
+
+ @Test
+ public void readsParagraphUnorderedList() {
+ assertThat(
+ parseParagraphMatcher("p:unordered-list(2)"),
+ deepEquals(ParagraphMatcher.unorderedList("1")));
+ }
+
+ private ParagraphMatcher parseParagraphMatcher(String input) {
+ Var<ParagraphMatcher> matcher = new Var<>();
+ Parsing.parse(StyleMappingParser.class, parser -> parser.ParagraphMatcher(matcher), input);
+ return matcher.get();
+ }
+}
diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java
index c6d0cb1..04317b6 100644
--- a/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/styles/HtmlPathParsingTests.java
@@ -1,10 +1,11 @@
package org.zwobble.mammoth.tests.styles;
import org.junit.Test;
+import org.parboiled.support.Var;
import org.zwobble.mammoth.styles.HtmlPath;
import org.zwobble.mammoth.styles.HtmlPathElement;
-import org.zwobble.mammoth.styles.parsing.HtmlPathParser;
import org.zwobble.mammoth.styles.parsing.Parsing;
+import org.zwobble.mammoth.styles.parsing.StyleMappingParser;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals;
@@ -66,6 +67,8 @@ public class HtmlPathParsingTests {
}
private HtmlPath parseHtmlPath(String input) {
- return Parsing.parse(HtmlPathParser.class, HtmlPathParser::HtmlPath, input);
+ Var<HtmlPath> path = new Var<>();
+ Parsing.parse(StyleMappingParser.class, parser -> parser.HtmlPath(path), input);
+ return path.get();
}
}
diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java
index 09f0806..ae2ef2b 100644
--- a/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java
@@ -1,4 +1,24 @@
package org.zwobble.mammoth.tests.styles;
+import org.junit.Test;
+import org.zwobble.mammoth.styles.HtmlPath;
+import org.zwobble.mammoth.styles.ParagraphMatcher;
+import org.zwobble.mammoth.styles.StyleMap;
+import org.zwobble.mammoth.styles.parsing.StyleMapParser;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals;
+
public class StyleMapParserTests {
+ @Test
+ public void emptyStringIsParsedAsEmptyStyleMap() {
+ StyleMap styleMap = StyleMapParser.parse("");
+ assertThat(styleMap, deepEquals(StyleMap.builder().build()));
+ }
+
+ @Test
+ public void canMapParagraphs() {
+ StyleMap styleMap = StyleMapParser.parse("p => p");
+ assertThat(styleMap, deepEquals(StyleMap.builder().mapParagraph(ParagraphMatcher.ANY, HtmlPath.EMPTY).build()));
+ }
}