aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org')
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMappingTokeniserTests.java32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMappingTokeniserTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMappingTokeniserTests.java
index f70fd77..18f9397 100644
--- a/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMappingTokeniserTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMappingTokeniserTests.java
@@ -47,16 +47,36 @@ public class StyleMappingTokeniserTests {
}
@Test
- public void escapeSequencesInStringsAreTokenised() {
+ public void escapedStringTerminatorsInStringsAreTokenised() {
assertTokens("'Tristan\\''", isToken(TokenType.STRING, "'Tristan\\''"));
}
@Test
+ public void escapeSequencesInStringsAreTokenised() {
+ assertTokens("'Tristan\\\\'", isToken(TokenType.STRING, "'Tristan\\\\'"));
+ }
+
+ @Test
public void unterminatedStringsAreTokenised() {
assertTokens("'Tristan", isToken(TokenType.UNTERMINATED_STRING, "'Tristan"));
}
@Test
+ public void unterminatedStringsEndingWithEscapedStringTerminatorAreTokenised() {
+ assertTokens("'Tristan\\'", isToken(TokenType.UNTERMINATED_STRING, "'Tristan\\'"));
+ }
+
+ @Test
+ public void unterminatedStringsWithUnterminatedEscapeAreTokenised() {
+ assertTokens("'Tristan\\", isToken(TokenType.UNTERMINATED_STRING, "'Tristan\\"));
+ }
+
+ @Test
+ public void unterminatedStringsWithManyEscapeSequencesAreTokenised() {
+ assertTokens("'" + repeatString("\\a", 50), isToken(TokenType.UNTERMINATED_STRING, "'" + repeatString("\\a", 50)));
+ }
+
+ @Test
public void arrowsAreTokenised() {
assertTokens("=>=>", isToken(TokenType.SYMBOL, "=>"), isToken(TokenType.SYMBOL, "=>"));
}
@@ -138,4 +158,14 @@ public class StyleMappingTokeniserTests {
hasProperty("value", equalTo(value))
);
}
+
+ private String repeatString(String value, int repeats) {
+ StringBuilder builder = new StringBuilder();
+
+ for (int i = 0; i < repeats; i++) {
+ builder.append(value);
+ }
+
+ return builder.toString();
+ }
}