package com.fasterxml.jackson.databind.util; import java.io.IOException; import com.fasterxml.jackson.databind.BaseMapTest; import com.fasterxml.jackson.databind.ObjectMapper; public class JSONPObjectTest extends BaseMapTest { private final String CALLBACK = "callback"; private final ObjectMapper MAPPER = new ObjectMapper(); /** * Unit tests for checking that JSONP breaking characters U+2028 and U+2029 are escaped when creating a {@link JSONPObject}. */ public void testU2028Escaped() throws IOException { String containsU2028 = String.format("This string contains %c char", '\u2028'); JSONPObject jsonpObject = new JSONPObject(CALLBACK, containsU2028); String valueAsString = MAPPER.writeValueAsString(jsonpObject); assertFalse(valueAsString.contains("\u2028")); } public void testU2029Escaped() throws IOException { String containsU2029 = String.format("This string contains %c char", '\u2029'); JSONPObject jsonpObject = new JSONPObject(CALLBACK, containsU2029); String valueAsString = MAPPER.writeValueAsString(jsonpObject); assertFalse(valueAsString.contains("\u2029")); } public void testU2030NotEscaped() throws IOException { String containsU2030 = String.format("This string contains %c char", '\u2030'); JSONPObject jsonpObject = new JSONPObject(CALLBACK, containsU2030); String valueAsString = MAPPER.writeValueAsString(jsonpObject); assertTrue(valueAsString.contains("\u2030")); } }