Skip to content

Commit 03d0a36

Browse files
committed
Additional malformed unicode tests
1 parent 943ae33 commit 03d0a36

1 file changed

Lines changed: 18 additions & 6 deletions

File tree

extensions/src/test/java/dev/cel/extensions/CelStringExtensionsTest.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1540,16 +1540,28 @@ public void quote_escapesSpecialCharacters() throws Exception {
15401540
}
15411541

15421542
@Test
1543-
public void quote_escapesMalformed() throws Exception {
1543+
@TestParameters({"{rawString: !!binary 'ZmlsbGVyIJ8=', expectedResult: '\"filler \uFFFD\"'}"}) // "filler \x9f"
1544+
public void quote_escapesMalformed(byte[] rawString, String expectedResult) throws Exception {
15441545
CelAbstractSyntaxTree ast = COMPILER.compile("strings.quote(s)").getAst();
15451546
CelRuntime.Program program = RUNTIME.createProgram(ast);
15461547

1547-
Object evaluatedResult =
1548-
program.eval(
1549-
ImmutableMap.of(
1550-
"s", new String(new byte[]{'f','i','l','l','e','r',' ',(byte)0x9f}, StandardCharsets.UTF_8)));
1548+
Object evaluatedResult = program.eval(ImmutableMap.of("s", new String(rawString, StandardCharsets.UTF_8)));
1549+
1550+
assertThat(evaluatedResult).isEqualTo(expectedResult);
1551+
}
15511552

1552-
assertThat(evaluatedResult).isEqualTo("\"filler \uFFFD\"");
1553+
@Test
1554+
public void quote_escapesMalformed_endWithHighSurrogate() throws Exception {
1555+
CelRuntime.Program program = RUNTIME.createProgram(COMPILER.compile("strings.quote(s)").getAst());
1556+
assertThat(program.eval(ImmutableMap.of("s", "end with high surrogate \uD83D")))
1557+
.isEqualTo("\"end with high surrogate \uFFFD\"");
1558+
}
1559+
1560+
@Test
1561+
public void quote_escapesMalformed_unpairedHighSurrogate() throws Exception {
1562+
CelRuntime.Program program = RUNTIME.createProgram(COMPILER.compile("strings.quote(s)").getAst());
1563+
assertThat(program.eval(ImmutableMap.of("s", "bad pair \uD83DA")))
1564+
.isEqualTo("\"bad pair \uFFFDA\"");
15531565
}
15541566

15551567
@Test

0 commit comments

Comments
 (0)