diff options
Diffstat (limited to 'src/test/java/org/zwobble')
| -rw-r--r-- | src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMappingTokeniserTests.java | 32 |
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(); + } } |
