@Test public void agregarLinksUsuarioCuandoYaExistiaOtro() { Usuario usuario = new Usuario(); usuario.setId(4L); EnvioNewsletter envio = new EnvioNewsletter(); envio.setId(6L); String documento = "<html><body><div>HOLA</div><div id=\"suscripcion\">" + "Para dejar de recibir newsletters de BMAT, por favor hacer<a href=\"" + BASE_URL + "/newsletter/desuscribir/3\">click aqui</a></div><img id='img_notificacion' src='" + BASE_URL + "/newsletter/notificar/5/3' width='1' height='1' border='0'/>" + "</body></html>"; Document document = Jsoup.parse(documento); servicio.agregarLinksUsuario(document, usuario, envio); StringBuffer esperado = new StringBuffer(); esperado // comienzo documento .append("<html><head></head><body><div>HOLA</div>") // abre link desuscripcion .append( "<div id=\"suscripcion\">Para dejar de recibir newsletters de BMAT, por favor hacer<a href=\"") // se agrego la URL para el usuario .append(BASE_URL + "/newsletter/desuscribir/4") // cierra link desuscripcion .append("\">click aqui</a></div>") // abre link notificacion .append("<img id=\"img_notificacion\" src=\"") // se agrego URL notificacion .append(BASE_URL + "/newsletter/notificar/6/4") // cierra link notificacion .append("\" width=\"1\" height=\"1\" border=\"0\"/>") // cierra documento .append("</body></html>"); String output = document .html() .replaceAll("[\\r\\n]+\\s", "") .replaceAll(">\\s*", ">") .replaceAll("\\s*/>\\s*", "/>") .replaceAll("\\s*<", "<"); assertEquals(esperado.toString(), output); }
@Test public void reemplazarConRutaInvalida() { String html = "<html><body><img id='img' src=\"http://www.marcelomingrone.com.ar/INVALIDO/2014-01-01/imgA.jpg\" " + "width='123' height='321' border='0' /></body></html>"; Document document = Jsoup.parse(html); servicio.reemplazarImagenesContenido(document, imagenes); String urlImagen = document.getElementById("img").attr("src"); assertEquals("http://www.marcelomingrone.com.ar/INVALIDO/2014-01-01/imgA.jpg", urlImagen); assertEquals(0, imagenes.size()); }
@Before public void init() { servicio = new EnvioNewsletterRunnable(); servicio.setNewsletterFolderName(NEWSLETTER_FOLDER_NAME); servicio.setImgPrefix(IMG_PREFIX); servicio.setNewsletterHome(NEWSLETTER_HOME); servicio.setLinkDesuscripcion(LINK_DESUSCRIPCION); servicio.setBaseUrl(BASE_URL); servicio.setLinkNotificacion(LINK_NOTIFICACION); imagenes = new LinkedHashMap<>(); }
@Test public void reemplazarUnaImagenContenido() { String html = "<html><body><img id='img' src=\"http://www.marcelomingrone.com.ar/newsletter/2014-01-01/imgA.jpg\" " + "width='123' height='321' border='0' /></body></html>"; Document document = Jsoup.parse(html); servicio.reemplazarImagenesContenido(document, imagenes); String nuevaUrlImagen = document.getElementById("img").attr("src"); assertEquals("cid:" + IMG_PREFIX + "2014-01-01_imgA.jpg", nuevaUrlImagen); assertEquals(1, imagenes.size()); assertEquals( NEWSLETTER_HOME + "/2014-01-01/imgA.jpg", imagenes.get(IMG_PREFIX + "2014-01-01_imgA.jpg")); }