Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailMultiplosAnexosTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailMultiplosAnexosTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailMultiplosAnexosTestCase.java	(revision 3523)
@@ -0,0 +1,31 @@
+package br.gov.serpro.cte.email.compor;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 18, 2010 at 4:20:59 PM
+ * 
+ */
+public class EnviarEmailMultiplosAnexosTestCase extends ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(),
+				Valor.ASSUNTO_MULTIPLOS_ANEXOS.getValue());
+		selenium.click(Campo.ADICIONAR_ANEXO.getValue());
+		selenium.type(Campo.ANEXO_1.getValue(), Valor.ANEXO_1.getValue());
+		selenium.click(Campo.ADICIONAR_ANEXO.getValue());
+		selenium.type(Campo.ANEXO_2.getValue(), Valor.ANEXO_2.getValue());
+		super.sendEmail();
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.EMAIL_ENVIADO.getValue());
+
+		// Remove email da Caixa de Entrada, itens enviados e lixeira.
+		super.removeEmail(Valor.ASSUNTO_MULTIPLOS_ANEXOS.getValue());
+	}
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSomenteCopiaTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSomenteCopiaTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSomenteCopiaTestCase.java	(revision 3523)
@@ -0,0 +1,31 @@
+package br.gov.serpro.cte.email.compor;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 18, 2010 at 4:37:26 PM
+ * 
+ */
+public class EnviarEmailSomenteCopiaTestCase extends ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.composeEmail();
+		selenium.click(Campo.COPIA_1.getValue());
+		selenium.type(Campo.COPIA_CAMPO_1.getValue(),
+				Valor.EMAIL_TESTE_1.getValue());
+		selenium.type(Campo.ASSUNTO_1.getValue(),
+				Valor.ASSUNTO_SOMENTE_COPIA.getValue());
+		super.sendEmail();
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.EMAIL_ENVIADO.getValue());
+
+		// Remove email da Caixa de Entrada, itens enviados e lixeira.
+		super.removeEmail(Valor.ASSUNTO_SOMENTE_COPIA.getValue());
+	}
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailConfirmacaoLeituraTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailConfirmacaoLeituraTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailConfirmacaoLeituraTestCase.java	(revision 3523)
@@ -14,9 +14,14 @@
 
 	@Test
-	public void testaEnviarEmailConfirmacaoLeitura() throws Exception {
+	public void testa() throws Exception {
 		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(),
 				Valor.ASSUNTO_CONFIRMACAO_LEITURA.getValue());
 		selenium.click(Campo.CONFIRMACAO_LEITURA.getValue());
 		super.sendEmail();
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.EMAIL_ENVIADO.getValue());
+
+		// Remove email da Caixa de Entrada, itens enviados e lixeira.
+		super.removeEmail(Valor.ASSUNTO_CONFIRMACAO_LEITURA.getValue());
 	}
 }
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailAnexoTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailAnexoTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailAnexoTestCase.java	(revision 3523)
@@ -12,7 +12,22 @@
  */
 public class EnviarEmailAnexoTestCase extends ExpressoMailTestCase {
+	private boolean apagarEmail;
+
+	/**
+	 * 
+	 */
+	public EnviarEmailAnexoTestCase() {
+		this.apagarEmail = true;
+	}
+
+	/**
+	 * @param apagarEmail
+	 */
+	public EnviarEmailAnexoTestCase(boolean apagarEmail) {
+		this.apagarEmail = apagarEmail;
+	}
 
 	@Test
-	public void testaEnviarEmailAnexo() throws Exception {
+	public void testa() throws Exception {
 		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(),
 				Valor.ASSUNTO_ANEXO.getValue());
@@ -20,16 +35,11 @@
 		selenium.type(Campo.ANEXO_1.getValue(), Valor.ANEXO_1.getValue());
 		super.sendEmail();
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.EMAIL_ENVIADO.getValue());
+
+		if (this.apagarEmail) {
+			// Remove email da Caixa de Entrada, itens enviados e lixeira.
+			super.removeEmail(Valor.ASSUNTO_ANEXO.getValue());
+		}
 	}
-
-	@Test
-	public void testaEnviarEmailMultiplosAnexos() throws Exception {
-		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(),
-				Valor.ASSUNTO_MULTIPLOS_ANEXOS.getValue());
-		selenium.click(Campo.ADICIONAR_ANEXO.getValue());
-		selenium.type(Campo.ANEXO_1.getValue(), Valor.ANEXO_1.getValue());
-		selenium.click(Campo.ADICIONAR_ANEXO.getValue());
-		selenium.type(Campo.ANEXO_2.getValue(), Valor.ANEXO_2.getValue());
-		super.sendEmail();
-	}
-
 }
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailCopiaTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailCopiaTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailCopiaTestCase.java	(revision 3523)
@@ -14,5 +14,5 @@
 
 	@Test
-	public void testaEnviarEmailCopia() throws Exception {
+	public void testa() throws Exception {
 		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(),
 				Valor.ASSUNTO_COPIA.getValue());
@@ -21,37 +21,9 @@
 				Valor.EMAIL_TESTE_2.getValue());
 		super.sendEmail();
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.EMAIL_ENVIADO.getValue());
+
+		// Remove email da Caixa de Entrada, itens enviados e lixeira.
+		super.removeEmail(Valor.ASSUNTO_COPIA.getValue());
 	}
