From e359e0788d4d9c675a88daaebda416f38e2ac03a Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Sun, 7 Apr 2019 01:59:33 +0300 Subject: Tags should be unescaped before storing Test tag is Test tag --- .../java/com/juick/server/tests/ServerTests.java | 58 ++++++++++++---------- 1 file changed, 31 insertions(+), 27 deletions(-) (limited to 'src/test') diff --git a/src/test/java/com/juick/server/tests/ServerTests.java b/src/test/java/com/juick/server/tests/ServerTests.java index afe7f659..65e19b89 100644 --- a/src/test/java/com/juick/server/tests/ServerTests.java +++ b/src/test/java/com/juick/server/tests/ServerTests.java @@ -1028,22 +1028,32 @@ public class ServerTests { assertThat(tags.get(0).getName(), equalTo("yo")); } @Test - public void messageParserSerializer() throws ParserConfigurationException, - IOException, SAXException, JAXBException { - Set tags = MessageUtils.parseTags("test test" + (char) 0xA0 + "2 test3"); - List tagList = new ArrayList<>(tags); + public void messageParserSerializer() throws Exception { + String tagsString = "test test" + (char) 0xA0 + "2 test 3"; + Set tags = MessageUtils.parseTags(tagsString); + List tagList = tags.stream().map(t -> tagService.getTag(t.getName(), true)) + .collect(Collectors.toList()); assertEquals("First tag must be", "test", tagList.get(0).getName()); - assertEquals("Third tag must be", "test3", tagList.get(2).getName()); + assertEquals("Third tag must be", "test 3", tagList.get(2).getName()); assertEquals("Count of tags must be", 3, tagList.size()); - Message msg = new Message(); - msg.setTags(tags); - Instant currentDate = Instant.now(); - msg.setCreated(currentDate); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + MultiValueMap map = new LinkedMultiValueMap<>(); + HttpEntity> request = new HttpEntity<>(map, headers); + + map.add("body", "*test *test 2 *test 3 YO"); + map.add("hash", userService.getHashByUID(ugnich.getUid())); + ResponseEntity result = restTemplate.postForEntity( + "/api/post", + request, CommandResult.class); + assertThat(result.getStatusCode(), is(HttpStatus.OK)); + Message msg = result.getBody().getNewMessage().orElseThrow(); + Instant currentDate = msg.getCreated(); String jsonMessage = jsonMapper.writeValueAsString(msg); - assertEquals("date should be in timestamp field", DateFormattersHolder.getMessageFormatterInstance().format(currentDate), + assertEquals("date should be in timestamp field", + DateFormattersHolder.getMessageFormatterInstance().format(currentDate), JsonPath.read(jsonMessage, "$.timestamp")); - JAXBContext context = JAXBContext .newInstance(Message.class); Marshaller m = context.createMarshaller(); @@ -1056,22 +1066,16 @@ public class ServerTests { Document doc = db.parse(new ByteArrayInputStream(sw.toString().getBytes(StandardCharsets.UTF_8))); Node juickNode = doc.getDocumentElement(); NamedNodeMap attrs = juickNode.getAttributes(); - assertEquals("date should be in ts field", DateFormattersHolder.getMessageFormatterInstance().format(currentDate), + assertEquals("date should be in ts field", + DateFormattersHolder.getMessageFormatterInstance().format(currentDate), attrs.getNamedItem("ts").getNodeValue()); - } - @Test - public void restTemplateTests() { - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - MultiValueMap map= new LinkedMultiValueMap<>(); - HttpEntity> request = new HttpEntity<>(map, headers); - map.add("body", "yo"); - map.add("hash", userService.getHashByUID(ugnich.getUid())); - ResponseEntity result = restTemplate.postForEntity( - "/api/post", - request, CommandResult.class); - assertThat(result.getStatusCode(), is(HttpStatus.OK)); + MvcResult apiResult = mockMvc.perform(get("/api/thread?mid=" + msg.getMid())) + .andExpect(status().isOk()) + .andReturn(); + List fromApi = jsonMapper.readValue(apiResult.getResponse().getContentAsString(), + new TypeReference>() {}); + assertThat(fromApi.get(0).getTags(), is(tags)); } @Test public void emptyAuthenticatedPostShouldThrowBadRequest() throws Exception { @@ -1486,9 +1490,9 @@ public class ServerTests { Writer writer = new StringWriter(); template.evaluate(writer, Collections.singletonMap("tagsList", - Collections.singletonList(StringEscapeUtils.escapeHtml4(new Tag(">_<").getName())))); + Collections.singletonList(new Tag(">_<").getName()))); String output = writer.toString().trim(); - assertThat(output, equalTo(">_<")); + assertThat(output, equalTo(">_<")); } public DomElement fetchMeta(String url, String name) throws IOException { -- cgit v1.2.3