Log in Help
Print
Homegatesrctestgateemail 〉 TestEmail.java
 
/*
 *  TestEmail.java
 *
 *  Copyright (c) 1995-2012, The University of Sheffield. See the file
 *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
 *
 *  This file is part of GATE (see http://gate.ac.uk/), and is free
 *  software, licenced under the GNU Library General Public License,
 *  Version 2, June 1991 (in the distribution as file licence.html,
 *  and also available at http://gate.ac.uk/gate/licence.html).
 *
 *  Cristian URSU,  7/Aug/2000
 *
 *  $Id: TestEmail.java 17847 2014-04-16 20:32:01Z markagreenwood $
 */

package gate.email;

import gate.Gate;
import gate.corpora.TestDocument;

import java.net.URL;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

import org.junit.Assert;
//import org.w3c.www.mime.*;


/**
  * Test class for Email facilities
  */
public class TestEmail extends TestCase
{

  /** Construction */
  public TestEmail(String name) { super(name); }
  
  private EmailDocumentHandler emailDocumentHandler = new EmailDocumentHandler();

  /** Fixture set up */
  @Override
  public void setUp() {
  } // setUp

  /** A test */
  public void testUnpackMarkup() throws Exception{

    gate.Document doc = null;
//    Gate.init();
    doc = gate.Factory.newDocument(new URL(TestDocument.getTestServerName()+"tests/email/test.eml"), "ISO-8859-1");

    // get a document format that deals with e-mails
    gate.DocumentFormat docFormat = gate.DocumentFormat.getDocumentFormat(
      doc, doc.getSourceUrl()
    );
    assertTrue( "Bad document Format was produced.EmailDocumentFormat was expected",
            docFormat instanceof gate.corpora.EmailDocumentFormat
          );

    docFormat.unpackMarkup (doc,"DocumentContent");
    // Verfy if all annotations from the default annotation set are consistent
    gate.corpora.TestDocument.verifyNodeIdConsistency(doc);

  } // testUnpackMarkup()

  public static void main(String[] args) {
    try{
      Gate.init();
      TestEmail testEmail = new TestEmail("");
      testEmail.testUnpackMarkup();

    }catch(Exception e){
      e.printStackTrace();
    }
  }

  /**
    * final test
    */
  //public void testEmail(){
 //   EmailDocumentHandler emailDocumentHandler = new EmailDocumentHandler();
    //emailDocumentHandler.testSelf();
 // }// testEmail
  
  /**
   * Test containsSemicolon
   */
 public void testContainsSemicolon() {
   String str1 = "X-Sender: oana@derwent";
   String str2 = "X-Sender oana@derwent";
   String str3 = ":X-Sender oana@derwent";
   String str4 = "X-Sender oana@derwent:";

   Assert.assertTrue((emailDocumentHandler.containsSemicolon(str1) == true));
   Assert.assertTrue((emailDocumentHandler.containsSemicolon(str2)== false));
   Assert.assertTrue((emailDocumentHandler.containsSemicolon(str3) == true));
   Assert.assertTrue((emailDocumentHandler.containsSemicolon(str4) == true));
 }// testContainsSemicolon

 /**
   * Test containsWhiteSpaces
   */
 public void testContainsWhiteSpaces(){
   String str1 = "Content-Type: TEXT/PLAIN; charset=US-ASCII";
   String str2 = "Content-Type:TEXT/PLAIN;charset=US-ASCII";
   String str3 = " Content-Type:TEXT/PLAIN;charset=US-ASCII";
   String str4 = "Content-Type:TEXT/PLAIN;charset=US-ASCII ";

   Assert.assertTrue((emailDocumentHandler.containsWhiteSpaces(str1) == true));
   Assert.assertTrue((emailDocumentHandler.containsWhiteSpaces(str2) == false));
   Assert.assertTrue((emailDocumentHandler.containsWhiteSpaces(str3) == true));
   Assert.assertTrue((emailDocumentHandler.containsWhiteSpaces(str4) == true));
 }// testContainsWhiteSpaces

 /**
   * Test hasAMeaning
   */
 public void testHasAMeaning() {
   String str1 = "12:05:22";
   String str2 = "Sep";
   String str3 = "Fri";
   String str4 = "2000";
   String str5 = "GMT";
   String str6 = "Date: Wed, 13 Sep 2000 13:05:22 +0100 (BST)";
   String str7 = "12:75:22";
   String str8 = "September";
   String str9 = "Friday";

   Assert.assertTrue((emailDocumentHandler.hasAMeaning(str1) == true));
   Assert.assertTrue((emailDocumentHandler.hasAMeaning(str2) == true));
   Assert.assertTrue((emailDocumentHandler.hasAMeaning(str3) == true));
   Assert.assertTrue((emailDocumentHandler.hasAMeaning(str4) == true));
   Assert.assertTrue((emailDocumentHandler.hasAMeaning(str5) == true));
   Assert.assertTrue((emailDocumentHandler.hasAMeaning(str6) == false));
   Assert.assertTrue((emailDocumentHandler.hasAMeaning(str7) == false));
   Assert.assertTrue((emailDocumentHandler.hasAMeaning(str8) == false));
   Assert.assertTrue((emailDocumentHandler.hasAMeaning(str9) == false));
 } // testHasAMeaning

 /**
   * Test isTime
   */
 public void testIsTime() {
   String str1 = "13:05:22";
   String str2 = "13/05/22";
   String str3 = "24:05:22";

   Assert.assertTrue((emailDocumentHandler.isTime(str1) == true));
   Assert.assertTrue((emailDocumentHandler.isTime(str2) == false));
   Assert.assertTrue((emailDocumentHandler.isTime(str3) == false));
 }// testIsTime

 /**
   * Test lineBeginsMessage
   */
 public void testLineBeginsMessage(){
   String str1 = "From oana@dcs.shef.ac.uk Wed Sep 13 13:05:23 2000";
   String str2 = "Date: Wed, 13 Sep 2000 13:05:22 +0100 (BST)";
   String str3 = "From oana@dcs.shef.ac.uk Sep 13 13:05:23 2000";

   Assert.assertTrue((emailDocumentHandler.lineBeginsMessage(str1) == true));
   Assert.assertTrue((emailDocumentHandler.lineBeginsMessage(str2) == false));
   Assert.assertTrue((emailDocumentHandler.lineBeginsMessage(str3) == false));

 }// testLineBeginsMessage

 /**
   * Test lineBeginsWithField
   */
 public void testLineBeginsWithField() {
   String str1 = "Message-ID: <Pine.SOL.3.91.1000913130311.19537A-10@derwent>";
   String str2 = "%:ContentType TEXT/PLAIN; charset=US-ASCII";

   Assert.assertTrue((emailDocumentHandler.lineBeginsWithField(str1) == true));
   Assert.assertTrue((emailDocumentHandler.lineBeginsWithField(str2) == true));
 }// testLineBeginsWithField

  /**
    * Test final
    */
  /*public void testSelf(){
    testContainsSemicolon();
    testContainsWhiteSpaces();
    testHasAMeaning();
    testIsTime();
    testLineBeginsMessage();
    testLineBeginsWithField();
  } // testSelf*/

  /** Test suite routine for the test runner */
  public static Test suite() {
    return new TestSuite(TestEmail.class);
  } // suite

} // class TestEmail