-
-	@Test
-	public void testaEnviarEmailCopiaOculta() throws Exception {
-		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(),
-				Valor.ASSUNTO_COPIA_OCULTA.getValue());
-		selenium.click(Campo.COPIA_OCULTA_1.getValue());
-		selenium.type(Campo.COPIA_OCULTA_CAMPO_1.getValue(),
-				Valor.EMAIL_TESTE_3.getValue());
-		super.sendEmail();
-	}
-
-	@Test
-	public void testaEnviarEmailSomenteCopiaOculta() throws Exception {
-		super.composeEmail();
-		selenium.click(Campo.COPIA_OCULTA_1.getValue());
-		selenium.type(Campo.COPIA_OCULTA_CAMPO_1.getValue(),
-				Valor.EMAIL_TESTE_1.getValue());
-		selenium.type(Campo.ASSUNTO_1.getValue(),
-				Valor.ASSUNTO_SOMENTE_COPIA_OCULTA.getValue());
-		super.sendEmail();
-	}
-
-	@Test
-	public void testaEnviarEmailSomenteCopia() throws Exception {
-		super.composeEmail();
-		selenium.click(Campo.COPIA_1.getValue());
-		selenium.type(Campo.COPIA_CAMPO_1.getValue(),
-				Valor.EMAIL_TESTE_1.getValue());
-		selenium.type(Campo.ASSUNTO_1.getValue(),
-				Valor.ASSUNTO_SOMENTE_COPIA.getValue());
-		super.sendEmail();
-	}
-
 }
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSemDestinatarioTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSemDestinatarioTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSemDestinatarioTestCase.java	(revision 3523)
@@ -0,0 +1,22 @@
+package br.gov.serpro.cte.email.compor;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 18, 2010 at 3:46:53 PM
+ * 
+ */
+public class EnviarEmailSemDestinatarioTestCase extends ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.composeEmail("", Valor.ASSUNTO_SEM_DESTINATARIO.getValue());
+		super.sendEmail();
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.SEM_DESTINATARIO.getValue());
+	}
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailDestinatarioInvalidoTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailDestinatarioInvalidoTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailDestinatarioInvalidoTestCase.java	(revision 3523)
@@ -0,0 +1,24 @@
+package br.gov.serpro.cte.email.compor;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 18, 2010 at 3:48:27 PM
+ * 
+ */
+public class EnviarEmailDestinatarioInvalidoTestCase extends
+		ExpressoMailTestCase {
+
+	@Test
+	public void testaEnviarEmailDestinatarioInvalido() throws Exception {
+		super.composeEmail(Valor.EMAIL_INVALIDO.getValue(),
+				Valor.ASSUNTO_EMAIL_INVALIDO.getValue());
+		super.sendEmail();
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.DESTINATARIO_INVALIDO.getValue());
+	}
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSomenteCopiaOcultaTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSomenteCopiaOcultaTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSomenteCopiaOcultaTestCase.java	(revision 3523)
@@ -0,0 +1,31 @@
+package br.gov.serpro.cte.email.compor;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 18, 2010 at 4:33:41 PM
+ * 
+ */
+public class EnviarEmailSomenteCopiaOcultaTestCase extends ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.composeEmail();
+		selenium.click(Campo.COPIA_OCULTA_1.getValue());
+		selenium.type(Campo.COPIA_OCULTA_CAMPO_1.getValue(),
+				Valor.EMAIL_TESTE_1.getValue());
+		selenium.type(Campo.ASSUNTO_1.getValue(),
+				Valor.ASSUNTO_SOMENTE_COPIA_OCULTA.getValue());
+		super.sendEmail();
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.EMAIL_ENVIADO.getValue());
+
+		// Remove email da Caixa de Entrada, itens enviados e lixeira.
+		super.removeEmail(Valor.ASSUNTO_SOMENTE_COPIA_OCULTA.getValue());
+	}
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailTestCase.java	(revision 3523)
@@ -16,40 +16,24 @@
 public class EnviarEmailTestCase extends ExpressoMailTestCase {
 
-	@Test
-	public void testaEnviarEmail() throws Exception {
-		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(),
-				Valor.ASSUNTO.getValue());
-		super.sendEmail();
+	private boolean apagarEmail;
+
+	/**
+	 * 
+	 */
+	public EnviarEmailTestCase() {
+		this.apagarEmail = true;
+	}
+
+	/**
+	 * @param apagarEmail
+	 */
+	public EnviarEmailTestCase(boolean apagarEmail) {
+		this.apagarEmail = apagarEmail;
 	}
 
 	@Test
-	public void testaEnviarEmailSemDestinatario() throws Exception {
-		super.composeEmail("", Valor.ASSUNTO_SEM_DESTINATARIO.getValue());
-		super.sendEmail();
-		super.assertMessage(Mensagem.SEM_DESTINATARIO.getValue());
+	public void testa() throws Exception {
+		super.sendEmail(Valor.EMAIL_TESTE_1.getValue(),
+				Valor.ASSUNTO.getValue(), apagarEmail);
 	}
-
-	@Test
-	public void testaEnviarEmailDestinatarioInvalido() throws Exception {
-		super.composeEmail(Valor.EMAIL_INVALIDO.getValue(),
-				Valor.ASSUNTO_EMAIL_INVALIDO.getValue());
-		super.sendEmail();
-		super.assertMessage(Mensagem.DESTINATARIO_INVALIDO.getValue());
-	}
-
-	@Test
-	public void testaEnviarEmailSemAssunto() throws Exception {
-		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(), "");
-		super.sendEmail();
-		assertTrue(selenium.getConfirmation().matches(
-				Mensagem.SEM_ASSUNTO.getValue()));
-	}
-
-	@Test
-	public void testaEnviarEmailMultiplosDestinatarios() throws Exception {
-		super.composeEmail(Valor.EMAIL_TESTE_MULTIPLOS.getValue(),
-				Valor.ASSUNTO_MULTIPLOS_DESTINATARIOS.getValue());
-		super.sendEmail();
-	}
-
 }
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSemAssuntoTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSemAssuntoTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailSemAssuntoTestCase.java	(revision 3523)
@@ -0,0 +1,25 @@
+package br.gov.serpro.cte.email.compor;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 18, 2010 at 3:49:56 PM
+ * 
+ */
+public class EnviarEmailSemAssuntoTestCase extends ExpressoMailTestCase {
+
+	// TODO Remover o email sem assunto da Caixa de Entrada, itens enviados e
+	// lixeira e adicionar teste de verificacao de email enviado.
+	@Test
+	public void testa() throws Exception {
+		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(), "");
+		super.sendEmail();
+		assertTrue(selenium.getConfirmation().matches(
+				Mensagem.SEM_ASSUNTO.getValue()));
+	}
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailImportanteTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailImportanteTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailImportanteTestCase.java	(revision 3523)
@@ -12,11 +12,34 @@
  */
 public class EnviarEmailImportanteTestCase extends ExpressoMailTestCase {
+	private boolean apagarEmail;
+
+	/**
+	 * 
+	 */
+	public EnviarEmailImportanteTestCase() {
+		this.apagarEmail = true;
+	}
+
+	/**
+	 * @param apagarEmail
+	 */
+	public EnviarEmailImportanteTestCase(boolean apagarEmail) {
+		this.apagarEmail = apagarEmail;
+	}
 
 	@Test
-	public void testaEnviarEmailImportante() throws Exception {
+	public void testa() throws Exception {
 		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(),
 				Valor.ASSUNTO_IMPORTANTE.getValue());
 		selenium.click(Campo.IMPORTANTE_CHECKBOX.getValue());
 		super.sendEmail();
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.EMAIL_ENVIADO.getValue());
+
+		if (this.apagarEmail) {
+			// Remove email da Caixa de Entrada, itens enviados e lixeira.
+			super.removeEmail(Valor.ASSUNTO_IMPORTANTE.getValue());
+		}
+
 	}
 }
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailMultiplosDestinatariosTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailMultiplosDestinatariosTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailMultiplosDestinatariosTestCase.java	(revision 3523)
@@ -0,0 +1,36 @@
+package br.gov.serpro.cte.email.compor;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 18, 2010 at 3:58:08 PM
+ * 
+ */
+public class EnviarEmailMultiplosDestinatariosTestCase extends
+		ExpressoMailTestCase {
+	private boolean apagarEmail;
+
+	/**
+	 * 
+	 */
+	public EnviarEmailMultiplosDestinatariosTestCase() {
+		this.apagarEmail = true;
+	}
+
+	/**
+	 * @param apagarEmail
+	 */
+	public EnviarEmailMultiplosDestinatariosTestCase(boolean apagarEmail) {
+		this.apagarEmail = apagarEmail;
+	}
+
+	@Test
+	public void testa() throws Exception {
+		super.sendEmail(Valor.EMAIL_TESTE_MULTIPLOS.getValue(),
+				Valor.ASSUNTO_MULTIPLOS_DESTINATARIOS.getValue(), apagarEmail);
+	}
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailRascunhoTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailRascunhoTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailRascunhoTestCase.java	(revision 3523)
@@ -13,4 +13,6 @@
 public class EnviarEmailRascunhoTestCase extends ExpressoMailTestCase {
 
+	// TODO Remover elementos hardcoded para ExpressoMailTestCase, remover da
+	// Caixa de Entrada, itens enviados e lixeira.
 	@Test
 	public void testaEnviarEmailRascunho() throws Exception {
@@ -27,5 +29,4 @@
 
 		// Descobre id da mensagem baseado no assunto
-
 		selenium.click(super
 				.findEmailIdBySuject("[SELENIUM] Teste salvar mensagem"));
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailCopiaOcultaTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailCopiaOcultaTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/EnviarEmailCopiaOcultaTestCase.java	(revision 3523)
@@ -0,0 +1,30 @@
+package br.gov.serpro.cte.email.compor;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 18, 2010 at 4:31:43 PM
+ * 
+ */
+public class EnviarEmailCopiaOcultaTestCase extends ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.composeEmail(Valor.EMAIL_TESTE_1.getValue(),
+				Valor.ASSUNTO_COPIA_OCULTA.getValue());
+		selenium.click(Campo.COPIA_OCULTA_1.getValue());
+		selenium.type(Campo.COPIA_OCULTA_CAMPO_1.getValue(),
+				Valor.EMAIL_TESTE_3.getValue());
+		super.sendEmail();
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.EMAIL_ENVIADO.getValue());
+
+		// Remove email da Caixa de Entrada, itens enviados e lixeira.
+		super.removeEmail(Valor.ASSUNTO_COPIA_OCULTA.getValue());
+	}
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/SalvarEmailTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/SalvarEmailTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/compor/SalvarEmailTestCase.java	(revision 3523)
@@ -19,6 +19,6 @@
 		selenium.click(Campo.SALVAR.getValue());
 		super.waitForElement(Campo.MENSAGEM.getValue());
-		assertEquals(Mensagem.SALVA_RASCUNHO.getValue(),
-				selenium.getText(Campo.MENSAGEM.getValue()));
+		super.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.SALVA_RASCUNHO.getValue());
 
 	}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/EncaminharEmailAnexoTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/EncaminharEmailAnexoTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/EncaminharEmailAnexoTestCase.java	(revision 3523)
@@ -4,4 +4,5 @@
 
 import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailAnexoTestCase;
 
 /**
@@ -14,7 +15,9 @@
 
 	@Test
-	public void testaEncaminharEmailAnexo() throws Exception {
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailAnexoTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
+
 		String id = super.readEmail(Valor.ASSUNTO_ANEXO.getValue());
-		id = id.substring(id.lastIndexOf("_"));
 		super.forwardEmail(id, Valor.EMAIL_TESTE_1.getValue());
 	}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailTestCase.java	(revision 3523)
@@ -4,4 +4,5 @@
 
 import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailTestCase;
 
 /**
@@ -14,28 +15,9 @@
 
 	@Test
-	public void testaResponserEmail() throws Exception {
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
 		String id = super.readEmail(Valor.ASSUNTO.getValue());
 		super.replyEmail(id);
 	}
-
-	@Test
-	public void testaResponserEmailSemHistorico() throws Exception {
-		String id = super.readEmail(Valor.ASSUNTO.getValue());
-		super.replyEmailWithoutHistory(id);
-	}
-
-	@Test
-	public void testaResponserEmailTodos() throws Exception {
-		String id = super
-				.readEmail("[SELENIUM] Teste envio mensagem para mÃºltiplos des...");
-		super.replyAllEmail(id);
-	}
-
-	@Test
-	public void testaResponserEmailTodosSemHistorico() throws Exception {
-		String id = super
-				.readEmail("[SELENIUM] Teste envio mensagem para mÃºltiplos des...");
-		super.replyEmailWithoutHistory(id);
-	}
-
 }
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailTodosSemHistoricoTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailTodosSemHistoricoTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailTodosSemHistoricoTestCase.java	(revision 3523)
@@ -0,0 +1,26 @@
+package br.gov.serpro.cte.email.responder;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailMultiplosDestinatariosTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 19, 2010 at 3:57:04 PM
+ * 
+ */
+public class ResponderEmailTodosSemHistoricoTestCase extends
+		ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailMultiplosDestinatariosTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
+		String id = super.readEmail(Valor.ASSUNTO_MULTIPLOS_DESTINATARIOS
+				.getValue());
+		super.replyAllEmailWithoutHistory(id);
+	}
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/EncaminharEmailTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/EncaminharEmailTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/EncaminharEmailTestCase.java	(revision 3523)
@@ -4,4 +4,5 @@
 
 import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailTestCase;
 
 /**
@@ -14,7 +15,8 @@
 
 	@Test
-	public void testaEncaminharEmail() throws Exception {
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
 		String id = super.readEmail(Valor.ASSUNTO.getValue());
-		id = id.substring(id.lastIndexOf("_"));
 		super.forwardEmail(id, Valor.EMAIL_TESTE_1.getValue());
 	}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailSemHistoricoTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailSemHistoricoTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailSemHistoricoTestCase.java	(revision 3523)
@@ -0,0 +1,24 @@
+package br.gov.serpro.cte.email.responder;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 19, 2010 at 3:51:18 PM
+ * 
+ */
+public class ResponderEmailSemHistoricoTestCase extends ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
+		String id = super.readEmail(Valor.ASSUNTO.getValue());
+		super.replyEmailWithoutHistory(id);
+	}
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailTodosTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailTodosTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/responder/ResponderEmailTodosTestCase.java	(revision 3523)
@@ -0,0 +1,25 @@
+package br.gov.serpro.cte.email.responder;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailMultiplosDestinatariosTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 19, 2010 at 3:54:10 PM
+ * 
+ */
+public class ResponderEmailTodosTestCase extends ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailMultiplosDestinatariosTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
+		String id = super.readEmail(Valor.ASSUNTO_MULTIPLOS_DESTINATARIOS
+				.getValue());
+		super.replyAllEmail(id);
+	}
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailNaoLidoTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailNaoLidoTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailNaoLidoTestCase.java	(revision 3523)
@@ -0,0 +1,26 @@
+package br.gov.serpro.cte.email.ler;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 19, 2010 at 3:14:33 PM
+ * 
+ */
+public class MarcarEmailNaoLidoTestCase extends ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
+		super.readEmail(Valor.ASSUNTO.getValue());
+		selenium.click(Campo.NAO_LIDO.getValue());
+		this.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.MARCAR_NAO_LIDO.getValue());
+	}
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailNormalTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailNormalTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailNormalTestCase.java	(revision 3523)
@@ -0,0 +1,26 @@
+package br.gov.serpro.cte.email.ler;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailImportanteTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 19, 2010 at 2:55:41 PM
+ * 
+ */
+public class MarcarEmailNormalTestCase extends ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailImportanteTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
+		super.readEmail(Valor.ASSUNTO.getValue());
+		selenium.click(Campo.NORMAL.getValue());
+		this.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.MARCAR_NORMAL.getValue());
+	}
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/LerEmailTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/LerEmailTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/LerEmailTestCase.java	(revision 3523)
@@ -4,4 +4,5 @@
 
 import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailTestCase;
 
 /**
@@ -14,5 +15,7 @@
 
 	@Test
-	public void testaLerEmail() throws Exception {
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
 		super.readEmail(Valor.ASSUNTO.getValue());
 	}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/ApagarEmailAbertoTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/ApagarEmailAbertoTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/ApagarEmailAbertoTestCase.java	(revision 3523)
@@ -4,4 +4,5 @@
 
 import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailTestCase;
 
 /**
@@ -14,8 +15,10 @@
 
 	@Test
-	public void testaApagarEmailAberto() throws Exception {
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
+
 		super.readEmail(Valor.ASSUNTO.getValue());
 		super.deleteEmail();
-		super.assertMessage(Mensagem.APAGAR_MENSAGEM.getValue());
 	}
 }
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailImportanteTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailImportanteTestCase.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailImportanteTestCase.java	(revision 3523)
@@ -0,0 +1,25 @@
+package br.gov.serpro.cte.email.ler;
+
+import org.junit.Test;
+
+import br.gov.serpro.cte.common.ExpressoMailTestCase;
+import br.gov.serpro.cte.email.compor.EnviarEmailTestCase;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 16, 2010 at 4:47:05 PM
+ * 
+ */
+public class MarcarEmailImportanteTestCase extends ExpressoMailTestCase {
+
+	@Test
+	public void testa() throws Exception {
+		super.executeTestCase(EnviarEmailTestCase.class,
+				new Class[] { boolean.class }, new Object[] { false });
+		super.readEmail(Valor.ASSUNTO.getValue());
+		selenium.click(Campo.IMPORTANTE.getValue());
+		this.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.MARCAR_IMPORTANTE.getValue());
+	}
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/ler/MarcarEmailTestCase.java	(revision 3521)
+++ 	(revision )
@@ -1,32 +1,0 @@
-package br.gov.serpro.cte.email.ler;
-
-import org.junit.Test;
-
-import br.gov.serpro.cte.common.ExpressoMailTestCase;
-
-/**
- * @author L.F.Estivalet (Serpro)
- * 
- *         Created on Nov 16, 2010 at 4:47:05 PM
- * 
- */
-public class MarcarEmailTestCase extends ExpressoMailTestCase {
-
-	@Test
-	public void testaMarcarEmailImportante() throws Exception {
-		super.readEmail(Valor.ASSUNTO.getValue());
-		selenium.click(Campo.IMPORTANTE.getValue());
-	}
-
-	@Test
-	public void testaMarcarEmailNormal() throws Exception {
-		super.readEmail(Valor.ASSUNTO.getValue());
-		selenium.click(Campo.NORMAL.getValue());
-	}
-
-	@Test
-	public void testaMarcarEmailNaoLido() throws Exception {
-		super.readEmail(Valor.ASSUNTO.getValue());
-		selenium.click(Campo.NAO_LIDO.getValue());
-	}
-}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/pastas/ApagarPastaTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/pastas/ApagarPastaTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/pastas/ApagarPastaTestCase.java	(revision 3523)
@@ -14,5 +14,5 @@
 
 	@Test
