branch develop updated (413e8c9e -> 823168c2)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git from 413e8c9e fixes #10045 - Erreur (no Session) lors d'un clic-droit sur éléments que l'on vient de traiter new a2fb0bdc Create a real pixel perfect test for #10004 new dbe749c7 Optimise imports new 06ac7897 Add logs tracking message sending time new 823168c2 Nettoyage code et ajout commentaire The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 823168c22537e537b991f8735affe7fb8396a033 Author: jcouteau <couteau@codelutin.com> Date: Fri Aug 17 17:08:05 2018 +0200 Nettoyage code et ajout commentaire commit 06ac789760d78bb163677e76e8b21f0dd5636824 Author: jcouteau <couteau@codelutin.com> Date: Fri Aug 10 16:55:05 2018 +0200 Add logs tracking message sending time commit dbe749c797dfef451f8cf62bd27e0291a172b24b Author: jcouteau <couteau@codelutin.com> Date: Wed Aug 8 11:45:47 2018 +0200 Optimise imports commit a2fb0bdc0274d7b34dc4f0b15458a596b902b78f Author: jcouteau <couteau@codelutin.com> Date: Wed Aug 8 11:42:58 2018 +0200 Create a real pixel perfect test for #10004 Summary of changes: .../services/service/EmailServiceImpl.java | 19 ++++- .../services/service/EmailServiceTest.java | 95 ++++++++++++++++++--- .../src/test/resources/pdf/10004-page1.png | Bin 0 -> 72751 bytes 3 files changed, 102 insertions(+), 12 deletions(-) create mode 100644 faxtomail-service/src/test/resources/pdf/10004-page1.png -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit a2fb0bdc0274d7b34dc4f0b15458a596b902b78f Author: jcouteau <couteau@codelutin.com> Date: Wed Aug 8 11:42:58 2018 +0200 Create a real pixel perfect test for #10004 --- .../services/service/EmailServiceTest.java | 95 ++++++++++++++++++--- .../src/test/resources/pdf/10004-page1.png | Bin 0 -> 72751 bytes 2 files changed, 85 insertions(+), 10 deletions(-) diff --git a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java index 595b8dbd..9570a9df 100644 --- a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java +++ b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java @@ -57,7 +57,9 @@ import org.nuiton.util.pagination.PaginationResult; import javax.imageio.ImageIO; import javax.mail.Session; import javax.mail.internet.MimeMessage; +import java.awt.*; import java.awt.image.BufferedImage; +import java.awt.image.DataBuffer; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; @@ -408,27 +410,72 @@ public class EmailServiceTest extends AbstractFaxToMailServiceTest { */ public void test10004jbig2dependency() throws IOException { File pdf = new File("src/test/resources/pdf/10004.pdf"); + File image = new File("src/test/resources/pdf/10004-page1.png"); + //Pre-generate PDF rendering PDDocument pdDocument = PDDocument.load(pdf); PDFRenderer renderer = new PDFRenderer(pdDocument); + BufferedImage pageImage = renderer.renderImage(0, 1.5f); - for (int i = 0; i < pdDocument.getNumberOfPages(); i++) { - BufferedImage pageImage = renderer.renderImage(i, 1.5f); + //Get properly generated image + BufferedImage in = ImageIO.read(image); - File tempFile = File.createTempFile("10004-"+i, ".png"); - tempFile.createNewFile(); + Assert.assertTrue(compareImagePixels(in, pageImage)); + } + private final int ALPHA = 24; + private final int RED = 16; + private final int GREEN = 8; + private final int BLUE = 0; + + protected int[] getRGBA(BufferedImage img, int x, int y) + { + int[] color = new int[4]; + color[0]=getColor(img, x,y,RED); + color[1]=getColor(img, x,y,GREEN); + color[2]=getColor(img, x,y,BLUE); + color[3]=getColor(img, x,y,ALPHA); + return color; + } - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - ImageIO.write( pageImage, "png", baos ); - baos.flush(); - byte[] imageInByte = baos.toByteArray(); - baos.close(); + protected static int getColor(BufferedImage img, int x, int y, int color) + { + int value=img.getRGB(x, y) >> color & 0xff; + return value; + } - Files.write(imageInByte, tempFile); + protected boolean compareImagePixels(BufferedImage biA, BufferedImage biB) { + try { + if (biA.getHeight() != biB.getHeight()){ + return false; + } + + if (biA.getWidth() != biB.getWidth()){ + return false; + } + + //loop on pixels to get their values + for (int i=0;i<biA.getWidth();i++) { + for (int j=0;j<biA.getHeight();j++){ + int[] colorA = getRGBA(biA,i,j); + int[] colorB = getRGBA(biB,i,j); + + for (int k=0; k<4; k++) { + if (colorA[k] != colorB[k]){ + log.debug("Difference at pixel " + i+ ","+j+" channel " + k); + return false; + } + } + } + } + return true; + } catch (Exception e) { + log.debug("Failed to compare image files ..."); + return false; } } + // @Test // public void testSendPdfBlanc() { // testSendEmail(""); @@ -460,4 +507,32 @@ public class EmailServiceTest extends AbstractFaxToMailServiceTest { // e.printStackTrace(); // } // } + + /** + * Helper method to generate image for each page of a pdf file + * + * @throws IOException + */ + public void generateImageForEachPage() throws IOException { + File pdf = new File("src/test/resources/pdf/10004.pdf"); + + //Pre-generate PDF rendering + PDDocument pdDocument = PDDocument.load(pdf); + PDFRenderer renderer = new PDFRenderer(pdDocument); + + for (int i = 0; i < pdDocument.getNumberOfPages(); i++) { + BufferedImage pageImage = renderer.renderImage(0, 1.5f); + File tempFile = File.createTempFile("10004-"+0, ".png"); + tempFile.createNewFile(); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ImageIO.write( pageImage, "png", baos ); + baos.flush(); + byte[] imageInByte = baos.toByteArray(); + baos.close(); + + Files.write(imageInByte, tempFile); + } + + } } diff --git a/faxtomail-service/src/test/resources/pdf/10004-page1.png b/faxtomail-service/src/test/resources/pdf/10004-page1.png new file mode 100644 index 00000000..ace15205 Binary files /dev/null and b/faxtomail-service/src/test/resources/pdf/10004-page1.png differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit dbe749c797dfef451f8cf62bd27e0291a172b24b Author: jcouteau <couteau@codelutin.com> Date: Wed Aug 8 11:45:47 2018 +0200 Optimise imports --- .../com/franciaflex/faxtomail/services/service/EmailServiceTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java index 9570a9df..9c764a78 100644 --- a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java +++ b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java @@ -57,15 +57,12 @@ import org.nuiton.util.pagination.PaginationResult; import javax.imageio.ImageIO; import javax.mail.Session; import javax.mail.internet.MimeMessage; -import java.awt.*; import java.awt.image.BufferedImage; -import java.awt.image.DataBuffer; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; -import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 06ac789760d78bb163677e76e8b21f0dd5636824 Author: jcouteau <couteau@codelutin.com> Date: Fri Aug 10 16:55:05 2018 +0200 Add logs tracking message sending time --- .../faxtomail/services/service/EmailServiceImpl.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index 875017c4..da147da2 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -1155,6 +1155,8 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe String content, Collection<AttachmentFile> attachments, String originalEmailId, FaxToMailUser user) throws EmailException, MessagingException, IOException { + Date begin = new Date(); + Email email = getEmailById(originalEmailId, Email.PROPERTY_HISTORY + "." + History.PROPERTY_FAX_TO_MAIL_USER, Email.PROPERTY_REPLIES); @@ -1200,8 +1202,12 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe message.attach(source, attachmentFile.getFilename(), null); } + Date beforeSendingMessage = new Date(); + message.send(); + Date afterSendingMessage = new Date(); + ReplyTopiaDao replyTopiaDao = getPersistenceContext().getReplyDao(); ReplyContentTopiaDao replyContentTopiaDao = getPersistenceContext().getReplyContentDao(); Date now = new Date(); @@ -1240,6 +1246,15 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe email = saveEmail(email, null, null, user); + Date postSendingOperations = new Date(); + + if (log.isDebugEnabled()) { + log.debug("Message preparation took : " + (beforeSendingMessage.getTime() - begin.getTime()) + " ms"); + log.debug("Message sending (outside FTM) took : " + (afterSendingMessage.getTime() - beforeSendingMessage.getTime()) + " ms"); + log.debug("Post sending operations took : " + (postSendingOperations.getTime() - afterSendingMessage.getTime()) + " ms"); + } + + return email; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 823168c22537e537b991f8735affe7fb8396a033 Author: jcouteau <couteau@codelutin.com> Date: Fri Aug 17 17:08:05 2018 +0200 Nettoyage code et ajout commentaire --- .../com/franciaflex/faxtomail/services/service/EmailServiceImpl.java | 4 +++- .../com/franciaflex/faxtomail/services/service/EmailServiceTest.java | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index da147da2..8b49df97 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -931,6 +931,7 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe // get current lock on mail if any EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); MailLockTopiaDao mailLockDao = getPersistenceContext().getMailLockDao(); + Email email = emailDao.forTopiaIdEquals(emailId).findUnique(); MailFolderService mailFolderService = serviceContext.getMailFolderService(); @@ -958,7 +959,8 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe // si le mail courant a un group, on déverrouille tous les mails // qui ne portent pas sur le même groupe mailLocksToRemove = mailLockDao.forLockByEquals(currentUser) - .addNotEquals(MailLock.PROPERTY_LOCK_ON + "." + Email.PROPERTY_EMAIL_GROUP, email.getEmailGroup()).findAll(); + .addNotEquals(MailLock.PROPERTY_LOCK_ON + "." + Email.PROPERTY_EMAIL_GROUP, email.getEmailGroup()) + .findAll(); } else { mailLocksToRemove = mailLockDao.forLockByEquals(currentUser).findAll(); } diff --git a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java index 9c764a78..0b8947a6 100644 --- a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java +++ b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java @@ -311,6 +311,7 @@ public class EmailServiceTest extends AbstractFaxToMailServiceTest { Email email = emails.get(0); + //Check we can rightfully test data Assert.assertNotEquals(cmarquis,email.getTakenBy()); service.takeBy(emails, cmarquis); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm