Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/common/HomePage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/common/HomePage.java	(revision 4895)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/common/HomePage.java	(revision 4917)
@@ -1,4 +1,5 @@
 package org.expressolivre.cte.pages.common;
 
+import org.expressolivre.cte.common.Config;
 import org.openqa.selenium.By;
 import org.openqa.selenium.WebDriver;
@@ -16,7 +17,4 @@
 	private WebElement mail;
 
-	@FindBy(id = "calendarid")
-	private WebElement calendar;
-
 	/**
 	 * @param driver
@@ -26,4 +24,7 @@
 	}
 
+	/**
+	 * Entrar no modulo de email atraves do clique no icone.
+	 */
 	public void enterMail() {
 		mail.click();
@@ -32,7 +33,9 @@
 	}
 
+	/**
+	 * Entra no modulo da agenda atraves da url "/calendar".
+	 */
 	public void enterCalendar() {
-		waitForElement(By.id("calendarid"));
-		calendar.click();
+		driver.get(Config.getInstance().getConfig("url") + "/calendar/");
 		waitForElement(By.id("divAppbox"));
 	}
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 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/common/Page.java	(revision 4917)
@@ -228,3 +228,15 @@
 		return pageSource.contains(text);
 	}
+
+	/**
+	 * Gets the Xpath count for a given locator
+	 * 
+	 * @param sLocator
+	 *            The XPath you want to count
+	 * @return int XPath Count
+	 */
+	public int getXPathCount(String sLocator) {
+		return driver.findElements(By.xpath(sLocator)).size();
+
+	}
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/EditAppointmentCategoryPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/EditAppointmentCategoryPage.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/EditAppointmentCategoryPage.java	(revision 4917)
@@ -0,0 +1,18 @@
+package org.expressolivre.cte.pages.calendar;
+
+import org.openqa.selenium.WebDriver;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 11, 2011 at 9:41:12 AM
+ * 
+ */
+public class EditAppointmentCategoryPage extends AddAppointmentCategoryPage {
+
+	public EditAppointmentCategoryPage(WebDriver driver) {
+		super(driver);
+		// TODO Auto-generated constructor stub
+	}
+
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentSearchResultPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentSearchResultPage.java	(revision 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentSearchResultPage.java	(revision 4917)
@@ -68,5 +68,5 @@
 	 * @return
 	 */
-	public AppointmentViewPage editAppointment(int row) {
+	public AppointmentViewPage viewAppointment(int row) {
 		super.findAndClickElement(By
 				.xpath("//table[@id='calendar_search_table']/tbody/tr["
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AddAppointmentCategoryPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AddAppointmentCategoryPage.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AddAppointmentCategoryPage.java	(revision 4917)
@@ -0,0 +1,122 @@
+package org.expressolivre.cte.pages.calendar;
+
+import org.expressolivre.cte.pages.common.Page;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 10, 2011 at 1:56:27 PM
+ * 
+ */
+public class AddAppointmentCategoryPage extends Page {
+
+	/** Combo para escolher categoria pai. */
+	@FindBy(name = "new_parent")
+	private WebElement parentCategory;
+
+	/** Nome da categoria. */
+	@FindBy(name = "cat_name")
+	private WebElement categoryName;
+
+	/** Descricao da categoria. */
+	@FindBy(name = "cat_description")
+	private WebElement categoryDescription;
+
+	/** Categoria privada. */
+	@FindBy(name = "cat_access")
+	private WebElement privateCategory;
+
+	/** Botao para salvar a categoria. */
+	@FindBy(name = "save")
+	private WebElement saveCategory;
+
+	/** Mensagem de erro ao tentar salvar uma categoria. */
+	@FindBy(xpath = "//table[@id='tableDivAppbox']/tbody/tr/td/center/table[1]/tbody/tr/td[2]")
+	private WebElement errorMessage;
+
+	/**
+	 * @param driver
+	 */
+	public AddAppointmentCategoryPage(WebDriver driver) {
+		super(driver);
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * @param parent
+	 */
+	public void setParentCategory(String parent) {
+		super.setComboValue(parentCategory, parent);
+	}
+
+	/**
+	 * Seta o nome da categoria.
+	 * 
+	 * @param name
+	 *            Nome da categoria a setar.
+	 */
+	public void setCategoryName(String name) {
+		this.categoryName.clear();
+		this.categoryName.sendKeys(name);
+	}
+
+	/**
+	 * @return
+	 */
+	public String getCategoryName() {
+		return this.categoryName.getValue();
+	}
+
+	/**
+	 * Seta a descricao da categoria.
+	 * 
+	 * @param description
+	 *            Descricao da categoria a setar.
+	 */
+	public void setCategoryDescription(String description) {
+		this.categoryDescription.clear();
+		this.categoryDescription.sendKeys(description);
+	}
+
+	/**
+	 * @return
+	 */
+	public String getCategoryDescription() {
+		return this.categoryDescription.getValue();
+	}
+
+	/**
+	 * Torna a categoria privada ou nao.
+	 */
+	public void setPrivateAccess(Boolean privateCategory) {
+		if (privateCategory && !this.privateCategory.isSelected()) {
+			this.privateCategory.click();
+		} else if (!privateCategory && this.privateCategory.isSelected()) {
+			this.privateCategory.click();
+		}
+	}
+
+	/**
+	 * @return
+	 */
+	public Boolean getPrivateAccess() {
+		return this.privateCategory.isSelected();
+	}
+
+	/**
+	 * Salva a categoria.
+	 */
+	public void saveCategory() {
+		this.saveCategory.click();
+	}
+
+	/**
+	 * @return
+	 */
+	public String getErrorMessage() {
+		return this.errorMessage.getText();
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentViewPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentViewPage.java	(revision 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentViewPage.java	(revision 4917)
@@ -17,15 +17,11 @@
 public class AppointmentViewPage extends Page {
 
+	/** Botao para editar um compromisso. */
 	@FindBy(xpath = "//table[@id='calendar_viewevent_button_left']/tbody/tr/td[1]/nobr/form/div/input[@id='']")
 	private WebElement editButton;
 
+	/** Botao para editar serie de compromissos. */
 	@FindBy(xpath = "//table[@id='calendar_viewevent_button_left']/tbody/tr/td[2]/nobr/form/div/input[@id='']")
-	private WebElement readyButton;
-
-	@FindBy(xpath = "//table[@id='calendar_viewevent_button_center']/tbody/tr/td[1]/nobr/form/div/input[@id='']")
-	private WebElement alarmManagerButton;
-
-	@FindBy(xpath = "//table[@id='calendar_viewevent_button_center']/tbody/tr/td[2]/nobr/form/div/input[@id='']")
-	private WebElement exportButton;
+	private WebElement editSeriesButton;
 
 	@FindBy(xpath = "//table[@id='calendar_viewevent_button_right']/tbody/tr/td/nobr/form/div/input[@id='']")
@@ -44,5 +40,5 @@
 
 	/**
-	 * Edita o compromisso previamente selecionado
+	 * Edita o compromisso previamente selecionado.
 	 * 
 	 * @return Retorna pagina de edicao do compromisso.
@@ -50,4 +46,15 @@
 	public AppointmentEditPage editAppointment() {
 		this.editButton.click();
+		return PageFactory.initElements(driver, AppointmentEditPage.class);
+
+	}
+
+	/**
+	 * Edita a serie de compromissos previamente selecionado.
+	 * 
+	 * @return Retorna pagina de edicao do compromisso.
+	 */
+	public AppointmentEditPage editAppointmentSeries() {
+		this.editSeriesButton.click();
 		return PageFactory.initElements(driver, AppointmentEditPage.class);
 
@@ -87,4 +94,3 @@
 		return title.getText();
 	}
-
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/CalendarPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/CalendarPage.java	(revision 4895)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/CalendarPage.java	(revision 4917)
@@ -63,4 +63,17 @@
 
 	/**
+	 * Abre o visao diaria para uma data especifica.
+	 * 
+	 * @param data
+	 *            Data no formato yyyyMMdd.
+	 * @return
+	 */
+	public CalendarTodayViewPage openTodayView(String data) {
+		driver.get(Constants.URL
+				+ "/index.php?menuaction=calendar.uicalendar.day&date=" + data);
+		return PageFactory.initElements(driver, CalendarTodayViewPage.class);
+	}
+
+	/**
 	 * Abre tela para adicionar novo compromisso.
 	 * 
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/RemoveAppointmentCategoryPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/RemoveAppointmentCategoryPage.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/RemoveAppointmentCategoryPage.java	(revision 4917)
@@ -0,0 +1,45 @@
+package org.expressolivre.cte.pages.calendar;
+
+import org.expressolivre.cte.pages.common.Page;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 11, 2011 at 10:11:44 AM
+ * 
+ */
+public class RemoveAppointmentCategoryPage extends Page {
+
+	/** Botao para confirmar a exclusao de uma categoria. */
+	@FindBy(name = "confirm")
+	private WebElement confirm;
+
+	/** Checkbox para remover as subcategorias. */
+	@FindBy(name = "subs")
+	private WebElement removeSubCategories;
+
+	public RemoveAppointmentCategoryPage(WebDriver driver) {
+		super(driver);
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * Remove a categoria e retorna para pagina de listagem.
+	 */
+	public AppointmentCategoryPage removeCategory() {
+		this.confirm.click();
+		return PageFactory.initElements(driver, AppointmentCategoryPage.class);
+
+	}
+
+	/**
+	 * Marca que deseja remover as subcategorias junto.
+	 */
+	public void setRemoveSubCategories() {
+		this.removeSubCategories.click();
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentCategoryPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentCategoryPage.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentCategoryPage.java	(revision 4917)
@@ -0,0 +1,132 @@
+package org.expressolivre.cte.pages.calendar;
+
+import org.expressolivre.cte.pages.common.Page;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+
+/**
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 10, 2011 at 1:49:11 PM
+ * 
+ */
+public class AppointmentCategoryPage extends Page {
+
+	/** Botao para adicionar nova categoria. */
+	@FindBy(xpath = "//table[@id='tableDivAppbox']/tbody/tr/td/center/table[3]/tbody/tr/td[1]/form/input")
+	private WebElement addCategory;
+
+	@FindBy(name = "query")
+	private WebElement searchText;
+
+	@FindBy(name = "search")
+	private WebElement searchCategory;
+
+	/**
+	 * @param driver
+	 */
+	public AppointmentCategoryPage(WebDriver driver) {
+		super(driver);
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * @param text
+	 */
+	public void setSearchText(String text) {
+		this.searchText.clear();
+		this.searchText.sendKeys(text);
+	}
+
+	/**
+	 * 
+	 */
+	public AppointmentCategoryPage startSearch() {
+		this.searchCategory.click();
+		return PageFactory.initElements(driver, AppointmentCategoryPage.class);
+	}
+
+	/**
+	 * Vai para a tela de adicao de categorias.
+	 */
+	public AddAppointmentCategoryPage addCategory() {
+		this.addCategory.submit();
+		return PageFactory.initElements(driver,
+				AddAppointmentCategoryPage.class);
+	}
+
+	/**
+	 * Procura pelo nome da categoria na tabela que lista as categorias.
+	 * 
+	 * @param name
+	 *            Nome da categoria a procurar.
+	 * 
+	 */
+	public Integer findCategory(String name) {
+		String rowsPath = "//table[@id='tableDivAppbox']/tbody/tr/td/center/table[2]/tbody/tr";
+		int totalLinhas = super.getXPathCount(rowsPath);
+		for (int i = 1; i <= totalLinhas; i++) {
+			WebElement row = driver.findElement(By.xpath(rowsPath + "[" + i
+					+ "]/td[1]"));
+			// Se achar a categoria retorna o id
+			if (name.equals(row.getText())) {
+				String catId = driver.findElement(
+						By.xpath(rowsPath + "[" + i + "]/td[5]/a"))
+						.getAttribute("href");
+				return Integer
+						.parseInt(catId.substring(catId.lastIndexOf("=") + 1));
+			}
+
+		}
+		return null;
+	}
+
+	/**
+	 * @param name
+	 * @return Retorna a linha da tabela onde foi encontrada a categoria.
+	 */
+	public Integer getCategoryRow(String name) {
+		String rowsPath = "//table[@id='tableDivAppbox']/tbody/tr/td/center/table[2]/tbody/tr";
+		int totalLinhas = super.getXPathCount(rowsPath);
+		for (int i = 1; i <= totalLinhas; i++) {
+			WebElement row = driver.findElement(By.xpath(rowsPath + "[" + i
+					+ "]/td[1]"));
+			// Se achar a categoria retorna o id
+			if (name.equals(row.getText())) {
+				return i;
+			}
+
+		}
+		return null;
+	}
+
+	/**
+	 * @param categoryId
+	 * @return
+	 */
+	public EditAppointmentCategoryPage editCategory(String name) {
+		Integer row = getCategoryRow(name);
+		String rowsPath = "//table[@id='tableDivAppbox']/tbody/tr/td/center/table[2]/tbody/tr";
+		driver.findElement(By.xpath(rowsPath + "[" + row + "]/td[5]/a"))
+				.click();
+		return PageFactory.initElements(driver,
+				EditAppointmentCategoryPage.class);
+	}
+
+	/**
+	 * @param categoryId
+	 * @return
+	 */
+	public RemoveAppointmentCategoryPage removeCategory(String name) {
+		Integer row = getCategoryRow(name);
+		String rowsPath = "//table[@id='tableDivAppbox']/tbody/tr/td/center/table[2]/tbody/tr";
+		driver.findElement(By.xpath(rowsPath + "[" + row + "]/td[6]/a"))
+				.click();
+		return PageFactory.initElements(driver,
+				RemoveAppointmentCategoryPage.class);
+	}
+
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentPage.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentPage.java	(revision 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/calendar/AppointmentPage.java	(revision 4917)
@@ -70,4 +70,7 @@
 	private WebElement priority;
 
+	@FindBy(id = "usuarioParticipa")
+	private WebElement includeUser;
+
 	/** Alarme dia. */
 	@FindBy(name = "cal[alarmdays]")
@@ -128,4 +131,5 @@
 	 */
 	public void setTitle(String title) {
+		this.title.clear();
 		this.title.sendKeys(title);
 	}
@@ -136,4 +140,5 @@
 	 */
 	public void setDescription(String description) {
+		this.description.clear();
 		this.description.sendKeys(description);
 	}
@@ -152,4 +157,5 @@
 	 */
 	public void setLocation(String location) {
+		this.location.clear();
 		this.location.sendKeys(location);
 	}
@@ -218,8 +224,26 @@
 
 	/**
+	 * Inclui/Exclui usuario criador do compromisso.
+	 * 
+	 * @param include
+	 *            <code>true</code> para incluir usuario, <code>false</code>
+	 *            para excluir.
+	 */
+	public void setIncludeUser(Boolean include) {
+		if (include && !this.includeUser.isSelected()) {
+			this.includeUser.click();
+		}
+
+		if (!include && this.includeUser.isSelected()) {
+			this.includeUser.click();
+		}
+	}
+
+	/**
 	 * @param notes
 	 *            the notes to set
 	 */
 	public void setNotes(String notes) {
+		this.notes.clear();
 		this.notes.sendKeys(notes);
 	}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/BaseCalendarTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/BaseCalendarTestCase.java	(revision 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/BaseCalendarTestCase.java	(revision 4917)
@@ -1,4 +1,5 @@
 package org.expressolivre.cte.common;
 
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
 import org.expressolivre.cte.pages.calendar.AppointmentPage;
 import org.expressolivre.cte.pages.calendar.CalendarPage;
@@ -46,4 +47,15 @@
 
 	/**
+	 * Abre o visao diaria para uma data especifica.
+	 * 
+	 * @param data
+	 *            Data no formato yyyyMMdd.
+	 * @return
+	 */
+	public CalendarTodayViewPage openTodayView(String date) {
+		return cp.openTodayView(date);
+	}
+
+	/**
 	 * Cria um novo compromisso.
 	 * 
@@ -56,3 +68,12 @@
 		return PageFactory.initElements(driver, AppointmentPage.class);
 	}
+
+	/**
+	 * @return
+	 */
+	public AppointmentCategoryPage openAppointmentCategoryPage() {
+		driver.get(URL
+				+ "/index.php?menuaction=preferences.uicategories.index&cats_app=calendar&cats_level=True&global_cats=True");
+		return PageFactory.initElements(driver, AppointmentCategoryPage.class);
+	}
 }
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 4864)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/common/BaseTestCase.java	(revision 4917)
@@ -5,5 +5,4 @@
 import org.expressolivre.cte.pages.common.LoginPage;
 import org.expressolivre.cte.pages.common.PreferencesPage;
-import org.openqa.selenium.By;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.firefox.FirefoxDriver;
@@ -63,5 +62,5 @@
 	@AfterClass
 	public void logout() {
-		driver.findElement(By.id("logout_id")).click();
+		driver.get(Constants.URL + "/logout.php");
 	}
 
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarCategoriaSemNomeTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarCategoriaSemNomeTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarCategoriaSemNomeTestCase.java	(revision 4917)
@@ -0,0 +1,34 @@
+package org.expressolivre.cte.calendar.preferencias;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AddAppointmentCategoryPage;
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.8] Alterar preferencias da agenda
+ * 
+ * Caso de Teste: EL-1061:Criar categoria sem informar campo nome
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1061
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 11, 2011 at 2:23:04 PM
+ * 
+ */
+public class CriarCategoriaSemNomeTestCase extends BaseCalendarTestCase {
+
+	@Test
+	public void criarCategoriaSemNome() {
+		AppointmentCategoryPage acp = super.openAppointmentCategoryPage();
+		AddAppointmentCategoryPage aacp = acp.addCategory();
+		aacp.saveCategory();
+
+		Assert.assertEquals(aacp.getErrorMessage(),
+				"Por favor digite um nome !");
+	}
+
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/ProcurarCategoriaSemResultadoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/ProcurarCategoriaSemResultadoTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/ProcurarCategoriaSemResultadoTestCase.java	(revision 4917)
@@ -0,0 +1,35 @@
+package org.expressolivre.cte.calendar.preferencias;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
+import org.testng.Assert;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.8] Alterar preferencias da agenda
+ * 
+ * Caso de Teste: EL-995:Procurar categoria sem resultado
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-995
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 11, 2011 at 10:38:07 AM
+ * 
+ */
+public class ProcurarCategoriaSemResultadoTestCase extends BaseCalendarTestCase {
+
+	@Parameters({ "nome" })
+	@Test
+	public void procurarCategoriaSemResultado(String nome) {
+		AppointmentCategoryPage acp = super.openAppointmentCategoryPage();
+		acp.setSearchText(nome);
+		acp = acp.startSearch();
+
+		// Depois da pesquisa verifica se aparece na tabela.
+		Integer catId = acp.findCategory(nome);
+		Assert.assertNull(catId);
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/EditarCategoriaTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/EditarCategoriaTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/EditarCategoriaTestCase.java	(revision 4917)
@@ -0,0 +1,47 @@
+package org.expressolivre.cte.calendar.preferencias;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
+import org.expressolivre.cte.pages.calendar.EditAppointmentCategoryPage;
+import org.testng.Assert;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.8] Alterar preferencias da agenda
+ * 
+ * Caso de Teste: EL-993:Editar categoria
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-993
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 10, 2011 at 2:32:54 PM
+ * 
+ */
+public class EditarCategoriaTestCase extends BaseCalendarTestCase {
+
+	@Parameters({ "nome", "descricao", "particular", "novoNome",
+			"novaDescricao", "novoParticular" })
+	@Test
+	public void editarCategoria(String nome, String descricao,
+			Boolean particular, String novoNome, String novaDescricao,
+			Boolean novoParticular) {
+		AppointmentCategoryPage acp = super.openAppointmentCategoryPage();
+		Integer catId = acp.findCategory(nome);
+
+		Assert.assertNotNull(catId);
+
+		EditAppointmentCategoryPage eacp = acp.editCategory(nome);
+		Assert.assertEquals(nome, eacp.getCategoryName());
+		Assert.assertEquals(descricao, eacp.getCategoryDescription());
+		Assert.assertEquals(particular, eacp.getPrivateAccess());
+
+		eacp.setCategoryName(novoNome);
+		eacp.setCategoryDescription(novaDescricao);
+		eacp.setPrivateAccess(novoParticular);
+
+		eacp.saveCategory();
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarSubCategoriaTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarSubCategoriaTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarSubCategoriaTestCase.java	(revision 4917)
@@ -0,0 +1,43 @@
+package org.expressolivre.cte.calendar.preferencias;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AddAppointmentCategoryPage;
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.8] Alterar preferencias da agenda
+ * 
+ * Caso de Teste: EL-989:Criar Sub categoria
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-989
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 11, 2011 at 10:19:50 AM
+ * 
+ */
+public class CriarSubCategoriaTestCase extends BaseCalendarTestCase {
+
+	/**
+	 * @param nomePai
+	 * @param nome
+	 * @param descricao
+	 * @param particular
+	 */
+	@Parameters({ "nomePai", "nome", "descricao", "particular" })
+	@Test
+	public void criarSubCategoria(String nomePai, String nome,
+			String descricao, Boolean particular) {
+		AppointmentCategoryPage acp = super.openAppointmentCategoryPage();
+		AddAppointmentCategoryPage aacp = acp.addCategory();
+		aacp.setParentCategory(nomePai);
+		aacp.setCategoryName(nome);
+		aacp.setCategoryDescription(descricao);
+		aacp.setPrivateAccess(particular);
+		aacp.saveCategory();
+	}
+
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/RemoverCategoriaSemExcluirSubTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/RemoverCategoriaSemExcluirSubTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/RemoverCategoriaSemExcluirSubTestCase.java	(revision 4917)
@@ -0,0 +1,42 @@
+package org.expressolivre.cte.calendar.preferencias;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
+import org.expressolivre.cte.pages.calendar.RemoveAppointmentCategoryPage;
+import org.testng.Assert;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.8] Alterar preferencias da agenda
+ * 
+ * Caso de Teste: EL-992:Remover categoria sem excluir sub categoria
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-992
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 11, 2011 at 10:27:54 AM
+ * 
+ */
+public class RemoverCategoriaSemExcluirSubTestCase extends BaseCalendarTestCase {
+
+	@Parameters({ "nome", "nomeFilha" })
+	@Test
+	public void removerCategoriaSemExcluirSubCategoria(String nome,
+			String nomeFilha) {
+		AppointmentCategoryPage acp = super.openAppointmentCategoryPage();
+		Integer catId = acp.findCategory(nome);
+
+		Assert.assertNotNull(catId);
+
+		RemoveAppointmentCategoryPage racp = acp.removeCategory(nome);
+		acp = racp.removeCategory();
+
+		// Verifica que a categoria filha permanece na lista.
+		catId = acp.findCategory(nomeFilha);
+
+		Assert.assertNotNull(catId);
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/ProcurarCategoriaTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/ProcurarCategoriaTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/ProcurarCategoriaTestCase.java	(revision 4917)
@@ -0,0 +1,35 @@
+package org.expressolivre.cte.calendar.preferencias;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
+import org.testng.Assert;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.8] Alterar preferencias da agenda
+ * 
+ * Caso de Teste: EL-994:Procurar categoria
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-994
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 11, 2011 at 10:45:07 AM
+ * 
+ */
+public class ProcurarCategoriaTestCase extends BaseCalendarTestCase {
+
+	@Parameters({ "nome" })
+	@Test
+	public void procurarCategoria(String nome) {
+		AppointmentCategoryPage acp = super.openAppointmentCategoryPage();
+		acp.setSearchText(nome);
+		acp = acp.startSearch();
+
+		// Depois da pesquisa verifica se aparece na tabela.
+		Integer catId = acp.findCategory(nome);
+		Assert.assertNotNull(catId);
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/RemoverCategoriaESubTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/RemoverCategoriaESubTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/RemoverCategoriaESubTestCase.java	(revision 4917)
@@ -0,0 +1,41 @@
+package org.expressolivre.cte.calendar.preferencias;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
+import org.expressolivre.cte.pages.calendar.RemoveAppointmentCategoryPage;
+import org.testng.Assert;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.8] Alterar preferencias da agenda
+ * 
+ * Caso de Teste: EL-991:Remover categoria com sub categoria
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-991
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 11, 2011 at 10:34:54 AM
+ * 
+ */
+public class RemoverCategoriaESubTestCase extends BaseCalendarTestCase {
+
+	@Parameters({ "nome", "nomeFilha" })
+	@Test
+	public void removerCategoria(String nome, String nomeFilha) {
+		AppointmentCategoryPage acp = super.openAppointmentCategoryPage();
+		Integer catId = acp.findCategory(nome);
+
+		Assert.assertNotNull(catId);
+
+		RemoveAppointmentCategoryPage racp = acp.removeCategory(nome);
+		racp.setRemoveSubCategories();
+		acp = racp.removeCategory();
+
+		// Verifica se a categoria foi realmente removida
+		Assert.assertNull(acp.findCategory(nome));
+		Assert.assertNull(acp.findCategory(nomeFilha));
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/RemoverCategoriaTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/RemoverCategoriaTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/RemoverCategoriaTestCase.java	(revision 4917)
@@ -0,0 +1,36 @@
+package org.expressolivre.cte.calendar.preferencias;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
+import org.expressolivre.cte.pages.calendar.RemoveAppointmentCategoryPage;
+import org.testng.Assert;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.8] Alterar preferencias da agenda
+ * 
+ * Caso de Teste: EL-990:Remover categoria
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-990
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 11, 2011 at 10:09:54 AM
+ * 
+ */
+public class RemoverCategoriaTestCase extends BaseCalendarTestCase {
+
+	@Parameters({ "nome" })
+	@Test
+	public void removerCategoria(String nome) {
+		AppointmentCategoryPage acp = super.openAppointmentCategoryPage();
+		Integer catId = acp.findCategory(nome);
+
+		Assert.assertNotNull(catId);
+
+		RemoveAppointmentCategoryPage racp = acp.removeCategory(nome);
+		racp.removeCategory();
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarCategoriaTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarCategoriaTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarCategoriaTestCase.java	(revision 4917)
@@ -0,0 +1,39 @@
+package org.expressolivre.cte.calendar.preferencias;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AddAppointmentCategoryPage;
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.8] Alterar preferencias da agenda
+ * 
+ * Caso de Teste: EL-988:Criar categoria
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-988
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 10, 2011 at 1:47:08 PM
+ * 
+ */
+public class CriarCategoriaTestCase extends BaseCalendarTestCase {
+
+	/**
+	 * @param nome
+	 * @param descricao
+	 * @param particular
+	 */
+	@Parameters({ "nome", "descricao", "particular" })
+	@Test
+	public void criarCategoria(String nome, String descricao, Boolean particular) {
+		AppointmentCategoryPage acp = super.openAppointmentCategoryPage();
+		AddAppointmentCategoryPage aacp = acp.addCategory();
+		aacp.setCategoryName(nome);
+		aacp.setCategoryDescription(descricao);
+		aacp.setPrivateAccess(particular);
+		aacp.saveCategory();
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarCategoriaComNomeDuplicadoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarCategoriaComNomeDuplicadoTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/preferencias/CriarCategoriaComNomeDuplicadoTestCase.java	(revision 4917)
@@ -0,0 +1,38 @@
+package org.expressolivre.cte.calendar.preferencias;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AddAppointmentCategoryPage;
+import org.expressolivre.cte.pages.calendar.AppointmentCategoryPage;
+import org.testng.Assert;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.8] Alterar preferencias da agenda
+ * 
+ * Caso de Teste: EL-1268:Criar categoria com nome duplicado
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1268
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Aug 11, 2011 at 2:33:04 PM
+ * 
+ */
+public class CriarCategoriaComNomeDuplicadoTestCase extends
+		BaseCalendarTestCase {
+
+	@Parameters({ "nome" })
+	@Test
+	public void criarCategoriaComNomeDuplicado(String nome) {
+		AppointmentCategoryPage acp = super.openAppointmentCategoryPage();
+		AddAppointmentCategoryPage aacp = acp.addCategory();
+		aacp.setCategoryName(nome);
+		aacp.saveCategory();
+
+		Assert.assertEquals(aacp.getErrorMessage(),
+				"Este nome jÃ¡ estÃ¡ em uso !");
+	}
+
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoTestCase.java	(revision 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoTestCase.java	(revision 4917)
@@ -1,6 +1,8 @@
 package org.expressolivre.cte.calendar.adicionar;
 
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
+import java.util.Date;
 
 import org.expressolivre.cte.common.BaseCalendarTestCase;
@@ -40,27 +42,42 @@
 public class AdicionarCompromissoTestCase extends BaseCalendarTestCase {
 
-	@Parameters({ "tipo", "titulo", "descricao", "local", "horaInicial",
-			"minutoInicial", "horaFinal", "minutoFinal", "prioridade" })
+	@Parameters({ "tipo", "titulo", "descricao", "local", "dataInicial",
+			"horaInicial", "minutoInicial", "dataFinal", "horaFinal",
+			"minutoFinal", "prioridade" })
 	@Test
-	public void adicionarCompromissoDataCorrente(
-			@Optional("Normal") String tipo, String titulo,
-			@Optional("") String descricao, @Optional("") String local,
-			String horaInicial, String minutoInicial, String horaFinal,
-			String minutoFinal, @Optional("Normal") String prioridade) {
+	public void adicionarCompromisso(@Optional("Normal") String tipo,
+			String titulo, @Optional("") String descricao,
+			@Optional("") String local, @Optional("") String dataInicial,
+			String horaInicial, String minutoInicial,
+			@Optional("") String dataFinal, String horaFinal,
+			String minutoFinal, @Optional("Normal") String prioridade)
+			throws ParseException {
 
-		// Pega data corrente.
 		Calendar cal = Calendar.getInstance();
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
 		SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
 
-		AppointmentPage ap = super.newAppointment(sdf.format(cal.getTime()));
+		// Se a data inicial nao for informada, pega data corrente.
+		if ("".equals(dataInicial)) {
+			dataInicial = sdf2.format(cal.getTime());
+		}
+
+		// Se a data final nao for informada, pega data corrente.
+		if ("".equals(dataFinal)) {
+			dataFinal = sdf2.format(cal.getTime());
+		}
+
+		// Transforma a data inicial informada (dd/MM/yyyy) para (yyyyMMdd)
+		Date dtIni = sdf2.parse(dataInicial);
+
+		AppointmentPage ap = super.newAppointment(sdf.format(dtIni));
 		ap.setType(tipo);
 		ap.setTitle(titulo);
 		ap.setDescription(descricao);
 		ap.setLocation(local);
-		ap.setStartDate(sdf2.format(cal.getTime()));
+		ap.setStartDate(dataInicial);
 		ap.setStartHour(horaInicial);
 		ap.setStartMinute(minutoInicial);
-		ap.setEndDate(sdf2.format(cal.getTime()));
+		ap.setEndDate(dataFinal);
 		ap.setEndHour(horaFinal);
 		ap.setEndMinute(minutoFinal);
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoDiariaConflitoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoDiariaConflitoTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoDiariaConflitoTestCase.java	(revision 4917)
@@ -0,0 +1,82 @@
+package org.expressolivre.cte.calendar.adicionar;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentConflictPage;
+import org.expressolivre.cte.pages.calendar.AppointmentPage;
+import org.testng.annotations.Optional;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.2] Adicionar Compromisso
+ * 
+ * Caso de Teste: EL-1055:Adicionar compromisso com repeticao diaria - conflito
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1055
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Ago 8, 2011 at 2:38:08 PM
+ * 
+ */
+public class AdicionarCompromissoComRepeticaoDiariaConflitoTestCase extends
+		BaseCalendarTestCase {
+
+	@Parameters({ "tipo", "titulo", "descricao", "local", "dataInicial",
+			"horaInicial", "minutoInicial", "horaFinal", "minutoFinal",
+			"prioridade", "dataFinal" })
+	@Test
+	public void adicionarCompromissoComRepeticaoDiariaConflito(
+			@Optional("Normal") String tipo, String titulo,
+			@Optional("") String descricao, @Optional("") String local,
+			@Optional("") String dataInicial, String horaInicial,
+			String minutoInicial, String horaFinal, String minutoFinal,
+			@Optional("Normal") String prioridade,
+			@Optional("") String dataFinal) throws ParseException {
+
+		Calendar cal = Calendar.getInstance();
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+		SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
+
+		// Se a data inicial nao for informada, pega data corrente.
+		if ("".equals(dataInicial)) {
+			dataInicial = sdf2.format(cal.getTime());
+		}
+
+		// Coloca data inicial 1 dia antes da data corrente
+		cal.add(Calendar.DATE, -1);
+		dataInicial = sdf2.format(cal.getTime());
+
+		// Transforma a data inicial informada (dd/MM/yyyy) para (yyyyMMdd)
+		Date dtIni = sdf2.parse(dataInicial);
+		cal.setTime(dtIni);
+
+		// Adiciona 3 dias a data atual para recorrencia.
+		cal.add(Calendar.DATE, 3);
+		dataFinal = sdf2.format(cal.getTime());
+
+		AppointmentPage ap = super.newAppointment(sdf.format(dtIni));
+		ap.setType(tipo);
+		ap.setTitle(titulo);
+		ap.setDescription(descricao);
+		ap.setLocation(local);
+		ap.setStartDate(dataInicial);
+		ap.setStartHour(horaInicial);
+		ap.setStartMinute(minutoInicial);
+		ap.setEndDate(dataInicial);
+		ap.setEndHour(horaFinal);
+		ap.setEndMinute(minutoFinal);
+		ap.setPriority(prioridade);
+		ap.setRecurType("DiÃ¡ria");
+		ap.setRptUseEnd(dataFinal);
+
+		AppointmentConflictPage acp = ap.saveConflictAppointment();
+		acp.reeditConflict();
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoDiariaIgnorarConflitoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoDiariaIgnorarConflitoTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoDiariaIgnorarConflitoTestCase.java	(revision 4917)
@@ -0,0 +1,83 @@
+package org.expressolivre.cte.calendar.adicionar;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentConflictPage;
+import org.expressolivre.cte.pages.calendar.AppointmentPage;
+import org.testng.annotations.Optional;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.2] Adicionar Compromisso
+ * 
+ * Caso de Teste: EL-1056:Adicionar compromisso com repeticao diaria - ignorar
+ * conflito
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1056
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Ago 8, 2011 at 2:38:08 PM
+ * 
+ */
+public class AdicionarCompromissoComRepeticaoDiariaIgnorarConflitoTestCase
+		extends BaseCalendarTestCase {
+
+	@Parameters({ "tipo", "titulo", "descricao", "local", "dataInicial",
+			"horaInicial", "minutoInicial", "horaFinal", "minutoFinal",
+			"prioridade", "dataFinal" })
+	@Test
+	public void adicionarCompromissoComRepeticaoDiariaIgnorarConflito(
+			@Optional("Normal") String tipo, String titulo,
+			@Optional("") String descricao, @Optional("") String local,
+			@Optional("") String dataInicial, String horaInicial,
+			String minutoInicial, String horaFinal, String minutoFinal,
+			@Optional("Normal") String prioridade,
+			@Optional("") String dataFinal) throws ParseException {
+
+		Calendar cal = Calendar.getInstance();
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+		SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
+
+		// Se a data inicial nao for informada, pega data corrente.
+		if ("".equals(dataInicial)) {
+			dataInicial = sdf2.format(cal.getTime());
+		}
+
+		// Coloca data inicial 1 dia antes da data corrente
+		cal.add(Calendar.DATE, -1);
+		dataInicial = sdf2.format(cal.getTime());
+
+		// Transforma a data inicial informada (dd/MM/yyyy) para (yyyyMMdd)
+		Date dtIni = sdf2.parse(dataInicial);
+		cal.setTime(dtIni);
+
+		// Adiciona 3 dias a data atual para recorrencia.
+		cal.add(Calendar.DATE, 3);
+		dataFinal = sdf2.format(cal.getTime());
+
+		AppointmentPage ap = super.newAppointment(sdf.format(dtIni));
+		ap.setType(tipo);
+		ap.setTitle(titulo);
+		ap.setDescription(descricao);
+		ap.setLocation(local);
+		ap.setStartDate(dataInicial);
+		ap.setStartHour(horaInicial);
+		ap.setStartMinute(minutoInicial);
+		ap.setEndDate(dataInicial);
+		ap.setEndHour(horaFinal);
+		ap.setEndMinute(minutoFinal);
+		ap.setPriority(prioridade);
+		ap.setRecurType("DiÃ¡ria");
+		ap.setRptUseEnd(dataFinal);
+
+		AppointmentConflictPage acp = ap.saveConflictAppointment();
+		acp.ignoreConflict();
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoDiariaTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoDiariaTestCase.java	(revision 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoDiariaTestCase.java	(revision 4917)
@@ -3,4 +3,5 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
 
@@ -34,12 +35,24 @@
 			@Optional("Normal") String tipo, String titulo,
 			@Optional("") String descricao, @Optional("") String local,
-			String dataInicial, String horaInicial, String minutoInicial,
-			String horaFinal, String minutoFinal,
-			@Optional("Normal") String prioridade, String dataFinal)
-			throws ParseException {
+			@Optional("") String dataInicial, String horaInicial,
+			String minutoInicial, String horaFinal, String minutoFinal,
+			@Optional("Normal") String prioridade,
+			@Optional("") String dataFinal) throws ParseException {
 
+		Calendar cal = Calendar.getInstance();
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
 		SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
+
+		// Se a data inicial nao for informada, pega data corrente.
+		if ("".equals(dataInicial)) {
+			dataInicial = sdf2.format(cal.getTime());
+		}
+		// Transforma a data inicial informada (dd/MM/yyyy) para (yyyyMMdd)
 		Date dtIni = sdf2.parse(dataInicial);
+		cal.setTime(dtIni);
+
+		// Adiciona 3 dias a data atual para recorrencia.
+		cal.add(Calendar.DATE, 3);
+		dataFinal = sdf2.format(cal.getTime());
 
 		AppointmentPage ap = super.newAppointment(sdf.format(dtIni));
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoMensalPorDataTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoMensalPorDataTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoMensalPorDataTestCase.java	(revision 4917)
@@ -0,0 +1,86 @@
+package org.expressolivre.cte.calendar.adicionar;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentPage;
+import org.expressolivre.cte.pages.calendar.CalendarTodayViewPage;
+import org.testng.annotations.Optional;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.2] Adicionar Compromisso
+ * 
+ * Caso de Teste: EL-944:Adicionar compromisso com repeticao mensal por data
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-944
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Ago 8, 2011 at 3:39:08 PM
+ * 
+ */
+public class AdicionarCompromissoComRepeticaoMensalPorDataTestCase extends
+		BaseCalendarTestCase {
+
+	@Parameters({ "tipo", "titulo", "descricao", "local", "dataInicial",
+			"horaInicial", "minutoInicial", "horaFinal", "minutoFinal",
+			"prioridade", "dataFinal" })
+	@Test
+	public void adicionarCompromissoComRepeticaoMensalPorData(
+			@Optional("Normal") String tipo, String titulo,
+			@Optional("") String descricao, @Optional("") String local,
+			@Optional("") String dataInicial, String horaInicial,
+			String minutoInicial, String horaFinal, String minutoFinal,
+			@Optional("Normal") String prioridade,
+			@Optional("") String dataFinal) throws ParseException {
+
+		Calendar cal = Calendar.getInstance();
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+		SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
+
+		// Se a data inicial nao for informada, pega data corrente.
+		if ("".equals(dataInicial)) {
+			dataInicial = sdf2.format(cal.getTime());
+		}
+		// Transforma a data inicial informada (dd/MM/yyyy) para (yyyyMMdd)
+		Date dtIni = sdf2.parse(dataInicial);
+		cal.setTime(dtIni);
+
+		// Adiciona 3 meses a data atual para recorrencia.
+		cal.add(Calendar.MONTH, 3);
+		dataFinal = sdf2.format(cal.getTime());
+
+		AppointmentPage ap = super.newAppointment(sdf.format(dtIni));
+		ap.setType(tipo);
+		ap.setTitle(titulo);
+		ap.setDescription(descricao);
+		ap.setLocation(local);
+		ap.setStartDate(dataInicial);
+		ap.setStartHour(horaInicial);
+		ap.setStartMinute(minutoInicial);
+		ap.setEndDate(dataInicial);
+		ap.setEndHour(horaFinal);
+		ap.setEndMinute(minutoFinal);
+		ap.setPriority(prioridade);
+		ap.setRecurType("mensalmente (por data)");
+		ap.setRptUseEnd(dataFinal);
+
+		ap.saveAppointment();
+
+		// Verificar se foram gerados 4 compromissos (o de hoje e dos proximos 3
+		// meses).
+		for (int i = 0; i < 4; i++) {
+			CalendarTodayViewPage ctvp = super.openTodayView(sdf.format(cal
+					.getTime()));
+			ctvp.isTextPresent(titulo);
+			cal.add(Calendar.MONTH, -1);
+		}
+
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoAnualTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoAnualTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoAnualTestCase.java	(revision 4917)
@@ -0,0 +1,86 @@
+package org.expressolivre.cte.calendar.adicionar;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentPage;
+import org.expressolivre.cte.pages.calendar.CalendarTodayViewPage;
+import org.testng.annotations.Optional;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.2] Adicionar Compromisso
+ * 
+ * Caso de Teste: EL-946:Adicionar compromisso com repeticao anual
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-946
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Ago 8, 2011 at 4:39:08 PM
+ * 
+ */
+public class AdicionarCompromissoComRepeticaoAnualTestCase extends
+		BaseCalendarTestCase {
+
+	@Parameters({ "tipo", "titulo", "descricao", "local", "dataInicial",
+			"horaInicial", "minutoInicial", "horaFinal", "minutoFinal",
+			"prioridade", "dataFinal" })
+	@Test
+	public void adicionarCompromissoComRepeticaoAnual(
+			@Optional("Normal") String tipo, String titulo,
+			@Optional("") String descricao, @Optional("") String local,
+			@Optional("") String dataInicial, String horaInicial,
+			String minutoInicial, String horaFinal, String minutoFinal,
+			@Optional("Normal") String prioridade,
+			@Optional("") String dataFinal) throws ParseException {
+
+		Calendar cal = Calendar.getInstance();
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+		SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
+
+		// Se a data inicial nao for informada, pega data corrente.
+		if ("".equals(dataInicial)) {
+			dataInicial = sdf2.format(cal.getTime());
+		}
+		// Transforma a data inicial informada (dd/MM/yyyy) para (yyyyMMdd)
+		Date dtIni = sdf2.parse(dataInicial);
+		cal.setTime(dtIni);
+
+		// Adiciona 3 anos a data atual para recorrencia.
+		cal.add(Calendar.YEAR, 3);
+		dataFinal = sdf2.format(cal.getTime());
+
+		AppointmentPage ap = super.newAppointment(sdf.format(dtIni));
+		ap.setType(tipo);
+		ap.setTitle(titulo);
+		ap.setDescription(descricao);
+		ap.setLocation(local);
+		ap.setStartDate(dataInicial);
+		ap.setStartHour(horaInicial);
+		ap.setStartMinute(minutoInicial);
+		ap.setEndDate(dataInicial);
+		ap.setEndHour(horaFinal);
+		ap.setEndMinute(minutoFinal);
+		ap.setPriority(prioridade);
+		ap.setRecurType("Anualmente");
+		ap.setRptUseEnd(dataFinal);
+
+		ap.saveAppointment();
+
+		// Verificar se foram gerados 4 compromissos (o de hoje e dos proximos 3
+		// anos).
+		for (int i = 0; i < 4; i++) {
+			CalendarTodayViewPage ctvp = super.openTodayView(sdf.format(cal
+					.getTime()));
+			ctvp.isTextPresent(titulo);
+			cal.add(Calendar.YEAR, -1);
+		}
+
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoSemanalTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoSemanalTestCase.java	(revision 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoComRepeticaoSemanalTestCase.java	(revision 4917)
@@ -4,4 +4,5 @@
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
+import java.util.Calendar;
 import java.util.Date;
 
@@ -35,12 +36,24 @@
 			@Optional("Normal") String tipo, String titulo,
 			@Optional("") String descricao, @Optional("") String local,
-			String dataInicial, String horaInicial, String minutoInicial,
-			String horaFinal, String minutoFinal,
-			@Optional("Normal") String prioridade, String dataFinal, String dias)
-			throws ParseException {
+			@Optional("") String dataInicial, String horaInicial,
+			String minutoInicial, String horaFinal, String minutoFinal,
+			@Optional("Normal") String prioridade,
+			@Optional("") String dataFinal, String dias) throws ParseException {
 
+		Calendar cal = Calendar.getInstance();
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
 		SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
+
+		// Se a data inicial nao for informada, pega data corrente.
+		if ("".equals(dataInicial)) {
+			dataInicial = sdf2.format(cal.getTime());
+		}
+		// Transforma a data inicial informada (dd/MM/yyyy) para (yyyyMMdd)
 		Date dtIni = sdf2.parse(dataInicial);
+		cal.setTime(dtIni);
+
+		// Adiciona 3 meses a data atual para recorrencia.
+		cal.add(Calendar.MONTH, 3);
+		dataFinal = sdf2.format(cal.getTime());
 
 		AppointmentPage ap = super.newAppointment(sdf.format(dtIni));
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoSemParticipantesTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoSemParticipantesTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/adicionar/AdicionarCompromissoSemParticipantesTestCase.java	(revision 4917)
@@ -0,0 +1,79 @@
+package org.expressolivre.cte.calendar.adicionar;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentPage;
+import org.testng.Assert;
+import org.testng.annotations.Optional;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Suite:[FUN03.2] Adicionar Compromisso
+ * 
+ * Caso de Teste: EL-1267:Adicionar compromisso sem participantes
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-1267
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Ago 8, 2011 at 2:54:08 PM
+ * 
+ */
+public class AdicionarCompromissoSemParticipantesTestCase extends
+		BaseCalendarTestCase {
+
+	@Parameters({ "tipo", "titulo", "descricao", "local", "dataInicial",
+			"horaInicial", "minutoInicial", "dataFinal", "horaFinal",
+			"minutoFinal", "prioridade" })
+	@Test
+	public void adicionarCompromissoSemParticipantes(
+			@Optional("Normal") String tipo, String titulo,
+			@Optional("") String descricao, @Optional("") String local,
+			@Optional("") String dataInicial, String horaInicial,
+			String minutoInicial, @Optional("") String dataFinal,
+			String horaFinal, String minutoFinal,
+			@Optional("Normal") String prioridade) throws ParseException {
+
+		Calendar cal = Calendar.getInstance();
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+		SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
+
+		// Se a data inicial nao for informada, pega data corrente.
+		if ("".equals(dataInicial)) {
+			dataInicial = sdf2.format(cal.getTime());
+		}
+
+		// Se a data final nao for informada, pega data corrente.
+		if ("".equals(dataFinal)) {
+			dataFinal = sdf2.format(cal.getTime());
+		}
+
+		// Transforma a data inicial informada (dd/MM/yyyy) para (yyyyMMdd)
+		Date dtIni = sdf2.parse(dataInicial);
+
+		AppointmentPage ap = super.newAppointment(sdf.format(dtIni));
+		ap.setType(tipo);
+		ap.setTitle(titulo);
+		ap.setDescription(descricao);
+		ap.setLocation(local);
+		ap.setStartDate(dataInicial);
+		ap.setStartHour(horaInicial);
+		ap.setStartMinute(minutoInicial);
+		ap.setEndDate(dataFinal);
+		ap.setEndHour(horaFinal);
+		ap.setEndMinute(minutoFinal);
+		ap.setPriority(prioridade);
+		ap.setIncludeUser(false);
+		ap.saveAppointment();
+
+		Assert.assertEquals(ap.getFormStatus(),
+				"VocÃª nÃ£o informou os participantes.");
+
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/EditarCompromissoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/EditarCompromissoTestCase.java	(revision 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/EditarCompromissoTestCase.java	(revision 4917)
@@ -1,10 +1,8 @@
 package org.expressolivre.cte.calendar.visualizar;
 
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-
 import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentEditPage;
+import org.expressolivre.cte.pages.calendar.AppointmentSearchResultPage;
 import org.expressolivre.cte.pages.calendar.AppointmentViewPage;
-import org.expressolivre.cte.pages.calendar.CalendarTodayViewPage;
 import org.testng.Assert;
 import org.testng.annotations.Optional;
@@ -27,5 +25,5 @@
 	@Parameters({ "tipo", "titulo", "descricao", "local", "horaInicial",
 			"horaFinal", "prioridade", "novoTitulo", "novaDescricao",
-			"novoLocal", "novaHoraInicial", "novoMinutoInicial",
+			"novoLocal", "novaData", "novaHoraInicial", "novoMinutoInicial",
 			"novaHoraFinal", "novoMinutoFinal" })
 	@Test
@@ -34,16 +32,27 @@
 			@Optional("") String local, String horaInicial, String horaFinal,
 			@Optional("Normal") String prioridade, String novoTitulo,
-			String novaDescricao, String novoLocal, String novaHoraInicial,
+			String novaDescricao, String novoLocal,
+			@Optional("") String novaData, String novaHoraInicial,
 			String novoMinutoInicial, String novaHoraFinal,
 			String novoMinutoFinal) {
-		CalendarTodayViewPage ctvp = super.openTodayView();
-		String id = ctvp.getAppointmentId(titulo);
 
-		Calendar cal = Calendar.getInstance();
-		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
-		String today = sdf.format(cal.getTime());
+		// Procura o compromisso.
+		cp.setSearchText(titulo);
+		AppointmentSearchResultPage asrp = cp.searchAppointment();
+		Assert.assertEquals(asrp.getResultsNumber(), "1 ocorrÃªncia encontrada.");
+		// Vai para a pagina de visualizacao do compromisso.
+		AppointmentViewPage avp = asrp.viewAppointment(1);
 
-		AppointmentViewPage avp = cp.openAppointmentViewPage(id);
-		Assert.assertEquals(avp.getTitle(), titulo);
+		AppointmentEditPage aep = avp.editAppointment();
+		aep.setTitle(novoTitulo);
+		aep.setDescription(novaDescricao);
+		aep.setLocation(novoLocal);
+		aep.setStartDate(novaData);
+		aep.setStartHour(novaHoraInicial);
+		aep.setStartMinute(novoMinutoInicial);
+		aep.setEndDate(novaData);
+		aep.setEndHour(novaHoraFinal);
+		aep.setEndMinute(novoMinutoFinal);
+		aep.saveAppointment();
 	}
 }
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/RemoverCompromissoComRepeticaoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/RemoverCompromissoComRepeticaoTestCase.java	(revision 4895)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/RemoverCompromissoComRepeticaoTestCase.java	(revision 4917)
@@ -22,7 +22,10 @@
 		BaseCalendarTestCase {
 
+	/**
+	 * @param titulo
+	 */
 	@Parameters({ "titulo" })
 	@Test
-	public void removerCompromissoComRepeticao(String titulo) {
+	public void removerCompromissoComRepeticaoDataCorrente(String titulo) {
 		CalendarTodayViewPage ctvp = super.openTodayView();
 		String id = ctvp.getAppointmentId(titulo);
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/ExibirCompromissoComRepeticaoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/ExibirCompromissoComRepeticaoTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/ExibirCompromissoComRepeticaoTestCase.java	(revision 4917)
@@ -0,0 +1,44 @@
+package org.expressolivre.cte.calendar.visualizar;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentViewPage;
+import org.expressolivre.cte.pages.calendar.CalendarTodayViewPage;
+import org.testng.Assert;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Caso de Teste: EL-965:Exibir compromisso com repeticao
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-965
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Ago 11, 2011 at 3:00:43 PM
+ * 
+ */
+public class ExibirCompromissoComRepeticaoTestCase extends BaseCalendarTestCase {
+
+	/**
+	 * Exibe um compromisso da data corrente.
+	 * 
+	 * @param tipo
+	 * @param titulo
+	 * @param inicio
+	 * @param fim
+	 * @param prioridade
+	 */
+	@Parameters({ "tipo", "titulo", "inicio", "fim", "prioridade" })
+	@Test
+	public void exibirCompromissoComRepeticao(String tipo, String titulo,
+			String inicio, String fim, String prioridade) {
+		CalendarTodayViewPage ctvp = super.openTodayView();
+		String id = ctvp.getAppointmentId(titulo);
+		String[] ids = id.split("rc");
+
+		AppointmentViewPage avp = cp.openAppointmentViewPage(
+				ids[0].substring(1), ids[1].substring(0, ids[1].length() - 1));
+		Assert.assertEquals(avp.getTitle(), titulo);
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/RemoverCompromissoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/RemoverCompromissoTestCase.java	(revision 4890)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/RemoverCompromissoTestCase.java	(revision 4917)
@@ -21,13 +21,23 @@
 public class RemoverCompromissoTestCase extends BaseCalendarTestCase {
 
+	/**
+	 * Remove o compromisso da data corrente.
+	 * 
+	 * @param titulo
+	 *            Titulo do compromisso a ser removido.
+	 */
 	@Parameters({ "titulo" })
 	@Test
-	public void removerCompromisso(String titulo) {
+	public void removerCompromissoDataCorrente(String titulo) {
+		// Abre a visao diaria e procura pelo compromisso.
 		CalendarTodayViewPage ctvp = super.openTodayView();
 		String id = ctvp.getAppointmentId(titulo);
 
+		// Abre a pagina do compromisso.
 		AppointmentViewPage avp = cp.openAppointmentViewPage(id);
+		// Verifica o titulo.
 		Assert.assertEquals(avp.getTitle(), titulo);
 
+		// Aciona o botao remover.
 		avp.removeAppointment();
 	}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/ExibirCompromissoTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/ExibirCompromissoTestCase.java	(revision 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/ExibirCompromissoTestCase.java	(revision 4917)
@@ -24,8 +24,17 @@
 public class ExibirCompromissoTestCase extends BaseCalendarTestCase {
 
+	/**
+	 * Exibe um compromisso da data corrente.
+	 * 
+	 * @param tipo
+	 * @param titulo
+	 * @param inicio
+	 * @param fim
+	 * @param prioridade
+	 */
 	@Parameters({ "tipo", "titulo", "inicio", "fim", "prioridade" })
 	@Test
-	public void exibirCompromisso(String tipo, String titulo, String inicio,
-			String fim, String prioridade) {
+	public void exibirCompromissoDataCorrente(String tipo, String titulo,
+			String inicio, String fim, String prioridade) {
 		CalendarTodayViewPage ctvp = super.openTodayView();
 		String id = ctvp.getAppointmentId(titulo);
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/EditarCompromissoRecorrenteTodasOcorrenciasTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/EditarCompromissoRecorrenteTodasOcorrenciasTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/EditarCompromissoRecorrenteTodasOcorrenciasTestCase.java	(revision 4917)
@@ -0,0 +1,56 @@
+package org.expressolivre.cte.calendar.visualizar;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentEditPage;
+import org.expressolivre.cte.pages.calendar.AppointmentSearchResultPage;
+import org.expressolivre.cte.pages.calendar.AppointmentViewPage;
+import org.testng.Assert;
+import org.testng.annotations.Optional;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Caso de Teste: EL-968:Editar todos ocorrÃªncias do compromisso com repetiÃ§Ã£o
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-968
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Ago 11, 2011 at 4:45:43 PM
+ * 
+ */
+public class EditarCompromissoRecorrenteTodasOcorrenciasTestCase extends
+		BaseCalendarTestCase {
+
+	@Parameters({ "tipo", "titulo", "descricao", "local", "horaInicial",
+			"horaFinal", "prioridade", "novoTitulo", "novaDescricao",
+			"novoLocal", "novaData", "novaHoraInicial", "novoMinutoInicial",
+			"novaHoraFinal", "novoMinutoFinal" })
+	@Test
+	public void editarCompromissoRecorrenteTodasOcorrencias(
+			@Optional("Normal") String tipo, String titulo,
+			@Optional("") String descricao, @Optional("") String local,
+			String horaInicial, String horaFinal,
+			@Optional("Normal") String prioridade, String novoTitulo,
+			String novaDescricao, String novoLocal,
+			@Optional("") String novaData, String novaHoraInicial,
+			String novoMinutoInicial, String novaHoraFinal,
+			String novoMinutoFinal) {
+
+		// Procura o compromisso.
+		cp.setSearchText(titulo);
+		AppointmentSearchResultPage asrp = cp.searchAppointment();
+		Assert.assertEquals(asrp.getResultsNumber(), "1 ocorrÃªncia encontrada.");
+		// Vai para a pagina de visualizacao do compromisso.
+		AppointmentViewPage avp = asrp.viewAppointment(1);
+
+		AppointmentEditPage aep = avp.editAppointmentSeries();
+		aep.setLocation(novoLocal);
+		aep.setStartHour(novaHoraInicial);
+		aep.setStartMinute(novoMinutoInicial);
+		aep.setEndHour(novaHoraFinal);
+		aep.setEndMinute(novoMinutoFinal);
+		aep.saveAppointment();
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/EditarCompromissoRecorrente1OcorrenciaTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/EditarCompromissoRecorrente1OcorrenciaTestCase.java	(revision 4917)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/visualizar/EditarCompromissoRecorrente1OcorrenciaTestCase.java	(revision 4917)
@@ -0,0 +1,56 @@
+package org.expressolivre.cte.calendar.visualizar;
+
+import org.expressolivre.cte.common.BaseCalendarTestCase;
+import org.expressolivre.cte.pages.calendar.AppointmentEditPage;
+import org.expressolivre.cte.pages.calendar.AppointmentSearchResultPage;
+import org.expressolivre.cte.pages.calendar.AppointmentViewPage;
+import org.testng.Assert;
+import org.testng.annotations.Optional;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+/**
+ * Caso de Teste: EL-967:Editar 1 ocorrÃªncia do compromisso com repetiÃ§Ã£o
+ * 
+ * Link: http://testlink.expressolivre.org/linkto.php?tprojectPrefix=EL&item=
+ * testcase&id=EL-967
+ * 
+ * @author L.F.Estivalet (Serpro)
+ * 
+ *         Created on Ago 11, 2011 at 3:15:43 PM
+ * 
+ */
+public class EditarCompromissoRecorrente1OcorrenciaTestCase extends
+		BaseCalendarTestCase {
+
+	@Parameters({ "tipo", "titulo", "descricao", "local", "horaInicial",
+			"horaFinal", "prioridade", "novoTitulo", "novaDescricao",
+			"novoLocal", "novaData", "novaHoraInicial", "novoMinutoInicial",
+			"novaHoraFinal", "novoMinutoFinal" })
+	@Test
+	public void editarCompromissoRecorrenteUmaOcorrencia(
+			@Optional("Normal") String tipo, String titulo,
+			@Optional("") String descricao, @Optional("") String local,
+			String horaInicial, String horaFinal,
+			@Optional("Normal") String prioridade, String novoTitulo,
+			String novaDescricao, String novoLocal,
+			@Optional("") String novaData, String novaHoraInicial,
+			String novoMinutoInicial, String novaHoraFinal,
+			String novoMinutoFinal) {
+
+		// Procura o compromisso.
+		cp.setSearchText(titulo);
+		AppointmentSearchResultPage asrp = cp.searchAppointment();
+		Assert.assertEquals(asrp.getResultsNumber(), "1 ocorrÃªncia encontrada.");
+		// Vai para a pagina de visualizacao do compromisso.
+		AppointmentViewPage avp = asrp.viewAppointment(1);
+
+		AppointmentEditPage aep = avp.editAppointment();
+		aep.setLocation(novoLocal);
+		aep.setStartHour(novaHoraInicial);
+		aep.setStartMinute(novoMinutoInicial);
+		aep.setEndHour(novaHoraFinal);
+		aep.setEndMinute(novoMinutoFinal);
+		aep.saveAppointment();
+	}
+}
Index: /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/pesquisar/PesquisarCompromissoPeloTituloEApagarTestCase.java
===================================================================
--- /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/pesquisar/PesquisarCompromissoPeloTituloEApagarTestCase.java	(revision 4902)
+++ /devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/calendar/pesquisar/PesquisarCompromissoPeloTituloEApagarTestCase.java	(revision 4917)
@@ -1,3 +1,6 @@
 package org.expressolivre.cte.calendar.pesquisar;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
 
 import org.expressolivre.cte.common.BaseCalendarTestCase;
@@ -28,13 +31,16 @@
 	 *            Titulo a ser pesquisado.
 	 */
-	@Parameters({ "titulo", "descricao", "local", "data", "horaInicio",
-			"horaFim" })
+	@Parameters({ "titulo", "descricao", "local", "horaInicio", "horaFim" })
 	@Test
 	public void pesquisarCompromissoPeloTituloEApagar(String titulo,
-			String descricao, String local, String data, String horaInicio,
-			String horaFim) {
+			String descricao, String local, String horaInicio, String horaFim) {
 		cp.setSearchText(titulo);
 		AppointmentSearchResultPage asrp = cp.searchAppointment();
 		Assert.assertEquals(asrp.getResultsNumber(), "1 ocorrÃªncia encontrada.");
+
+		Calendar cal = Calendar.getInstance();
+		SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
+		String data = sdf2.format(cal.getTime());
+
 		Assert.assertEquals(asrp.getAppointmentSchedule(1), data + " - "
 				+ horaInicio);
@@ -43,5 +49,25 @@
 		Assert.assertEquals(asrp.getAppointmentDescription(1), fullDescription);
 
-		AppointmentViewPage avp = asrp.editAppointment(1);
+		AppointmentViewPage avp = asrp.viewAppointment(1);
+		avp.removeAppointment();
+	}
+
+	@Parameters({ "titulo", "descricao", "local", "data", "horaInicio",
+			"horaFim" })
+	@Test
+	public void pesquisarCompromissoPeloTituloEDataApagar(String titulo,
+			String descricao, String local, String data, String horaInicio,
+			String horaFim) {
+		cp.setSearchText(titulo);
+		AppointmentSearchResultPage asrp = cp.searchAppointment();
+		Assert.assertEquals(asrp.getResultsNumber(), "1 ocorrÃªncia encontrada.");
+
+		Assert.assertEquals(asrp.getAppointmentSchedule(1), data + " - "
+				+ horaInicio);
+		String fullDescription = horaInicio + "-" + horaFim + " (A)\n" + titulo
+				+ "\n" + descricao + "\nLocal: " + local;
+		Assert.assertEquals(asrp.getAppointmentDescription(1), fullDescription);
+
+		AppointmentViewPage avp = asrp.viewAppointment(1);
 		avp.removeAppointment();
 	}
Index: /devel/testlink/automation2.0/[FUN03.3] - PesquisarCompromisso.xml
===================================================================
--- /devel/testlink/automation2.0/[FUN03.3] - PesquisarCompromisso.xml	(revision 4902)
+++ /devel/testlink/automation2.0/[FUN03.3] - PesquisarCompromisso.xml	(revision 4917)
@@ -49,9 +49,12 @@
 	  <parameter name="descricao"  value="DescriÃ§Ã£o do compromisso normal data corrente"/>
 	  <parameter name="local"  value="SalaB"/>
-	  <parameter name="data"  value="04/08/2011"/>
 	  <parameter name="horaInicio"  value="09:00"/>
 	  <parameter name="horaFim"  value="09:30"/>
 	  <classes>
-	     <class name="org.expressolivre.cte.calendar.pesquisar.PesquisarCompromissoPeloTituloEApagarTestCase" />
+	     <class name="org.expressolivre.cte.calendar.pesquisar.PesquisarCompromissoPeloTituloEApagarTestCase">
+	     	<methods>
+	     		<include name="pesquisarCompromissoPeloTituloEApagar"></include>
+	     	</methods>
+	     </class>
 	  </classes>
   </test>
Index: /devel/testlink/automation2.0/[FUN03.2] - AdicionarCompromisso.xml
===================================================================
--- /devel/testlink/automation2.0/[FUN03.2] - AdicionarCompromisso.xml	(revision 4902)
+++ /devel/testlink/automation2.0/[FUN03.2] - AdicionarCompromisso.xml	(revision 4917)
@@ -1,5 +1,5 @@
 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
 <suite name="[FUN03.2] Adicionar Compromisso" >
-
+ 
   <test name="Adicionar compromisso normal data corrente">
 	  <parameter name="tipo"  value="Normal"/>
@@ -64,4 +64,5 @@
 	  </classes>
   </test>
+  
 
 
@@ -189,10 +190,8 @@
 	  <parameter name="tipo"  value="Normal"/>
 	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia semanal"/>
-	  <parameter name="dataInicial"  value="04/08/2011"/>
 	  <parameter name="horaInicial"  value="09"/>
 	  <parameter name="minutoInicial"  value="00"/>
 	  <parameter name="horaFinal"  value="10"/>
 	  <parameter name="minutoFinal"  value="00"/>
-	  <parameter name="dataFinal"  value="31/08/2011"/>
 	  <parameter name="dias"  value="2,4,8"/>
 	  <classes>
@@ -249,14 +248,11 @@
   </test>
 
-
   <test name="Adicionar compromisso com recorrencia diaria">
 	  <parameter name="tipo"  value="Normal"/>
 	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia diaria"/>
-	  <parameter name="dataInicial"  value="04/08/2011"/>
 	  <parameter name="horaInicial"  value="09"/>
 	  <parameter name="minutoInicial"  value="00"/>
 	  <parameter name="horaFinal"  value="10"/>
 	  <parameter name="minutoFinal"  value="00"/>
-	  <parameter name="dataFinal"  value="07/08/2011"/>
 	  <classes>
 	     <class name="org.expressolivre.cte.calendar.adicionar.AdicionarCompromissoComRepeticaoDiariaTestCase" />
@@ -270,3 +266,111 @@
 	  </classes>
   </test>
+
+  <test name="Adicionar compromisso normal data corrente">
+	  <parameter name="tipo"  value="Normal"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso normal data corrente"/>
+	  <parameter name="descricao"  value="DescriÃ§Ã£o do compromisso normal data corrente"/>
+	  <parameter name="local"  value="SalaB"/>
+	  <parameter name="horaInicial"  value="14"/>
+	  <parameter name="minutoInicial"  value="00"/>
+	  <parameter name="horaFinal"  value="14"/>
+	  <parameter name="minutoFinal"  value="30"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.adicionar.AdicionarCompromissoTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Adicionar compromisso com recorrencia diaria para gerar conflito">
+	  <parameter name="tipo"  value="Normal"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia diaria conflito"/>
+	  <parameter name="horaInicial"  value="14"/>
+	  <parameter name="minutoInicial"  value="10"/>
+	  <parameter name="horaFinal"  value="15"/>
+	  <parameter name="minutoFinal"  value="20"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.adicionar.AdicionarCompromissoComRepeticaoDiariaConflitoTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Adicionar compromisso com recorrencia diaria para gerar conflito">
+	  <parameter name="tipo"  value="Normal"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia diaria conflito"/>
+	  <parameter name="horaInicial"  value="14"/>
+	  <parameter name="minutoInicial"  value="10"/>
+	  <parameter name="horaFinal"  value="15"/>
+	  <parameter name="minutoFinal"  value="20"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.adicionar.AdicionarCompromissoComRepeticaoDiariaIgnorarConflitoTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Remover compromisso com recorrencia">
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia diaria conflito"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.visualizar.RemoverCompromissoComRepeticaoTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Remover compromisso normal data corrente">
+	  <parameter name="titulo"  value="[Selenium] Compromisso normal data corrente"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.visualizar.RemoverCompromissoTestCase" />
+	  </classes>
+  </test>
+   
+
+  <test name="Adicionar compromisso normal data corrente sem participantes">
+	  <parameter name="tipo"  value="Normal"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso normal data corrente"/>
+	  <parameter name="descricao"  value="DescriÃ§Ã£o do compromisso normal data corrente"/>
+	  <parameter name="local"  value="SalaB"/>
+	  <parameter name="horaInicial"  value="14"/>
+	  <parameter name="minutoInicial"  value="00"/>
+	  <parameter name="horaFinal"  value="14"/>
+	  <parameter name="minutoFinal"  value="30"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.adicionar.AdicionarCompromissoSemParticipantesTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Adicionar compromisso com recorrencia mensal por data">
+	  <parameter name="tipo"  value="Normal"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia mensal por data"/>
+	  <parameter name="horaInicial"  value="11"/>
+	  <parameter name="minutoInicial"  value="15"/>
+	  <parameter name="horaFinal"  value="12"/>
+	  <parameter name="minutoFinal"  value="00"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.adicionar.AdicionarCompromissoComRepeticaoMensalPorDataTestCase" />
+	  </classes>
+  </test>
+
+
+  <test name="Remover compromisso com recorrencia">
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia mensal por data"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.visualizar.RemoverCompromissoComRepeticaoTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Adicionar compromisso com recorrencia anual">
+	  <parameter name="tipo"  value="Normal"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia anual"/>
+	  <parameter name="horaInicial"  value="11"/>
+	  <parameter name="minutoInicial"  value="15"/>
+	  <parameter name="horaFinal"  value="12"/>
+	  <parameter name="minutoFinal"  value="00"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.adicionar.AdicionarCompromissoComRepeticaoAnualTestCase" />
+	  </classes>
+  </test>
+
+
+  <test name="Remover compromisso com recorrencia">
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia anual"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.visualizar.RemoverCompromissoComRepeticaoTestCase" />
+	  </classes>
+  </test>
+
 </suite>
Index: /devel/testlink/automation2.0/[FUN03.6] - VisualizarCompromisso.xml
===================================================================
--- /devel/testlink/automation2.0/[FUN03.6] - VisualizarCompromisso.xml	(revision 4902)
+++ /devel/testlink/automation2.0/[FUN03.6] - VisualizarCompromisso.xml	(revision 4917)
@@ -3,12 +3,14 @@
 <suite name="[FUN03.6] Visualizar Compromisso" >
 
-<!-- 
-  <test name="Adicionar compromisso normal data corrente">
+<!--  
+  <test name="Adicionar compromisso">
 	  <parameter name="tipo"  value="Normal"/>
-	  <parameter name="titulo"  value="[Selenium] Compromisso normal data corrente"/>
-	  <parameter name="descricao"  value="DescriÃ§Ã£o do compromisso normal data corrente"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso normal"/>
+	  <parameter name="descricao"  value="DescriÃ§Ã£o do compromisso normal"/>
 	  <parameter name="local"  value="SalaB"/>
+	  <parameter name="dataInicial"  value="04/08/2011"/>
 	  <parameter name="horaInicial"  value="9"/>
 	  <parameter name="minutoInicial"  value="00"/>
+	  <parameter name="dataFinal"  value="04/08/2011"/>
 	  <parameter name="horaFinal"  value="9"/>
 	  <parameter name="minutoFinal"  value="30"/>
@@ -17,13 +19,12 @@
 	  </classes>
   </test>
--->
  
+  
   <test name="Editar compromisso">
 	  
 	  <parameter name="tipo"  value="Normal"/>
-	  <parameter name="titulo"  value="[Selenium] Compromisso normal data corrente"/>
-	  <parameter name="descricao"  value="DescriÃ§Ã£o do compromisso normal data corrente"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso normal"/>
+	  <parameter name="descricao"  value="DescriÃ§Ã£o do compromisso normal"/>
 	  <parameter name="local"  value="SalaB"/>
-	  <parameter name="data"  value="04/08/2011"/>
 	  <parameter name="horaInicial"  value="09:00"/>
 	  <parameter name="horaFinal"  value="09:30"/>
@@ -32,8 +33,8 @@
 	  <parameter name="novaDescricao"  value="nova descriÃ§Ã£o"/>
 	  <parameter name="novoLocal"  value="nova sala"/>
-	  <parameter name="novaData"  value="05/08/2011"/>
-	  <parameter name="novaHoraInicial"  value="9"/>
+	  <parameter name="novaData"  value="06/08/2011"/>
+	  <parameter name="novaHoraInicial"  value="15"/>
 	  <parameter name="novoMinutoInicial"  value="00"/>
-	  <parameter name="novaHoraFinal"  value="9"/>
+	  <parameter name="novaHoraFinal"  value="16"/>
 	  <parameter name="novoMinutoFinal"  value="30"/>
 	  <classes>
@@ -41,5 +42,106 @@
 	  </classes>
   </test>
+  
+  <test name="Pesquisar compromisso pelo titulo - retorna 1 ocorrencia e apaga">
+	  <parameter name="titulo"  value="Novo titulo"/>
+	  <parameter name="descricao"  value="nova descriÃ§Ã£o"/>
+	  <parameter name="local"  value="nova sala"/>
+	  <parameter name="data"  value="06/08/2011"/>
+	  <parameter name="horaInicio"  value="15:00"/>
+	  <parameter name="horaFim"  value="16:30"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.pesquisar.PesquisarCompromissoPeloTituloEApagarTestCase">
+	     	<methods>
+	     		<include name="pesquisarCompromissoPeloTituloEDataApagar"></include>
+	     	</methods>
+	     </class>
+	  </classes>
+  </test>
+  
+    <test name="Adicionar compromisso com recorrencia semanal">
+	  <parameter name="tipo"  value="Normal"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia semanal"/>
+	  <parameter name="horaInicial"  value="09"/>
+	  <parameter name="minutoInicial"  value="00"/>
+	  <parameter name="horaFinal"  value="10"/>
+	  <parameter name="minutoFinal"  value="00"/>
+	  <parameter name="dias"  value="2,4,8"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.adicionar.AdicionarCompromissoComRepeticaoSemanalTestCase" />
+	  </classes>
+  </test>
+  
+  <test name="Exibir compromisso com repeticao">
+	  <parameter name="tipo"  value="Normal"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia semanal"/>
+	  <parameter name="inicio"  value="09:00"/>
+	  <parameter name="fim"  value="10:30"/>
+	  <parameter name="prioridade"  value="Normal"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.visualizar.ExibirCompromissoComRepeticaoTestCase" />
+	  </classes>
+  </test>
 
- 
+
+  <test name="Editar uma ocorrencia de compromisso recorrente">
+	  
+	  <parameter name="tipo"  value="Normal"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia semanal"/>
+	  <parameter name="descricao"  value="DescriÃ§Ã£o do compromisso"/>
+	  <parameter name="local"  value="SalaB"/>
+	  <parameter name="horaInicial"  value="09:00"/>
+	  <parameter name="horaFinal"  value="09:30"/>
+	  
+	  <parameter name="novoTitulo"  value="Novo titulo"/>
+	  <parameter name="novaDescricao"  value="nova descriÃ§Ã£o"/>
+	  <parameter name="novoLocal"  value="nova sala"/>
+	  <parameter name="novaData"  value="06/08/2011"/>
+	  <parameter name="novaHoraInicial"  value="15"/>
+	  <parameter name="novoMinutoInicial"  value="00"/>
+	  <parameter name="novaHoraFinal"  value="16"/>
+	  <parameter name="novoMinutoFinal"  value="30"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.visualizar.EditarCompromissoRecorrente1OcorrenciaTestCase" />
+	  </classes>
+  </test>
+  
+  
+  <test name="Remover compromisso recorrente editado">
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia semanal"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.visualizar.RemoverCompromissoTestCase" />
+	  </classes>
+  </test>
+  
+    <test name="Editar todas ocorrencias de compromisso recorrente">
+	  
+	  <parameter name="tipo"  value="Normal"/>
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia semanal"/>
+	  <parameter name="descricao"  value="DescriÃ§Ã£o do compromisso"/>
+	  <parameter name="local"  value="SalaB"/>
+	  <parameter name="horaInicial"  value="09:00"/>
+	  <parameter name="horaFinal"  value="09:30"/>
+	  
+	  <parameter name="novoTitulo"  value="Novo titulo"/>
+	  <parameter name="novaDescricao"  value="nova descriÃ§Ã£o"/>
+	  <parameter name="novoLocal"  value="nova sala"/>
+	  <parameter name="novaData"  value="06/08/2011"/>
+	  <parameter name="novaHoraInicial"  value="15"/>
+	  <parameter name="novoMinutoInicial"  value="00"/>
+	  <parameter name="novaHoraFinal"  value="16"/>
+	  <parameter name="novoMinutoFinal"  value="30"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.visualizar.EditarCompromissoRecorrenteTodasOcorrenciasTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Remover compromisso com recorrencia">
+	  <parameter name="titulo"  value="[Selenium] Compromisso com recorrencia semanal"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.visualizar.RemoverCompromissoComRepeticaoTestCase" />
+	  </classes>
+  </test>
+  -->
+
+   
 </suite>
Index: /devel/testlink/automation2.0/[FUN03.8] - PreferenciaAgenda.xml
===================================================================
--- /devel/testlink/automation2.0/[FUN03.8] - PreferenciaAgenda.xml	(revision 4917)
+++ /devel/testlink/automation2.0/[FUN03.8] - PreferenciaAgenda.xml	(revision 4917)
@@ -0,0 +1,128 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
+  
+<suite name="[FUN03.8] Preferencia agenda" >
+
+  <test name="Procurar categoria sem resultado">
+	  <parameter name="nome"  value="xyzabc"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.ProcurarCategoriaSemResultadoTestCase" />
+	  </classes>
+  </test>
+
+  
+  <test name="Adicionar categoria">
+	  <parameter name="nome"  value="Categoria teste"/>
+	  <parameter name="descricao"  value="Categoria criado pelo Selenium."/>
+	  <parameter name="particular"  value="false"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.CriarCategoriaTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Procurar categoria com resultado">
+	  <parameter name="nome"  value="Categoria teste"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.ProcurarCategoriaTestCase" />
+	  </classes>
+  </test>
+
+  
+  <test name="Editar categoria">
+	  <parameter name="nome"  value="Categoria teste"/>
+	  <parameter name="descricao"  value="Categoria criado pelo Selenium."/>
+	  <parameter name="particular"  value="false"/>
+	  <parameter name="novoNome"  value="Nova Categoria teste"/>
+	  <parameter name="novaDescricao"  value="Nova descriÃ§Ã£o criado pelo Selenium."/>
+	  <parameter name="novoParticular"  value="true"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.EditarCategoriaTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Remover categoria">
+	  <parameter name="nome"  value="Nova Categoria teste"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.RemoverCategoriaTestCase" />
+	  </classes>
+  </test>
+
+
+  <test name="Adicionar categoria">
+	  <parameter name="nome"  value="Categoria pai"/>
+	  <parameter name="descricao"  value="Categoria criado pelo Selenium para testar subcategorias."/>
+	  <parameter name="particular"  value="false"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.CriarCategoriaTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Adicionar sub categoria">
+	  <parameter name="nomePai"  value="Categoria pai"/>
+	  <parameter name="nome"  value="Categoria filha"/>
+	  <parameter name="descricao"  value="Categoria filha criado pelo Selenium para testar subcategorias."/>
+	  <parameter name="particular"  value="false"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.CriarSubCategoriaTestCase" />
+	  </classes>
+  </test>
+
+
+  <test name="Remover categoria sem remover sub categoria">
+	  <parameter name="nome"  value="Categoria pai"/>
+	  <parameter name="nomeFilha"  value="Categoria filha"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.RemoverCategoriaSemExcluirSubTestCase" />
+	  </classes>
+  </test>
+
+
+
+  <test name="Adicionar sub categoria">
+	  <parameter name="nomePai"  value="Categoria filha"/>
+	  <parameter name="nome"  value="Categoria neta"/>
+	  <parameter name="descricao"  value="Categoria neta criado pelo Selenium para testar subcategorias."/>
+	  <parameter name="particular"  value="false"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.CriarSubCategoriaTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Remover categoria e as sub categorias">
+	  <parameter name="nome"  value="Categoria filha"/>
+	  <parameter name="nomeFilha"  value="Categoria neta"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.RemoverCategoriaESubTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Criar categoria sem informar nome">
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.CriarCategoriaSemNomeTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Adicionar categoria">
+	  <parameter name="nome"  value="Categoria xyz"/>
+	  <parameter name="descricao"  value="Categoria criado pelo Selenium para testar subcategorias."/>
+	  <parameter name="particular"  value="false"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.CriarCategoriaTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Adicionar categoria com nome ja existente">
+	  <parameter name="nome"  value="Categoria xyz"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.CriarCategoriaComNomeDuplicadoTestCase" />
+	  </classes>
+  </test>
+
+  <test name="Remover categoria">
+	  <parameter name="nome"  value="Categoria xyz"/>
+	  <classes>
+	     <class name="org.expressolivre.cte.calendar.preferencias.RemoverCategoriaTestCase" />
+	  </classes>
+  </test>
+ 
+
+</suite>