-	public void testaCriarPasta() throws Exception {
+	public void testa() throws Exception {
 		super.enterExpressoMail();
 		selenium.click("//div[@id='menu_tools']/table/tbody/tr[4]/td");
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/pastas/CriarPastaTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/pastas/CriarPastaTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/pastas/CriarPastaTestCase.java	(revision 3523)
@@ -14,5 +14,5 @@
 
 	@Test
-	public void testaCriarPasta() throws Exception {
+	public void testa() throws Exception {
 		super.enterExpressoMail();
 		selenium.click("//td[@id='link_tools']/div/span");
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/pastas/GerenciarPastasTestSuite.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/pastas/GerenciarPastasTestSuite.java	(revision 3523)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/pastas/GerenciarPastasTestSuite.java	(revision 3523)
@@ -0,0 +1,16 @@
+package br.gov.serpro.cte.email.pastas;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Nov 19, 2010 at 3:28:20 PM
+ * 
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ CriarPastaTestCase.class, ApagarPastaTestCase.class })
+public class GerenciarPastasTestSuite {
+
+}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/listar/ApagarEmailSelecionadoTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/listar/ApagarEmailSelecionadoTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/listar/ApagarEmailSelecionadoTestCase.java	(revision 3523)
@@ -18,5 +18,4 @@
 		super.findEmailIdBySuject(Valor.ASSUNTO.getValue(), true);
 		super.deleteEmail();
-		super.assertMessage(Mensagem.APAGAR_UMA_MENSAGEM.getValue());
 	}
 }
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/listar/ApagarTodosEmailsTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/listar/ApagarTodosEmailsTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/listar/ApagarTodosEmailsTestCase.java	(revision 3523)
@@ -14,5 +14,5 @@
 
 	@Test
