Index: /devel/testlink/automation2.0/[FUN02.7] - GerenciarFiltros.xml
===================================================================
--- /devel/testlink/automation2.0/[FUN02.7] - GerenciarFiltros.xml	(revision 4675)
+++ /devel/testlink/automation2.0/[FUN02.7] - GerenciarFiltros.xml	(revision 4780)
@@ -32,4 +32,5 @@
 		<classes>
 			<class name="org.expressolivre.cte.email.filtro.CriarFiltroPorRemetenteTestCase"/>
+			<class name="org.expressolivre.cte.email.filtro.EditarFiltroPorRemetenteTestCase"/>
 		</classes>
 	</test>	
@@ -44,4 +45,5 @@
 		<classes>
 			<class name="org.expressolivre.cte.email.filtro.CriarFiltroPorDestinatarioTestCase"/>
+			<class name="org.expressolivre.cte.email.filtro.EditarFiltroPorDestinatarioTestCase"/>
 		</classes>
 	</test>	
@@ -74,3 +76,11 @@
 	</test>	
 
+	<test name="Criar/Editar/Excluir filtro fora do escritorio" preserve-order="true">
+		<classes>
+			<class name="org.expressolivre.cte.email.filtro.CriarFiltroForaDoEscritorioTestCase"/>
+			<class name="org.expressolivre.cte.email.filtro.EditarFiltroForaDoEscritorioTestCase"/>
+			<class name="org.expressolivre.cte.email.filtro.ExcluirFiltroForaDoEscritorioTestCase"/>
+		</classes>
+	</test>	
+
 </suite>
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailPage.java	(revision 4627)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailPage.java	(revision 4780)
@@ -25,16 +25,8 @@
 	private WebElement newEmail;
 
-	/** Campo "Para:". */
-	@FindBy(id = "to_1")
-	private WebElement to;
-
 	/** Campo "Assunto:". */
 	@FindBy(id = "subject_1")
 	private WebElement subject;
 
-	/** Botao para enviar email. */
-	@FindBy(id = "send_button_1")
-	private WebElement send;
-
 	/** Flag de importante no momento de compor um email. */
 	@FindBy(id = "important_message_1")
@@ -114,4 +106,10 @@
 	private WebElement exportEmailLink;
 
+	@FindBy(xpath = "//div[@id='footer_menu']/table[@id='footer_box']/tbody/tr[@id='table_message']/td[@id='span_options']/span[5]/span")
+	private WebElement importEmailLink;
+
+	@FindBy(xpath = "//div[@id='win_import_window']/div[@id='win_import_window_clientArea']/div[@id='import_window']/div[@id='form_upload']/form/input[2]")
+	private WebElement importSelectFolderButton;
+
 	/** Link para pasta lixeira. */
 	@FindBy(id = "lINBOX/Trashtree_folders")
