You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by on...@apache.org on 2017/01/05 12:46:28 UTC

svn commit: r1777463 - in /poi/trunk/src: scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java testcases/org/apache/poi/POITestCase.java testcases/org/apache/poi/TestPOITestCase.java

Author: onealj
Date: Thu Jan  5 12:46:28 2017
New Revision: 1777463

URL: http://svn.apache.org/viewvc?rev=1777463&view=rev
Log:
add unit tests for MAPIMessage.get*Body()

Modified:
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java
    poi/trunk/src/testcases/org/apache/poi/POITestCase.java
    poi/trunk/src/testcases/org/apache/poi/TestPOITestCase.java

Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java?rev=1777463&r1=1777462&r2=1777463&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java (original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java Thu Jan  5 12:46:28 2017
@@ -17,6 +17,9 @@
 
 package org.apache.poi.hsmf;
 
+import static org.apache.poi.POITestCase.assertContains;
+import static org.apache.poi.POITestCase.assertStartsWith;
+
 import java.io.IOException;
 
 import junit.framework.TestCase;
@@ -89,9 +92,9 @@ public final class TestBasics extends Te
    public void testHeaders() throws Exception {
       // Simple email first
       assertEquals(26, simple.getHeaders().length);
-      assertTrue(simple.getHeaders()[0].startsWith("Return-path:"));
-      assertTrue(simple.getHeaders()[1].equals("Envelope-to: travis@overwrittenstack.com"));
-      assertTrue(simple.getHeaders()[25].startsWith("X-Antivirus-Scanner: Clean"));
+      assertStartsWith(simple.getHeaders()[0], "Return-path:");
+      assertEquals("Envelope-to: travis@overwrittenstack.com", simple.getHeaders()[1]);
+      assertStartsWith(simple.getHeaders()[25], "X-Antivirus-Scanner: Clean");
       
       // Quick doesn't have them
       try {
@@ -107,9 +110,32 @@ public final class TestBasics extends Te
       
       // Outlook30 has some
       assertEquals(33, outlook30.getHeaders().length);
-      assertTrue(outlook30.getHeaders()[0].startsWith("Microsoft Mail Internet Headers"));
-      assertTrue(outlook30.getHeaders()[1].startsWith("x-mimeole:"));
-      assertTrue(outlook30.getHeaders()[32].startsWith("\t\"Williams")); // May need better parsing in future
+      assertStartsWith(outlook30.getHeaders()[0], "Microsoft Mail Internet Headers");
+      assertStartsWith(outlook30.getHeaders()[1], "x-mimeole:");
+      assertStartsWith(outlook30.getHeaders()[32], "\t\"Williams"); // May need better parsing in future
+   }
+
+   public void testBody() throws Exception {
+      // Messages may have their bodies saved as plain text, html, and/or rtf.
+      assertEquals("This is a test message.", simple.getTextBody());
+      assertEquals("The quick brown fox jumps over the lazy dog\r\n", quick.getTextBody());
+      assertStartsWith(outlook30.getTextBody(), "I am shutting down the IN-SPIRE servers now for 30ish minutes.\r\n\r\n");
+      assertStartsWith(attachments.getTextBody(), "contenu\r\n\r\n");
+      assertStartsWith(unicode.getTextBody(), "..less you are Nick.....");
+      
+      // outlook30 has chunks for all 3 body formats
+      // Examine one of the paragraphs is present in all 3 formats, surrounded by markup tags
+      String text = "I am shutting down the IN-SPIRE servers now for 30ish minutes.";
+      assertStartsWith(outlook30.getTextBody(), text + "\r\n\r\n");
+      assertEquals(850494485, outlook30.getTextBody().hashCode());
+      
+      assertStartsWith(outlook30.getHtmlBody(), "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">\r\n<HTML>\r\n<HEAD>");
+      assertContains(outlook30.getHtmlBody(), "<P DIR=LTR><SPAN LANG=\"en-us\"><FONT FACE=\"Calibri\">" + text + "</FONT></SPAN></P>");
+      assertEquals(-654938715, outlook30.getHtmlBody().hashCode());
+      
+      assertStartsWith(outlook30.getRtfBody(), "{\\rtf1\\adeflang1025\\ansi\\ansicpg1252\\uc1\\adeff3150");
+      assertContains(outlook30.getRtfBody(), "{\\rtlch\\fcs1 \\af31507 \\ltrch\\fcs0 \\cf0\\insrsid5003910 " + text + "\r\n\\par \r\n\\par");
+      assertEquals(891652290, outlook30.getRtfBody().hashCode());
    }
 
    /**

Modified: poi/trunk/src/testcases/org/apache/poi/POITestCase.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/POITestCase.java?rev=1777463&r1=1777462&r2=1777463&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/POITestCase.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/POITestCase.java Thu Jan  5 12:46:28 2017
@@ -44,6 +44,14 @@ import org.apache.poi.util.Internal;
  */
 @Internal
 public final class POITestCase {
+    public static void assertStartsWith(String string, String prefix) {
+        assertNotNull(string);
+        assertNotNull(prefix);
+        
+        final int len = Math.min(string.length(), prefix.length());
+        assertEquals("string does not start with prefix", prefix, string.substring(0, len));
+    }
+    
     public static void assertContains(String haystack, String needle) {
         assertNotNull(haystack);
         assertTrue(

Modified: poi/trunk/src/testcases/org/apache/poi/TestPOITestCase.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/TestPOITestCase.java?rev=1777463&r1=1777462&r2=1777463&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/TestPOITestCase.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/TestPOITestCase.java Thu Jan  5 12:46:28 2017
@@ -34,6 +34,13 @@ import org.junit.Test;
  */
 public final class TestPOITestCase {
     @Test
+    public void assertStartsWith() {
+        POITestCase.assertStartsWith("Apache POI", "");
+        POITestCase.assertStartsWith("Apache POI", "Apache");
+        POITestCase.assertStartsWith("Apache POI", "Apache POI");
+    }
+    
+    @Test
     public void assertContains() {
         POITestCase.assertContains("There is a needle in this haystack", "needle");
         /*try {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org