-	public void testaApagarTodosEmails() throws Exception {
+	public void testa() throws Exception {
 		super.enterExpressoMail();
 		selenium.click(Campo.SELECIONAR_TODOS_EMAILS.getValue());
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/listar/LimparLixeiraTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/listar/LimparLixeiraTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/email/listar/LimparLixeiraTestCase.java	(revision 3523)
@@ -15,13 +15,5 @@
 	public void testaLimparLixeira() throws Exception {
 		super.enterExpressoMail();
-		super.openFolder(Campo.PASTA_LIXEIRA.getValue());
-		selenium.click(Campo.LIMPAR_LIXEIRA.getValue());
-		assertTrue(selenium.getConfirmation().matches(
-				Mensagem.LIMPAR_LIXEIRA.getValue()));
-		super.waitForElement(Campo.MENSAGEM.getValue());
-		assertEquals(Mensagem.LIXEIRA_LIMPA.getValue(),
-				selenium.getText(Campo.MENSAGEM.getValue()));
-		// Garantir que nao tem nenhum email na lixeira.
-		assertEquals("0", super.getTotalEmails());
+		super.cleanupTrash();
 	}
 
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/common/BaseTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/common/BaseTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/common/BaseTestCase.java	(revision 3523)
@@ -1,3 +1,7 @@
 package br.gov.serpro.cte.common;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 
 import org.junit.After;
@@ -19,4 +23,5 @@
 	@Before
 	public void setUp() throws Exception {
+		System.out.println("SETUP");
 		String url = "https://cte.serpro.gov.br";
 		DAOSelenium conn = new DAOSelenium("localhost", 4444, "*firefox", url);
@@ -33,4 +38,27 @@
 		selenium.click("submitit");
 		selenium.waitForPageToLoad("30000");
+	}
+
+	/**
+	 * Executa o logout do Expresso.
+	 */
+	public void logout() {
+		selenium.click("logout_id");
+		selenium.waitForPageToLoad("30000");
+	}
+
+	/**
+	 * Verifica se a mensagem ao usuario foi informada pelo Expresso.
+	 * 
+	 * @param field
+	 *            Campo onde a mensagem vai ser exibida.
+	 * @param message
+	 *            Mensagem a verificar.
+	 * @throws Exception
+	 */
+	public void assertMessage(String field, String message) throws Exception {
+		// Espera pela mensagem de erro.
+		this.waitForElement(field);
+		assertEquals(message, selenium.getText(field));
 	}
 
@@ -83,6 +111,14 @@
 	 */
 	public void dummyWait() throws Exception {
+		dummyWait(5);
+	}
+
+	/**
+	 * @param seconds
+	 * @throws Exception
+	 */
+	public void dummyWait(int seconds) throws Exception {
 		for (int second = 0;; second++) {
-			if (second >= 5) {
+			if (second >= seconds) {
 				System.out.println("timeout");
 				return;
@@ -93,6 +129,58 @@
 	}
 
+	public void executeTestCase(Class<? extends BaseTestCase> clazz)
+			throws InstantiationException, IllegalAccessException,
+			SecurityException, NoSuchMethodException, IllegalArgumentException,
+			InvocationTargetException {
+		Object obj = clazz.newInstance();
+		Method method = clazz.getMethod("setUp");
+		method.invoke(obj);
+		method = clazz.getMethod("testa");
+		method.invoke(obj);
+		method = clazz.getMethod("tearDown");
+		method.invoke(obj);
+	}
+
+	public void executeTestCase(Class<? extends BaseTestCase> clazz,
+			Class<?>[] constructor, Object[] arguments)
+			throws InstantiationException, IllegalAccessException,
+			SecurityException, NoSuchMethodException, IllegalArgumentException,
+			InvocationTargetException {
+
+		Constructor<?> c = clazz.getConstructor(constructor);
+		Object obj = createObject(c, arguments);
+
+		Method method = clazz.getMethod("setUp");
+		method.invoke(obj);
+		method = clazz.getMethod("testa");
+		method.invoke(obj);
+		method = clazz.getMethod("tearDown");
+		method.invoke(obj);
+	}
+
+	private Object createObject(Constructor<?> constructor, Object[] arguments) {
+
+		System.out.println("Constructor: " + constructor.toString());
+		Object object = null;
+
+		try {
+			object = constructor.newInstance(arguments);
+			System.out.println("Object: " + object.toString());
+			return object;
+		} catch (InstantiationException e) {
+			System.out.println(e);
+		} catch (IllegalAccessException e) {
+			System.out.println(e);
+		} catch (IllegalArgumentException e) {
+			System.out.println(e);
+		} catch (InvocationTargetException e) {
+			System.out.println(e);
+		}
+		return object;
+	}
+
 	@After
 	public void tearDown() throws Exception {
+		System.out.println("STOP SELENIUM");
 		selenium.stop();
 	}
Index: devel/testlink/automation/src/test/java/br/gov/serpro/cte/common/ExpressoMailTestCase.java
===================================================================
--- devel/testlink/automation/src/test/java/br/gov/serpro/cte/common/ExpressoMailTestCase.java	(revision 3521)
+++ devel/testlink/automation/src/test/java/br/gov/serpro/cte/common/ExpressoMailTestCase.java	(revision 3523)
@@ -52,9 +52,11 @@
 		int last = StringUtils.indexOf(part1, "\">", start);
 		String id = StringUtils.substring(part1, start, last);
-
 		if (select) {
 			// Marca checkbox correspondente ao id da mensagem.
 			selenium.click("check_box" + id.substring(1));
 		}
+
+		// Retorna somente o "id" do email.
+		// id = id.substring(id.lastIndexOf("_"));
 
 		return id;
@@ -74,5 +76,4 @@
 		selenium.type(Campo.PARA_1.getValue(), to);
 		selenium.type(Campo.ASSUNTO_1.getValue(), subject);
-
 	}
 
@@ -89,21 +90,24 @@
 
 	/**
-	 * Simula o envio de email ao pressionar o botao Enviar.
+	 * @param remove
+	 *            Se <code>true</code>, remove o logo apos o envio da Caixa de
+	 *            Entrada, itens enviados e lixeira. Simula o envio de email ao
+	 *            pressionar o botao Enviar.
+	 */
+	public void sendEmail(String to, String subject, boolean remove)
+			throws Exception {
+		this.composeEmail(to, subject);
+		selenium.click(Campo.ENVIAR_EMAIL_1.getValue());
+		this.assertMessage(Campo.MENSAGEM.value, Mensagem.EMAIL_ENVIADO.value);
+		if (remove) {
+			this.removeEmail(subject);
+		}
+	}
+
+	/**
+	 * Pressiona opcao para enviar o email.
 	 */
 	public void sendEmail() {
 		selenium.click(Campo.ENVIAR_EMAIL_1.getValue());
-	}
-
-	/**
-	 * Verifica se a mensagem ao usuario foi informada pelo Expresso.
-	 * 
-	 * @param message
-	 *            Mensagem a verificar.
-	 * @throws Exception
-	 */
-	public void assertMessage(String message) throws Exception {
-		// Espera pela mensagem de erro.
-		super.waitForElement("em_div_write_msg");
-		assertEquals(message, selenium.getText("em_div_write_msg"));
 	}
 
@@ -132,6 +136,84 @@
 	 * Apaga o email previamente selecionado.
 	 */
-	public void deleteEmail() {
+	public void deleteEmail() throws Exception {
 		selenium.click("//div[@id='footer_menu']/table[@id='footer_box']/tbody/tr[@id='table_message']/td[@id='span_options']/span[1]/span");
+		this.assertMessage(Campo.MENSAGEM.getValue(),
+				Mensagem.APAGAR_UMA_MENSAGEM.getValue());
+	}
+
+	/**
+	 * Apaga o email de acordo com o assunto.
+	 * 
+	 * @param subject
+	 *            Assunto a ser pesquisado. No caso da pesquisa encontrar varios
+	 *            emails, apenas o primeiro sera selecionado e apagado.
+	 * @throws Exception
+	 */
+	public void deleteEmail(String subject) throws Exception {
+		this.findEmailIdBySuject(subject, true);
+		this.deleteEmail();
+	}
+
+	/**
+	 * Apaga email de uma pasta de acordo com o assunto.
+	 * 
+	 * @param folder
+	 *            Pasta a ser pesquisada.
+	 * @param subject
+	 *            Assunto a ser pesquisado.
+	 * @throws Exception
+	 */
+	public void deleteEmail(String folder, String subject) throws Exception {
+		// Apaga email da pasta enviados.
+		this.openFolder(folder);
+		// Espera pelo primeiro checkbox da pasta aparecer.
+		super.waitForElement(Campo.CHECKBOX_EMAIL.getValue());
+		this.deleteEmail(subject);
+		this.waitForElement(Campo.MSG_INFO.getValue());
+		assertTrue(Mensagem.PASTA_VAZIA.getValue().equals(
+				selenium.getText(Campo.MSG_INFO.getValue())));
+	}
+
+	/**
+	 * Remove o email de acordo com o assunto da Caixa de Entrada, dos itens
+	 * enviados e da lixeira.
+	 * 
+	 * @param subject
+	 *            Assunto a ser pesquisado. No caso da pesquisa encontrar varios
+	 *            emails, apenas o primeiro sera selecionado e apagado.
+	 * @throws Exception
+	 */
+	public void removeEmail(String subject) throws Exception {
+		// Faz logout para dar tempo para o email chegar na Caixa de Entrada.
+		super.logout();
+
+		// Entra novamente no ExpressoMail e apaga o email da Caixa de Entrada.
+		this.enterExpressoMail();
+		this.deleteEmail(subject);
+
+		// Apaga email da pasta enviados.
+		this.deleteEmail(Campo.PASTA_ENVIADOS.getValue(), subject);
+
+		// Limpa a lixeira.
+		super.logout();
+		this.enterExpressoMail();
+		this.cleanupTrash();
+	}
+
+	/**
+	 * Limpa a lixeira.
+	 * 
+	 * @throws Exception
+	 */
+	public void cleanupTrash() throws Exception {
+		this.openFolder(Campo.PASTA_LIXEIRA.getValue());
+		selenium.click(Campo.LIMPAR_LIXEIRA.getValue());
+		assertTrue(selenium.getConfirmation().matches(
+				Mensagem.LIMPAR_LIXEIRA.getValue()));
+		super.waitForElement(Campo.MENSAGEM.getValue());
+		assertEquals(Mensagem.LIXEIRA_LIMPA.getValue(),
+				selenium.getText(Campo.MENSAGEM.getValue()));
+		// Garantir que nao tem nenhum email na lixeira.
+		assertEquals("0", this.getTotalEmails());
 	}
 
@@ -293,4 +375,5 @@
 				"VocÃª deve fornecer pelo menos um endereÃ§o de destinatÃ¡rio de email."), //
 		SEM_ASSUNTO("^Enviar esta mensagem sem assunto[\\s\\S]$"), //
+		EMAIL_ENVIADO("Sua mensagem foi enviada e salva."), //
 		DESTINATARIO_INVALIDO(
 				"Erro de SMTP: Os endereÃ§os de destinatÃ¡rio a seguir falharam: bla@"), //
@@ -301,4 +384,7 @@
 		LIXEIRA_LIMPA("Sua pasta Lixeira foi limpa."), //
 		APAGAR_UMA_MENSAGEM("Mensagem movida para a pasta Lixeira"), //
+		MARCAR_IMPORTANTE("Mensagem marcada como Importante"), //
+		MARCAR_NORMAL("Mensagem marcada como Normal"), //
+		MARCAR_NAO_LIDO("Mensagem marcada como NÃ£o lida"), //
 		APAGAR_MENSAGEM("Mensagens movidas para pasta Lixeira");
 		private String value;
@@ -323,4 +409,6 @@
 		ASSUNTO_1("subject_1"), //
 		ENVIAR_EMAIL_1("send_button_1"), //
+		CHECKBOX_EMAIL(
+				"//div[@id='exmail_main_body']/div[@id='content_id_0']/div[@id='divScrollMain_0']/table[@id='table_box']/tbody[@id='tbody_box']/tr[1]/td[1]/input[1]"), //
 		CONFIRMACAO_LEITURA("return_receipt_1"), //
 		IMPORTANTE(
@@ -337,4 +425,5 @@
 		COPIA_OCULTA_CAMPO_1("cco_1"), //
 		PASTA_LIXEIRA("lINBOX/Trashtree_folders"), //
+		PASTA_ENVIADOS("lINBOX/Senttree_folders"), //
 		LIMPAR_LIXEIRA("empty_trash"), //
 		SELECIONAR_TODOS_EMAILS("chk_box_select_all_messages"), //
@@ -374,16 +463,15 @@
 				"[SELENIUM] Teste envio mensagem sem destinatÃ¡rio"), //
 		ASSUNTO_MULTIPLOS_DESTINATARIOS(
-				"[SELENIUM] Teste envio mensagem para mÃºltiplos destinatÃ¡rios"), //
+				"[SELENIUM] Teste mÃºltiplos destinatÃ¡rios"), //
 		ASSUNTO_ANEXO("[SELENIUM] Teste envio mensagem com anexo"), //
 		ASSUNTO_IMPORTANTE("[SELENIUM] Teste envio mensagem importante"), //
-		ASSUNTO_MULTIPLOS_ANEXOS(
-				"[SELENIUM] Teste envio mensagem com mÃºltiplos anexos"), //
+		ASSUNTO_MULTIPLOS_ANEXOS("[SELENIUM] Teste com mÃºltiplos anexos"), //
 		ASSUNTO_CONFIRMACAO_LEITURA(
-				"[SELENIUM] Teste envio mensagem com confirmaÃ§Ã£o de leitura"), //
+				"[SELENIUM] Teste com confirmaÃ§Ã£o de leitura"), //
 		ASSUNTO_COPIA("[SELENIUM] Teste envio mensagem com cÃ³pia"), //
 		ASSUNTO_COPIA_OCULTA("[SELENIUM] Teste envio mensagem com cÃ³pia oculta"), ASSUNTO_SOMENTE_COPIA(
 				"[SELENIUM] Teste envio mensagem somente cÃ³pia"), //
 		ASSUNTO_SOMENTE_COPIA_OCULTA(
-				"[SELENIUM] Teste envio mensagem somente cÃ³pia oculta");
+				"[SELENIUM] Teste mensagem somente cÃ³pia oculta");
 		private String value;
 