@@ -268,4 +266,8 @@
 	 */
 	public void setBody(String body) {
+		this.setBody(1, body);
+	}
+
+	public void setBody(Integer id, String body) {
 		// Foi o unico jeito que consegui pegar o richtexteditor...
 		if (body != null) {
@@ -273,5 +275,6 @@
 			body = body.replaceAll("(\r\n|\r|\n|\n\r)", "<br>");
 			((JavascriptExecutor) driver)
-					.executeScript("document.getElementById('body_1').contentWindow.document.body.innerHTML='"
+					.executeScript("document.getElementById('body_" + id
+							+ "').contentWindow.document.body.innerHTML='"
 							+ body + "';");
 		}
@@ -284,8 +287,25 @@
 	 */
 	public void composeEmail(String to, String subject, String body) {
+		this.composeEmail(1, to, subject, body);
+	}
+
+	/**
+	 * @param id
+	 *            Corresponde ao id da aba de nova mensagem.
+	 * @param to
+	 * @param subject
+	 * @param body
+	 */
+	public void composeEmail(Integer id, String to, String subject, String body) {
 		this.createNewEmail();
-		this.to.sendKeys(to);
-		this.setSubject(subject);
-		this.setBody(body);
+		driver.findElement(By.id("to_" + id)).sendKeys(to);
+		driver.findElement(By.id("subject_" + id)).sendKeys(subject);
+		this.setBody(id, body);
+	}
+
+	public void quickContactSearch() {
+		driver.findElement(
+				By.xpath("//div[@id='exmail_main_body']/div[@id='content_id_1']/div[@id='div_message_scroll_1']/form/table/tbody/tr[4]/td[3]/img"))
+				.click();
 	}
 
@@ -363,5 +383,5 @@
 	}
 
-	protected void waitLoading() {
+	public void waitLoading() {
 		// Espera pelo "Carregando..." aparecer.
 		waitForElement(By.id("divProgressBar"));
@@ -443,5 +463,5 @@
 		// Espera pelo "Carregando..." aparecer.
 		waitForElement(By.id("divProgressBar"));
-		waitForElement(By.id("divScrollMain_0"));
+		// waitForElement(By.id("divScrollMain_0"));
 		// Espera pelo "Carregando..." desaparecer.
 		isNotDisplayed(this
@@ -519,5 +539,5 @@
 	public void moveEmail(String folderName) {
 		this.moveEmailLink.click();
-		super.findAndClickElement("lINBOX/" + folderName + "wfolders_tree");
+		super.findAndClickElement(folderName);
 		this.moveEmailButton.click();
 	}
@@ -613,4 +633,12 @@
 	}
 
+	public void importEmail() {
+		this.importEmailLink.click();
+	}
+
+	public void importSelectFolder() {
+		this.importSelectFolderButton.click();
+	}
+
 	/**
 	 * Seleciona todos emails da pasta corrente.
@@ -669,5 +697,12 @@
 	 */
 	public void sendMail() {
-		this.send.click();
+		this.sendMail(1);
+	}
+
+	/**
+	 * @param id
+	 */
+	public void sendMail(Integer id) {
+		driver.findElement(By.id("send_button_" + id)).click();
 	}
 
@@ -926,3 +961,6 @@
 	}
 
+	public WebElement getReturnReceipt() {
+		return returnReceipt;
+	}
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailPreferencesPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailPreferencesPage.java	(revision 4627)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailPreferencesPage.java	(revision 4780)
@@ -5,5 +5,4 @@
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
-
 
 /**
@@ -128,4 +127,8 @@
 	private WebElement autoSaveDraft;
 
+	/** Marcar confirmacao leitura automaticamente */
+	@FindBy(name = "user[return_recipient_deafault]")
+	private WebElement returnRecipientDefault;
+
 	/** Qual o seu fuso-horÃ¡rio? */
 	@FindBy(name = "user[timezone]")
@@ -293,7 +296,16 @@
 	 *            the removeAttachmentsFunction to set
 	 */
-	public void setRemoveAttachmentsFunction(String removeAttachmentsFunction) {
-		super.setComboValue(this.removeAttachmentsFunction,
+	public boolean setRemoveAttachmentsFunction(String removeAttachmentsFunction) {
+		return super.setComboValue(this.removeAttachmentsFunction,
 				removeAttachmentsFunction);
+	}
+
+	/**
+	 * @param returnRecipientDefault
+	 * @return
+	 */
+	public boolean setReturnRecipientDefault(String returnRecipientDefault) {
+		return super.setComboValue(this.returnRecipientDefault,
+				returnRecipientDefault);
 	}
 
@@ -302,6 +314,6 @@
 	 *            the useImportantFlag to set
 	 */
-	public void setUseImportantFlag(String useImportantFlag) {
-		super.setComboValue(this.useImportantFlag, useImportantFlag);
+	public boolean setUseImportantFlag(String useImportantFlag) {
+		return super.setComboValue(this.useImportantFlag, useImportantFlag);
 	}
 
@@ -310,6 +322,6 @@
 	 *            the useSpellChecker to set
 	 */
-	public void setUseSpellChecker(String useSpellChecker) {
-		super.setComboValue(this.useSpellChecker, useSpellChecker);
+	public boolean setUseSpellChecker(String useSpellChecker) {
+		return super.setComboValue(this.useSpellChecker, useSpellChecker);
 	}
 
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailFilterPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailFilterPage.java	(revision 4620)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailFilterPage.java	(revision 4780)
@@ -20,4 +20,10 @@
 	private WebElement filterNewRule;
 
+	@FindBy(xpath = "//div[@id='window_ffilter_ccform']/div[@id='form_body']/a[2]")
+	private WebElement filterNewOutOfOfficeRule;
+
+	@FindBy(id = "field8")
+	private WebElement filterOutOfOfficeText;
+
 	@FindBy(xpath = "//div[@id='window_ffilter_ccform']/div[@id='form_body']/span[2]/input")
 	private WebElement filterSaveRules;
@@ -65,4 +71,17 @@
 	public void newFilterRule() {
 		this.filterNewRule.click();
+	}
+
+	public void newFilterOutOfOfficeRule() {
+		this.filterNewOutOfOfficeRule.click();
+	}
+
+	public void setFilterOutOfOfficeText(String text) {
+		this.filterOutOfOfficeText.clear();
+		this.filterOutOfOfficeText.sendKeys(text);
+	}
+
+	public String getFilterOutOfOfficeText() {
+		return this.filterOutOfOfficeText.getValue();
 	}
 
@@ -71,4 +90,8 @@
 				By.xpath("//div[@id='window_ffilter_ccform']/div[@id='form_body']/div[@id='set_rules']/a["
 						+ id + "]")).click();
+	}
+
+	public void editOutOfOfficeFilterRule() {
+		driver.findElement(By.xpath("//div[@id='set_out']/a/b")).click();
 	}
 
@@ -81,4 +104,5 @@
 
 	public void setFilterRecepient(String value) {
+		this.filterRecepient.clear();
 		this.filterRecepient.sendKeys(value);
 	}
@@ -89,4 +113,5 @@
 
 	public void setFilterTo(String value) {
+		this.filterTo.clear();
 		this.filterTo.sendKeys(value);
 	}
@@ -161,6 +186,6 @@
 		driver.findElement(By.xpath("//div[@id='form_buttons']/input[3]"))
 				.click();
-		driver.findElement(By.xpath("//div[@id='form_buttons']/input[4]"))
-				.click();
+		// driver.findElement(By.xpath("//div[@id='form_buttons']/input[4]"))
+		// .click();
 	}
 
@@ -202,3 +227,8 @@
 	}
 
+	public void selectOutOfOfficeFilterRule() {
+		this.waitForElement(By.id("out_0"));
+		driver.findElement(By.id("out_0")).click();
+	}
+
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/common/Page.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/common/Page.java	(revision 4620)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/common/Page.java	(revision 4780)
@@ -146,11 +146,18 @@
 	 *            Valor a ser selecionado.
 	 */
-	public void setComboValue(WebElement element, String value) {
-		List<WebElement> options = element.findElements(By.tagName("option"));
-		for (WebElement option : options) {
-			if (option.getText().equals(value)) {
-				option.setSelected();
-				return;
-			}
+	public boolean setComboValue(WebElement element, String value) {
+
+		try {
+			List<WebElement> options = element.findElements(By
+					.tagName("option"));
+			for (WebElement option : options) {
+				if (option.getText().equals(value)) {
+					option.setSelected();
+					return true;
+				}
+			}
+		} catch (NoSuchElementException nsee) {
+			System.out.println("Warning: ELEMENTO NAO ENCONTRADO!");
+			return false;
 		}
 
@@ -165,4 +172,5 @@
 			e.printStackTrace();
 		}
+		return false;
 	}
 
@@ -177,3 +185,19 @@
 	}
 
+	/**
+	 * Verifica se um element esta presente na tela.
+	 * 
+	 * @param by
+	 * @return
+	 */
+	public Boolean isElementPresent(By by) {
+		boolean find = true;
+		try {
+			driver.findElement(by);
+		} catch (NoSuchElementException nsee) {
+			find = false;
+		}
+		return find;
+	}
+
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/PesquisaRapidaSemResultadoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/PesquisaRapidaSemResultadoTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/PesquisaRapidaSemResultadoTestCase.java	(revision 4780)
@@ -0,0 +1,40 @@
+package org.expressolivre.cte.email.compor;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.openqa.selenium.Alert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.1] Compor Mensagem
+ * 
+ * Caso de Teste: EL-1096:Utilizar pesquisa rÃ¡pida â pesquisar â Sem resultados
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1096
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 12, 2011 at 10:28:44 AM
+ * 
+ */
+public class PesquisaRapidaSemResultadoTestCase extends BaseEmailTestCase {
+
+	@Test
+	public void pesquisaRapidaSemResultado() {
+		mp.composeEmail("contatoinexistente", "assunto");
+		mp.quickContactSearch();
+
+		// Espera ate a janela de alert aparecer.
+		try {
+			super.dummyWait(5);
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+		Alert alert = driver.switchTo().alert();
+		assert ("Nenhum resultado foi encontrado.".equals(alert.getText()));
+		alert.accept();
+		mp.closeMail(true);
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/EnviarEmailAnexo20MBTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/EnviarEmailAnexo20MBTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/EnviarEmailAnexo20MBTestCase.java	(revision 4780)
@@ -0,0 +1,39 @@
+package org.expressolivre.cte.email.compor;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.expressolivre.cte.pages.email.MailPage;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.1] Compor Mensagem
+ * 
+ * Caso de Teste: EL-540:Enviar mensagem com anexo superior a 20MB
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-540
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 11, 2011 at 4:28:31 PM
+ * 
+ */
+public class EnviarEmailAnexo20MBTestCase extends BaseEmailTestCase {
+
+	/**
+	 * Executa o teste. Envia mensagem para email, assunto, texto e anexo
+	 * pre-definidos no arquivo de configuracao. Apos envio, verifica se o email
+	 * foi movido para a pasta de emails enviados.
+	 */
+	@Test(enabled = false)
+	public void enviarEmailComAnexo() {
+		mp.composeEmail(EMAIL_TESTE_1, EMAIL_ASSUNTO_ANEXO, EMAIL_TEXTO_ANEXO);
+		mp.addAttachment(ANEXO_GRANDE);
+		mp.sendMail();
+		mp.assertMessage(MSG_EMAIL_ENVIADO);
+		Assert.assertNotNull(mp.findEmailIdBySubject(MailPage.SENT_FOLDER,
+				EMAIL_ASSUNTO_ANEXO));
+
+	}
+
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/Compor2Enviar1EmailTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/Compor2Enviar1EmailTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/Compor2Enviar1EmailTestCase.java	(revision 4780)
@@ -0,0 +1,40 @@
+package org.expressolivre.cte.email.compor;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.expressolivre.cte.pages.email.MailPage;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.1] Compor Mensagem
+ * 
+ * Caso de Teste: EL-544:Compor 2 ou mais mensagens e enviar apenas 1
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-544
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 12, 2011 at 9:37:04 PM
+ * 
+ */
+public class Compor2Enviar1EmailTestCase extends BaseEmailTestCase {
+
+	/**
+	 * Executa o teste. Envia mensagem para email, assunto e texto pre-definidos
+	 * no arquivo de configuracao. Apos envio, verifica se o email foi movido
+	 * para a pasta de emails enviados.
+	 */
+	@Test
+	public void compor2EmailsEnviar1Email() {
+		for (int i = 1; i < 3; i++) {
+			mp.composeEmail(i, EMAIL_TESTE_1, "Email id=" + i, EMAIL_TEXTO);
+		}
+		mp.sendMail(2);
+		mp.assertMessage(MSG_EMAIL_ENVIADO);
+		mp.closeMail(true);
+		Assert.assertNotNull(mp.findEmailIdBySubject(MailPage.SENT_FOLDER,
+				"Email id=2"));
+	}
+
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/EnviarEmailMultiplosDestinatariosInvalidoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/EnviarEmailMultiplosDestinatariosInvalidoTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/EnviarEmailMultiplosDestinatariosInvalidoTestCase.java	(revision 4780)
@@ -0,0 +1,37 @@
+package org.expressolivre.cte.email.compor;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.1] Compor Mensagem
+ * 
+ * Caso de Teste: EL-1093:Enviar mensagem para multiplos destinatarios -
+ * caracter invalido
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1093
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 11, 2011 at 4:36:40 AM
+ * 
+ */
+public class EnviarEmailMultiplosDestinatariosInvalidoTestCase extends
+		BaseEmailTestCase {
+
+	/**
+	 * Executa o teste. Envia um email para multiplos destinatarios. Apos envio,
+	 * verifica se o email foi movido para a pasta de emails enviados.
+	 */
+	@Test
+	public void enviarEmailParaMultiplosDestinatarios() {
+		mp.composeEmail(EMAIL_TESTE_N_DESTINATARIOS_INVALIDO,
+				EMAIL_ASSUNTO_MULTIPLOS_DESTINATARIOS,
+				EMAIL_TEXTO_MULTIPLOS_DESTINATARIOS);
+		mp.sendMail();
+		mp.assertMessage(MSG_EMAIL_MULTIPLOS_ANEXOS_INVALIDO);
+		mp.closeMail(true);
+	}
+
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/SempreEnviarEmailComConfirmacaoLeituraTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/SempreEnviarEmailComConfirmacaoLeituraTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/compor/SempreEnviarEmailComConfirmacaoLeituraTestCase.java	(revision 4780)
@@ -0,0 +1,43 @@
+package org.expressolivre.cte.email.compor;
+
+import java.io.IOException;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.expressolivre.cte.pages.email.MailPage;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.1] Compor Mensagem
+ * 
+ * Caso de Teste: EL-523:Sempre enviar mensagem com confirmacao de leitura
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1242
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 7, 2011 at 2:58:08 PM
+ * 
+ */
+public class SempreEnviarEmailComConfirmacaoLeituraTestCase extends
+		BaseEmailTestCase {
+
+	@Test
+	public void sempreEnviarEmailComConfirmacaoLeitura() throws IOException {
+		checkPreference("returnRecipientDefault");
+
+		mp.composeEmail(EMAIL_TESTE_1, EMAIL_ASSUNTO, EMAIL_TEXTO);
+
+		// Check box de confirmacao de leitura deve estar marcado.
+		Boolean checkBox = mp.getReturnReceipt().isSelected();
+
+		mp.sendMail();
+		mp.assertMessage(MSG_EMAIL_ENVIADO);
+		Assert.assertTrue(checkBox);
+		Assert.assertNotNull(mp.findEmailIdBySubject(MailPage.SENT_FOLDER,
+				EMAIL_ASSUNTO));
+
+	}
+
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroForaDoEscritorioTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroForaDoEscritorioTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroForaDoEscritorioTestCase.java	(revision 4780)
@@ -0,0 +1,43 @@
+package org.expressolivre.cte.email.filtro;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.expressolivre.cte.pages.email.MailFilterPage;
+import org.openqa.selenium.Alert;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.7] Gerenciar Filtros
+ * 
+ * Caso de Teste: EL-1112:Editar Filtro fora do escritorio
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1112
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 13, 2011 at 3:07:53 PM
+ * 
+ */
+public class EditarFiltroForaDoEscritorioTestCase extends BaseEmailTestCase {
+
+	@Test
+	public void editarFiltroForaDoEscritorio() {
+		MailFilterPage mfp = mp.editFilter();
+		mfp.editOutOfOfficeFilterRule();
+
+		Assert.assertEquals(EMAIL_MSG_FORA_DO_ESCRITORIO, mfp
+				.getFilterOutOfOfficeText().trim());
+
+		mfp.setFilterOutOfOfficeText("");
+		mfp.saveFilterRules();
+
+		Alert error = driver.switchTo().alert();
+		assert "Mensagem obrigatÃ³ria.".equals(error.getText());
+		error.dismiss();
+
+		mfp.setFilterOutOfOfficeText("NOVA MENSAGEM FORA DO ESCRITORIO:\n BLA BLA BLÃ!");
+		mfp.saveFilterRules();
+
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroPorAssuntoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroPorAssuntoTestCase.java	(revision 4620)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroPorAssuntoTestCase.java	(revision 4780)
@@ -3,4 +3,5 @@
 import org.expressolivre.cte.common.BaseEmailTestCase;
 import org.expressolivre.cte.pages.email.MailFilterPage;
+import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -32,4 +33,8 @@
 		mfp.saveFilterRules();
 
+		Assert.assertEquals(
+				"Status : Habilitada - Se o email tem assunto:NOVO ASSUNTO - AÃ§Ã£o: Arquivar em "
+						+ EMAIL_PASTA_TESTE, mfp.getFilterRuleText("1"));
+
 	}
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/CriarFiltroPorDestinatarioTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/CriarFiltroPorDestinatarioTestCase.java	(revision 4620)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/CriarFiltroPorDestinatarioTestCase.java	(revision 4780)
@@ -3,4 +3,5 @@
 import org.expressolivre.cte.common.BaseEmailTestCase;
 import org.expressolivre.cte.pages.email.MailFilterPage;
+import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -28,4 +29,9 @@
 		mfp.setFilterMailBox(EMAIL_PASTA_TESTE);
 		mfp.saveFilterRules();
+
+		Assert.assertEquals(
+				"Status : Habilitada - Se o email Ã© para:" + EMAIL_REMETENTE
+						+ " - AÃ§Ã£o: Arquivar em " + EMAIL_PASTA_TESTE,
+				mfp.getFilterRuleText("1"));
 	}
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/ExcluirFiltroForaDoEscritorioTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/ExcluirFiltroForaDoEscritorioTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/ExcluirFiltroForaDoEscritorioTestCase.java	(revision 4780)
@@ -0,0 +1,34 @@
+package org.expressolivre.cte.email.filtro;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.expressolivre.cte.pages.email.MailFilterPage;
+import org.openqa.selenium.By;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.7] Gerenciar Filtros
+ * 
+ * Caso de Teste: EL-1264:Excluir filtro fora do escritorio
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1264
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 13, 2011 at 3:19:34 PM
+ * 
+ */
+public class ExcluirFiltroForaDoEscritorioTestCase extends BaseEmailTestCase {
+
+	@Test
+	public void excluirFiltroForaDoEscritorio() throws Exception {
+		MailFilterPage mfp = mp.editFilter();
+		mfp.selectOutOfOfficeFilterRule();
+		mfp.deleteFilters();
+
+		// Garantir que a regra foi excluida e nao aparece na tela.
+		Assert.assertFalse(mfp.isElementPresent(By.id("out_0")));
+	}
+
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/CriarFiltroForaDoEscritorioTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/CriarFiltroForaDoEscritorioTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/CriarFiltroForaDoEscritorioTestCase.java	(revision 4780)
@@ -0,0 +1,38 @@
+package org.expressolivre.cte.email.filtro;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.expressolivre.cte.pages.email.MailFilterPage;
+import org.openqa.selenium.Alert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.7] Gerenciar Filtros
+ * 
+ * Caso de Teste: EL-635:Criar Filtro fora do escritorio
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-635
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 13, 2011 at 2:49:53 PM
+ * 
+ */
+public class CriarFiltroForaDoEscritorioTestCase extends BaseEmailTestCase {
+
+	@Test
+	public void criarFiltroForaDoEscritorio() {
+		MailFilterPage mfp = mp.editFilter();
+		mfp.newFilterOutOfOfficeRule();
+		mfp.saveFilterRules();
+
+		Alert error = driver.switchTo().alert();
+		assert "Mensagem obrigatÃ³ria.".equals(error.getText());
+		error.dismiss();
+
+		mfp.setFilterOutOfOfficeText(EMAIL_MSG_FORA_DO_ESCRITORIO);
+		mfp.saveFilterRules();
+
+		mp.assertMessage(MSG_EMAIL_FILTRO_FORA_ESCRITORIO_ATIVADO);
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/CriarFiltroPorAssuntoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/CriarFiltroPorAssuntoTestCase.java	(revision 4675)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/CriarFiltroPorAssuntoTestCase.java	(revision 4780)
@@ -4,4 +4,5 @@
 import org.expressolivre.cte.pages.email.MailFilterPage;
 import org.openqa.selenium.Alert;
+import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -43,8 +44,8 @@
 		mfp.saveFilterRules();
 
-		assert mfp.getFilterRuleText("1").equals(
-				"Status : Habilitada - Se o email tem assunto:" + EMAIL_ASSUNTO
-						+ " - AÃ§Ã£o: Arquivar em " + EMAIL_PASTA_TESTE);
+		Assert.assertEquals("Status : Habilitada - Se o email tem assunto:"
+				+ EMAIL_ASSUNTO + " - AÃ§Ã£o: Arquivar em " + EMAIL_PASTA_TESTE,
+				mfp.getFilterRuleText("1"));
+
 	}
-
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroPorDestinatarioTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroPorDestinatarioTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroPorDestinatarioTestCase.java	(revision 4780)
@@ -0,0 +1,47 @@
+package org.expressolivre.cte.email.filtro;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.expressolivre.cte.pages.email.MailFilterPage;
+import org.openqa.selenium.Alert;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.7] Gerenciar Filtros
+ * 
+ * Caso de Teste: EL-1108:Editar Filtro por destinatario
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1108
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 13, 2011 at 10:03:53 AM
+ * 
+ */
+public class EditarFiltroPorDestinatarioTestCase extends BaseEmailTestCase {
+
+	@Test
+	public void editarFiltroPorDestinatario() {
+		MailFilterPage mfp = mp.editFilter();
+		mfp.editFilterRule("1");
+
+		assert mfp.getFilterTo().equals(EMAIL_REMETENTE);
+		assert mfp.getFilterArchieveIn().isSelected();
+		assert mfp.getFilterMailBox().equals(EMAIL_PASTA_TESTE);
+
+		mfp.setFilterTo("");
+		mfp.saveFilterRules();
+
+		Alert error = driver.switchTo().alert();
+		assert MSG_EMAIL_INFORMAR_CRITERIO_FILTRO.equals(error.getText());
+		error.dismiss();
+
+		mfp.setFilterTo("NOVO DESTINATARIO");
+		mfp.saveFilterRules();
+
+		Assert.assertEquals(
+				"Status : Habilitada - Se o email Ã© para:NOVO DESTINATARIO - AÃ§Ã£o: Arquivar em "
+						+ EMAIL_PASTA_TESTE, mfp.getFilterRuleText("1"));
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroPorRemetenteTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroPorRemetenteTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/filtro/EditarFiltroPorRemetenteTestCase.java	(revision 4780)
@@ -0,0 +1,45 @@
+package org.expressolivre.cte.email.filtro;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.expressolivre.cte.pages.email.MailFilterPage;
+import org.openqa.selenium.Alert;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.7] Gerenciar Filtros
+ * 
+ * Caso de Teste: EL-1107:Editar Filtro por remetente
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1107
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 13, 2011 at 9:52:53 AM
+ * 
+ */
+public class EditarFiltroPorRemetenteTestCase extends BaseEmailTestCase {
+
+	@Test
+	public void editarFiltroPorRemetente() {
+		MailFilterPage mfp = mp.editFilter();
+		// Ver o arquivo GerenciarFiltros.xml. Esse eh o terceiro filtro criado.
+		mfp.editFilterRule("3");
+
+		Assert.assertEquals(EMAIL_REMETENTE, mfp.getFilterRecepient());
+		Assert.assertTrue(mfp.getFilterArchieveIn().isSelected());
+		Assert.assertEquals(EMAIL_PASTA_TESTE, mfp.getFilterMailBox());
+
+		mfp.setFilterRecepient("");
+		mfp.saveFilterRules();
+
+		Alert error = driver.switchTo().alert();
+		Assert.assertEquals(error.getText(), MSG_EMAIL_INFORMAR_CRITERIO_FILTRO);
+		error.dismiss();
+
+		mfp.setFilterRecepient("NOVO REMETENTE");
+		mfp.saveFilterRules();
+
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/MailPreferencesTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/MailPreferencesTestCase.java	(revision 4675)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/MailPreferencesTestCase.java	(revision 4780)
@@ -1,4 +1,5 @@
 package org.expressolivre.cte.email;
 
+import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -7,4 +8,5 @@
 import org.expressolivre.cte.common.BaseTestCase;
 import org.expressolivre.cte.common.Config;
+import org.expressolivre.cte.common.IOUtil;
 import org.expressolivre.cte.pages.email.MailPreferencesPage;
 import org.testng.annotations.Parameters;
@@ -26,10 +28,14 @@
 	 * @throws IllegalAccessException
 	 * @throws InvocationTargetException
+	 * @throws IOException
 	 */
 	@Test
 	public void setAllPreferences() throws IllegalArgumentException,
-			IllegalAccessException, InvocationTargetException {
+			IllegalAccessException, InvocationTargetException, IOException {
 		openPreferencesPage();
 		MailPreferencesPage prefs = openEmailPreferencesPage();
+
+		// Clean up the preferences file.
+		IOUtil.writeFile("temppref.txt", "", false);
 
 		// Percorre todos os metodos "setters" da classe
@@ -52,5 +58,17 @@
 							.getEmailPreference(name).split(",");
 					System.out.println(name + " " + values[0]);
-					method.invoke(prefs, values[0]);
+
+					// Grava apenas as preferencias que o usuario tem disponivel
+					// e foram setadas em um arquivo para posterior uso em casos
+					// de teste.
+					Object response = method.invoke(prefs, values[0]);
+					if (response != null) {
+						if ((Boolean) response) {
+							IOUtil.writeFile(
+									"temppref.txt",
+									name + System.getProperty("line.separator"),
+									true);
+						}
+					}
 				}
 			}
@@ -77,3 +95,12 @@
 	}
 
+	@Test
+	@Parameters({ "returnRecipientDefault" })
+	public void setReturnRecipientDefault(String returnRecipientDefault) {
+		openPreferencesPage();
+		MailPreferencesPage prefs = openEmailPreferencesPage();
+		prefs.setReturnRecipientDefault(returnRecipientDefault);
+		prefs.savePreferences();
+	}
+
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/ler/RemoverAnexoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/ler/RemoverAnexoTestCase.java	(revision 4606)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/ler/RemoverAnexoTestCase.java	(revision 4780)
@@ -1,3 +1,5 @@
 package org.expressolivre.cte.email.ler;
+
+import java.io.IOException;
 
 import org.expressolivre.cte.common.BaseEmailTestCase;
@@ -26,7 +28,10 @@
 	 * Executa o teste. Apenas procura o email previamente enviado e tenta
 	 * abrir.
+	 * 
+	 * @throws IOException
 	 */
 	@Test
-	public void removerAnexo() {
+	public void removerAnexo() throws IOException {
+		checkPreference("removeAttachmentsFunction");
 		String id = mp.readEmail(EMAIL_ASSUNTO_ANEXO);
 		mp.showDetails(id);
@@ -34,4 +39,3 @@
 		mp.assertMessage(MSG_REMOVER_ANEXOS);
 	}
-
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/ler/LerEmailImportanteTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/ler/LerEmailImportanteTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/ler/LerEmailImportanteTestCase.java	(revision 4780)
@@ -0,0 +1,33 @@
+package org.expressolivre.cte.email.ler;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.2] Ler mensagem important
+ * 
+ * Caso de Teste: EL-1144:Ler mensagem selecionada
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1144
+ * 
+ * @see org.expressolivre.cte.email.compor.EnviarEmailTestCase
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 12, 2011 at 2:25:55 PM
+ * 
+ */
+public class LerEmailImportanteTestCase extends BaseEmailTestCase {
+
+	/**
+	 * Executa o teste. Apenas procura o email previamente enviado e tenta
+	 * abrir.
+	 */
+	@Test
+	public void lerEmailImportante() {
+		mp.readEmail(EMAIL_ASSUNTO_IMPORTANTE);
+		mp.setNormalFlag();
+		mp.assertMessage(MSG_EMAIL_NORMAL_IMPORTANTE);
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/pastas/ApagarSubPastaTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/pastas/ApagarSubPastaTestCase.java	(revision 4675)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/pastas/ApagarSubPastaTestCase.java	(revision 4780)
@@ -3,5 +3,4 @@
 import org.expressolivre.cte.common.BaseEmailTestCase;
 import org.expressolivre.cte.pages.email.MailFolderPage;
-import org.openqa.selenium.Alert;
 import org.testng.annotations.Test;
 
@@ -9,5 +8,5 @@
  * Suite:[FUN02.6] Gerenciar Pastas
  * 
- * Caso de Teste: EL-1262:Excluir subpasta 
+ * Caso de Teste: EL-1262:Excluir subpasta
  * 
  * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
@@ -24,5 +23,4 @@
 public class ApagarSubPastaTestCase extends BaseEmailTestCase {
 
-
 	@Test
 	public void deleteSubFolder() {
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/pesquisar/PesquisarEmailPalavraChaveEApagarTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/pesquisar/PesquisarEmailPalavraChaveEApagarTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/pesquisar/PesquisarEmailPalavraChaveEApagarTestCase.java	(revision 4780)
@@ -0,0 +1,41 @@
+package org.expressolivre.cte.email.pesquisar;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.expressolivre.cte.common.Config;
+import org.openqa.selenium.By;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.8] Pesquisar Mensagens
+ * 
+ * Caso de Teste: EL-617:Pesquisa rapida de mensagens
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-617
+ * 
+ * Link: http://trac.expressolivre.org/ticket/2071
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 08, 2011 at 3:17:10 PM
+ * 
+ */
+public class PesquisarEmailPalavraChaveEApagarTestCase extends
+		BaseEmailTestCase {
+
+	@Test
+	public void pesquisaEmailPalavraChaveEApagar() {
+		mp.setSearchBox(EMAIL_ASSUNTO);
+		mp.searchStart();
+
+		// 1 na pasta enviados e 1 na caixa de entrada.
+		mp.assertMessage(Config.getInstance().getMensagem("resultado.pesquisa",
+				"2"));
+
+		mp.clickElement(By
+				.xpath("//div[@id='exmail_main_body']/div[@id='content_id_search_1']/div[@id='divScrollMain_1']/table[1]/tbody[1]/tr[1]/td[6]"));
+		mp.waitLoading();
+		mp.deleteEmail();
+		mp.assertMessage(MSG_EMAIL_APAGAR_MENSAGENS);
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/ImportarArquivoCampoObrigatorioTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/ImportarArquivoCampoObrigatorioTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/ImportarArquivoCampoObrigatorioTestCase.java	(revision 4780)
@@ -0,0 +1,33 @@
+package org.expressolivre.cte.email.listar;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.openqa.selenium.Alert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.3] Listar Mensagem
+ * 
+ * Caso de Teste: EL-1154:Importar arquivo - Campo obrigatorio
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1154
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 12, 2011 at 3:42:25 PM
+ * 
+ */
+public class ImportarArquivoCampoObrigatorioTestCase extends BaseEmailTestCase {
+
+	@Test
+	public void importarArquivoCampoObrigatorio() {
+		mp.importEmail();
+		mp.importSelectFolder();
+
+		Alert alert = driver.switchTo().alert();
+		assert ("ExtensÃ£o de arquivo proibido ou arquivo invÃ¡lido."
+				.equals(alert.getText()));
+		alert.accept();
+
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/MoverEmailSelecionadoParaMesmaPastaTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/MoverEmailSelecionadoParaMesmaPastaTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/MoverEmailSelecionadoParaMesmaPastaTestCase.java	(revision 4780)
@@ -0,0 +1,28 @@
+package org.expressolivre.cte.email.listar;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.3] Listar Mensagem
+ * 
+ * Caso de Teste: EL-1149:Mover mensagem para mesma pasta
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1149
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 12, 2011 at 2:32:01 PM
+ * 
+ */
+public class MoverEmailSelecionadoParaMesmaPastaTestCase extends
+		BaseEmailTestCase {
+
+	@Test
+	public void moverEmailSelecionadoParaMesmaPasta() {
+		mp.findEmailIdBySuject(EMAIL_ASSUNTO, true);
+		mp.moveEmail("lINBOXwfolders_tree");
+		mp.assertMessage(MSG_EMAIL_MOVER_MESMA_PASTA);
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/MoverEmailSelecionadoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/MoverEmailSelecionadoTestCase.java	(revision 4627)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/MoverEmailSelecionadoTestCase.java	(revision 4780)
@@ -34,5 +34,5 @@
 		// Procura o email e move a mensagem para pasta de teste criada.
 		mp.findEmailIdBySuject(EMAIL_ASSUNTO, true);
-		mp.moveEmail(EMAIL_PASTA_TESTE);
+		mp.moveEmail("lINBOX/" + EMAIL_PASTA_TESTE + "wfolders_tree");
 		mp.assertMessage(MSG_EMAIL_MOVIDO);
 
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/ApagarMais2EmailsSelecionadosTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/ApagarMais2EmailsSelecionadosTestCase.java	(revision 4780)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/listar/ApagarMais2EmailsSelecionadosTestCase.java	(revision 4780)
@@ -0,0 +1,48 @@
+package org.expressolivre.cte.email.listar;
+
+import org.expressolivre.cte.common.BaseEmailTestCase;
+import org.openqa.selenium.By;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN02.3] Listar Mensagem
+ * 
+ * Caso de Teste: EL-581:Apagar 2 ou mais mensagens
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-581
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Jul 12, 2011 at 2:44:40 AM
+ * 
+ */
+public class ApagarMais2EmailsSelecionadosTestCase extends BaseEmailTestCase {
+
+	@Test
+	public void enviarMultiplosEmails() throws Exception {
+		// Envia 4 emails.
+		for (int i = 1; i < 5; i++) {
+			mp.composeEmail(EMAIL_TESTE_1, "Email id=" + i, EMAIL_TEXTO);
+			mp.sendMail();
+			mp.waitLoading();
+			// Espera a mensagem "email enviado" desaparecer antes de criar o
+			// proximo email.
+			mp.isNotDisplayed(mp.waitFindElement(By.id("em_div_write_msg"),
+					5000, 1000));
+		}
+	}
+
+	@Test(dependsOnMethods = { "enviarMultiplosEmails" })
+	public void apagarMaisDe2Emails() {
+
+		// Seleciona o segundo e o terceiro.
+		for (int i = 2; i < 4; i++) {
+			mp.findEmailIdBySuject("Email id=" + i, true);
+		}
+
+		// Apaga apenas emails selecionados.
+		mp.deleteEmail();
+		mp.assertMessage(MSG_EMAIL_APAGAR_MENSAGENS);
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/IOUtil.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/IOUtil.java	(revision 4344)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/IOUtil.java	(revision 4780)
@@ -1,6 +1,8 @@
 package org.expressolivre.cte.common;
 
+import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileReader;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
@@ -16,4 +18,27 @@
  */
 public class IOUtil {
+
+	/**
+	 * Open and write contents to a file.
+	 * 
+	 * @param fileName
+	 *            the name of the file.
+	 * @param contents
+	 *            contents to be written.
+	 * @param append
+	 *            if <code>true</code> contents will be appended to previous
+	 *            contents of the file. If <code>false</code> a brand new file
+	 *            is created to write the contents.
+	 * @throws IOException
+	 *             Thrown whenever a problem in the underlying file system
+	 *             happens.
+	 */
+	public static void writeFile(String fileName, String contents,
+			Boolean append) throws IOException {
+		BufferedWriter out = new BufferedWriter(
+				new FileWriter(fileName, append));
+		out.write(contents);
+		out.close();
+	}
 
 	/**
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/BaseTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/BaseTestCase.java	(revision 4627)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/BaseTestCase.java	(revision 4780)
@@ -1,3 +1,5 @@
 package org.expressolivre.cte.common;
+
+import java.io.IOException;
 
 import org.expressolivre.cte.pages.common.LoginPage;
@@ -9,4 +11,5 @@
 import org.openqa.selenium.firefox.FirefoxDriver;
 import org.openqa.selenium.support.PageFactory;
+import org.testng.SkipException;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.AfterSuite;
@@ -114,4 +117,25 @@
 
 	/**
+	 * Verifica a presenca de uma preferencia.
+	 * 
+	 * @param preference
+	 *            Preferencia a verificar
+	 * @throws IOException
+	 *             Problema ao ler arquivo temporario das preferencias
+	 * @throws SkipException
+	 *             Se a preferencia procurada nao existir, o caso de teste nao
+	 *             deve ser executado pois a funcionalidade referente nao esta
+	 *             disponivel na configuracao.
+	 */
+	public void checkPreference(String preference) throws IOException,
+			SkipException {
+		String contents = IOUtil.readFully("temppref.txt");
+		if (!contents.contains(preference)) {
+			throw new SkipException("TESTE NÃO EXECUTADO. PreferÃªncia "
+					+ preference + " nÃ£o estÃ¡ disponÃ­vel");
+		}
+	}
+
+	/**
 	 * TODO Rever esse metodo. Foi o unico jeito que consegui fazer pegar o
 	 * numero total de mensagens importantes. O metodo apenas aguarda 5 segundos
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/Constants.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/Constants.java	(revision 4606)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/Constants.java	(revision 4780)
@@ -21,12 +21,14 @@
 	public static final String PASS = Config.getInstance().getConfig("passwd");
 
-	public static final String EMAIL_TESTE_1 = Config.getInstance().getValor(
-			"email.teste.1");
-	public static final String EMAIL_TESTE_2 = Config.getInstance().getValor(
-			"email.teste.2");
-	public static final String EMAIL_REMETENTE = Config.getInstance().getValor(
-			"email.remetente");
+	public static final String EMAIL_TESTE_1 = Config.getInstance().getConfig(
+			"config.email.teste.1");
+	public static final String EMAIL_TESTE_2 = Config.getInstance().getConfig(
+			"config.email.teste.2");
+	public static final String EMAIL_REMETENTE = Config.getInstance()
+			.getConfig("config.email.remetente");
 	public static final String EMAIL_TESTE_N_DESTINATARIOS = Config
-			.getInstance().getValor("email.teste.multiplos");
+			.getInstance().getConfig("config.email.teste.multiplos");
+	public static final String EMAIL_TESTE_N_DESTINATARIOS_INVALIDO = Config
+			.getInstance().getConfig("config.email.teste.multiplos.invalido");
 	public static final String EMAIL_INVALIDO = Config.getInstance().getValor(
 			"email.invalido");
@@ -62,4 +64,7 @@
 			.getValor("assunto.confirmacao.leitura");
 
+	public static final String EMAIL_MSG_FORA_DO_ESCRITORIO = Config
+			.getInstance().getValor("filtro.fora.escritorio");
+
 	public static final String EMAIL_TEXTO = Config.getInstance().getValor(
 			"texto.email");
@@ -94,8 +99,10 @@
 	public static final String EMAIL_PASTA_TESTE2 = Config.getInstance()
 			.getValor("email.pasta.teste2");
-	public static final String ANEXO_1 = Config.getInstance().getValor(
-			"anexo.1");
-	public static final String ANEXO_2 = Config.getInstance().getValor(
-			"anexo.2");
+	public static final String ANEXO_1 = Config.getInstance().getConfig(
+			"config.email.anexo.1");
+	public static final String ANEXO_2 = Config.getInstance().getConfig(
+			"config.email.anexo.2");
+	public static final String ANEXO_GRANDE = Config.getInstance().getConfig(
+			"config.email.anexo.grande");
 
 	public static final String MSG_EMAIL_ENVIADO = Config.getInstance()
@@ -143,4 +150,14 @@
 	public static final String MSG_EMAIL_SEM_FILTRO_PESQUISA = Config
 			.getInstance().getMensagem("sem.filtro.pesquisa");
+	public static final String MSG_EMAIL_MULTIPLOS_ANEXOS_INVALIDO = Config
+			.getInstance().getMensagem("multiplos.anexos.invalido");
+	public static final String MSG_EMAIL_NORMAL_IMPORTANTE = Config
+			.getInstance().getMensagem("marcar.normal.email.importante");
+	public static final String MSG_EMAIL_MOVER_MESMA_PASTA = Config
+			.getInstance().getMensagem("mover.mensagem.mesma.pasta");
+	public static final String MSG_EMAIL_INFORMAR_CRITERIO_FILTRO = Config
+			.getInstance().getMensagem("informar.criterio.filtro");
+	public static final String MSG_EMAIL_FILTRO_FORA_ESCRITORIO_ATIVADO = Config
+			.getInstance().getMensagem("filtro.fora.escritorio.ativado");
 
 }
Index: /devel/testlink/automation2.0/src/test/resources/config.properties
===================================================================
--- /devel/testlink/automation2.0/src/test/resources/config.properties	(revision 4675)
+++ /devel/testlink/automation2.0/src/test/resources/config.properties	(revision 4780)
@@ -28,2 +28,17 @@
 #config.email=email.preferences_comunidade_cte.properties
 config.email.admin=email.admin.preferences.properties
+
+# Email que será utilizado para receber as mensagens enviadas pelos casos de teste
+config.email.teste.1=luiz-fernando.estivalet@serpro.gov.br
+# Email que será utilizado para receber as mensagens enviadas pelos casos de teste de cópia, cópia oculta
+config.email.teste.2=luiz-fernando.estivalet@serpro.gov.br
+config.email.remetente=Luiz Fernando Estivalet
+# Email que será utilizado para receber as mensagens enviadas pelos casos de teste de para envio de múltiplos destinatários
+config.email.teste.multiplos=luiz-fernando.estivalet@serpro.gov.br, luiz-fernando.estivalet@serpro.gov.br
+config.email.teste.multiplos.invalido=luiz-fernando.estivalet@serpro.gov.br; luiz-fernando.estivalet@serpro.gov.br
+
+# Arquivo utilizado pelo caso de teste enviar com anexo. O arquivo deve existir na máquina que está rodando os casos de teste automatizados
+config.email.anexo.1=/home/luiz/Desktop/arquivo.txt
+# Arquivo utilizado pelo caso de teste enviar com múltiplos anexos. O arquivo deve existir na máquina que está rodando os casos de teste automatizados
+config.email.anexo.2=/home/luiz/Desktop/arquivo2.txt
+config.email.anexo.grande=/home/luiz/Desktop/selenium-remote-control-1.0.3.zip
Index: /devel/testlink/automation2.0/src/test/resources/valores.properties
===================================================================
--- /devel/testlink/automation2.0/src/test/resources/valores.properties	(revision 4627)
+++ /devel/testlink/automation2.0/src/test/resources/valores.properties	(revision 4780)
@@ -2,26 +2,11 @@
 #
 # Descricao: Valores para preenchimento de campos utilizados pelos casos de teste.
-# 
+#            Esse arquivo nao deve ser alterado. Se precisar alterar algum valor 
+#            de propriedade, este deve ser feito no config.properties.
 
-# Email que será utilizado para receber as mensagens enviadas pelos casos de teste
-email.teste.1=luiz-fernando.estivalet@cte.serpro.gov.br
-email.teste.1=luiz-fernando.estivalet@serpro.gov.br
-# Email que será utilizado para receber as mensagens enviadas pelos casos de teste de cópia, cópia oculta
-email.teste.2=luiz.f.estivalet@gmail.com
-email.teste.2=luiz-fernando.estivalet@serpro.gov.br
-# Email que será utilizado para receber as mensagens enviadas pelos casos de teste de cópia, cópia oculta
-email.teste.3=luizfernando_estivalet@yahoo.com
-email.teste.3=luiz-fernando.estivalet@serpro.gov.br
 email.invalido=bla
-email.remetente=Luiz Fernando Estivalet
-# Email que será utilizado para receber as mensagens enviadas pelos casos de teste de para envio de múltiplos destinatários
-email.teste.multiplos=luiz-fernando.estivalet@serpro.gov.br, luizfernando_estivalet@yahoo.com
-email.teste.multiplos=luiz-fernando.estivalet@serpro.gov.br, luiz-fernando.estivalet@serpro.gov.br
 email.pasta.teste=Selenium
 email.pasta.teste2=Webdriver
-# Arquivo utilizado pelo caso de teste enviar com anexo. O arquivo deve existir na máquina que está rodando os casos de teste automatizados
-anexo.1=/home/luiz/Desktop/arquivo.txt
-# Arquivo utilizado pelo caso de teste enviar com múltiplos anexos. O arquivo deve existir na máquina que está rodando os casos de teste automatizados
-anexo.2=/home/luiz/Desktop/arquivo2.txt
+
 assunto=[SELENIUM] Teste envio mensagem
 assunto.acento=[SELENIUM] Teste com acento áéíóúçãüõ
@@ -41,4 +26,5 @@
 assunto.somente.copia=[SELENIUM] Teste envio mensagem somente cópia
 assunto.somente.copia.oculta=[SELENIUM] Teste mensagem somente cópia oculta
+
 texto.email=<p>Email enviado a partir do Selenium!</p><p>Favor ignorar!</p>
 texto.email.confirmacao.leitura=<p>Email enviado a partir do Selenium!</p><p>Teste de confirmação de leitura</p><p>Favor ignorar!</p>
@@ -55,2 +41,4 @@
 texto.email.salvo.somente.copia.oculta=<p>Email enviado a partir do Selenium!</p><p>Teste para salvar um email na pasta rascunhos usando o campo somente o campo cópia oculta.</p><p>Favor ignorar!</p>
 texto.email.anexo=<p>Email enviado a partir do Selenium!</p><p>Teste de anexo</p><p>Favor ignorar!</p>
+
+filtro.fora.escritorio=Estou de férias. Retorno sua mensagem assim que possível.
Index: /devel/testlink/automation2.0/src/test/resources/mensagens.properties
===================================================================
--- /devel/testlink/automation2.0/src/test/resources/mensagens.properties	(revision 4606)
+++ /devel/testlink/automation2.0/src/test/resources/mensagens.properties	(revision 4780)
@@ -29,2 +29,7 @@
 resultado.pesquisa={0} resultados encontrados
 sem.filtro.pesquisa=Defina alguns parâmetros para a busca!
+multiplos.anexos.invalido=Erro de SMTP: Os endereços de destinatário a seguir falharam: UNEXPECTED_DATA_AFTER_ADDRESS@.SYNTAX-ERROR.
+marcar.normal.email.importante=Esta mensagem não pode ser marcada como normal
+mover.mensagem.mesma.pasta=A pasta de origem e de destino são as mesmas.
+informar.criterio.filtro=Defina algum critério para os campos Remetente, Para, Assunto e Tamanho da mensagem com mais de 3 caracteres!
+filtro.fora.escritorio.ativado=ATENÇÃO: você está com filtro para \"fora de escritório\" ativado.
Index: /devel/testlink/automation2.0/src/test/resources/email.preferences_serpro.properties
===================================================================
--- /devel/testlink/automation2.0/src/test/resources/email.preferences_serpro.properties	(revision 4675)
+++ /devel/testlink/automation2.0/src/test/resources/email.preferences_serpro.properties	(revision 4780)
@@ -30,4 +30,5 @@
 useShortcuts=usar o padrão
 autoSaveDraft=usar o padrão
+returnRecipientDefault=usar o padrão
 #timezone=usar o padrão
 quickSearchDefault=usar o padrão
Index: /devel/testlink/automation2.0/[FUN02.1] - ComporMensagem.xml
===================================================================
--- /devel/testlink/automation2.0/[FUN02.1] - ComporMensagem.xml	(revision 4675)
+++ /devel/testlink/automation2.0/[FUN02.1] - ComporMensagem.xml	(revision 4780)
@@ -37,4 +37,5 @@
 		<classes>
 			<class name="org.expressolivre.cte.email.compor.EnviarEmailTestCase" />
+			<class name="org.expressolivre.cte.email.compor.Compor2Enviar1EmailTestCase" />
 			<class name="org.expressolivre.cte.email.compor.EnviarEmailAcentoAssuntoTestCase" />
 			<class name="org.expressolivre.cte.email.compor.EnviarEmailCorpo100TestCase" />
@@ -46,4 +47,5 @@
 			<class name="org.expressolivre.cte.email.compor.EnviarEmailMultiplosAnexosTestCase" />
 			<class name="org.expressolivre.cte.email.compor.EnviarEmailMultiplosDestinatariosTestCase" />
+			<class name="org.expressolivre.cte.email.compor.EnviarEmailMultiplosDestinatariosInvalidoTestCase" />
 			<class name="org.expressolivre.cte.email.compor.EnviarEmailSemAssuntoTestCase" />
 			<class name="org.expressolivre.cte.email.compor.EnviarEmailSemAssuntoRejeitarTestCase" />
@@ -57,4 +59,28 @@
 			<class name="org.expressolivre.cte.email.compor.DescartarEmailDescartarTestCase" />
 			<class name="org.expressolivre.cte.email.compor.DescartarEmailSalvarTestCase" />
+			<class name="org.expressolivre.cte.email.compor.PesquisaRapidaSemResultadoTestCase" />
+		</classes>
+	</test>
+
+	<test name="Enviar email com confirmacao de leitura" preserve-order="true">
+		<parameter name="returnRecipientDefault"  value="Sim"/>
+		<classes>
+			<class name="org.expressolivre.cte.email.MailPreferencesTestCase">
+				<methods>
+					<include name="setReturnRecipientDefault"></include>
+				</methods>
+			</class>
+			<class name="org.expressolivre.cte.email.compor.SempreEnviarEmailComConfirmacaoLeituraTestCase" />
+		</classes>
+	</test>
+
+	<test name="Restaurar flag sempre confirmacao de leitura" preserve-order="true">
+		<parameter name="returnRecipientDefault"  value="usar o padrÃ£o"/>
+		<classes>
+			<class name="org.expressolivre.cte.email.MailPreferencesTestCase">
+				<methods>
+					<include name="setReturnRecipientDefault"></include>
+				</methods>
+			</class>
 		</classes>
 	</test>
Index: /devel/testlink/automation2.0/[FUN02.3] - ListarMensagem.xml
===================================================================
--- /devel/testlink/automation2.0/[FUN02.3] - ListarMensagem.xml	(revision 4675)
+++ /devel/testlink/automation2.0/[FUN02.3] - ListarMensagem.xml	(revision 4780)
@@ -7,4 +7,5 @@
 		<classes>
 			<class name="org.expressolivre.cte.email.compor.EnviarEmailTestCase" />
+			<class name="org.expressolivre.cte.email.listar.MoverEmailSelecionadoParaMesmaPastaTestCase" />
 			<class name="org.expressolivre.cte.email.listar.MoverEmailSelecionadoTestCase" />
 		</classes>
@@ -75,5 +76,9 @@
 	</test>
 
-
+	<test name="Apagar multiplos emails selecionados" preserve-order="true">
+		<classes>
+			<class name="org.expressolivre.cte.email.listar.ApagarMais2EmailsSelecionadosTestCase" />
+		</classes>
+	</test>
 
 	<test name="Exportar email" preserve-order="true">
@@ -83,4 +88,5 @@
 			<class name="org.expressolivre.cte.email.listar.ExportarEmailSelecionadoTestCase" />
 			<class name="org.expressolivre.cte.email.listar.ExportarEmailNaoSelecionadoTestCase" />
+			<class name="org.expressolivre.cte.email.listar.ImportarArquivoCampoObrigatorioTestCase" />
 			<class name="org.expressolivre.cte.email.listar.ApagarTodosEmailsTestCase" />
 		</classes>
Index: /devel/testlink/automation2.0/Preferences.xml
===================================================================
--- /devel/testlink/automation2.0/Preferences.xml	(revision 4780)
+++ /devel/testlink/automation2.0/Preferences.xml	(revision 4780)
@@ -0,0 +1,15 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
+  
+<suite name="Preferencias" >
+
+	<test name="Mudar preferencia para padrao" preserve-order="true">
+		<classes>
+			<class name="org.expressolivre.cte.email.MailPreferencesTestCase">
+				<methods>
+					<include name="setAllPreferences"></include>
+				</methods>
+			</class>
+		</classes>
+	</test>
+
+</suite>
Index: /devel/testlink/automation2.0/temppref.txt
===================================================================
--- /devel/testlink/automation2.0/temppref.txt	(revision 4780)
+++ /devel/testlink/automation2.0/temppref.txt	(revision 4780)
@@ -0,0 +1,2 @@
+returnRecipientDefault
+useSpellChecker
Index: /devel/testlink/automation2.0/[FUN02.2] - LerMensagem.xml
===================================================================
--- /devel/testlink/automation2.0/[FUN02.2] - LerMensagem.xml	(revision 4675)
+++ /devel/testlink/automation2.0/[FUN02.2] - LerMensagem.xml	(revision 4780)
@@ -51,4 +51,30 @@
 	</test>
 
+	<test name="Ler email importante" preserve-order="true">
+		<parameter name="useImportantFlag"  value="Sim"/>
+		<classes>
+			<class name="org.expressolivre.cte.email.MailPreferencesTestCase">
+				<methods>
+					<include name="setImportantFlag"></include>
+				</methods>
+			</class>
+			<class name="org.expressolivre.cte.email.compor.EnviarEmailImportanteTestCase" />
+			<class name="org.expressolivre.cte.email.ler.LerEmailImportanteTestCase" />
+		</classes>
+	</test>
+
+	<test name="Voltar flag importante para o padrao" preserve-order="true">
+		<parameter name="useImportantFlag"  value="usar o padrÃ£o"/>
+		<classes>
+			<class name="org.expressolivre.cte.email.MailPreferencesTestCase">
+				<methods>
+					<include name="setImportantFlag"></include>
+				</methods>
+			</class>
+		</classes>
+	</test>
+
+
+
 	<test name="Apagar emails recebidos" preserve-order="true">
 		<parameter name="folder" value="lINBOXtree_folders"/>
Index: /devel/testlink/automation2.0/[FUN02.8] - PesquisarMensagem.xml
===================================================================
--- /devel/testlink/automation2.0/[FUN02.8] - PesquisarMensagem.xml	(revision 4675)
+++ /devel/testlink/automation2.0/[FUN02.8] - PesquisarMensagem.xml	(revision 4780)
@@ -147,4 +147,5 @@
 			<class name="org.expressolivre.cte.email.compor.EnviarEmailTestCase"/>
 			<class name="org.expressolivre.cte.email.pesquisar.PesquisarEmailPalavraChaveTestCase"/>
+			<class name="org.expressolivre.cte.email.pesquisar.PesquisarEmailPalavraChaveEApagarTestCase" />
 		</classes>
 	</test>	
