package org.jboss.seam.rest.examples.tasks.ftest;
import java.net.URL;
import org.jboss.arquillian.ajocado.framework.AjaxSelenium;
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
/**
* Tests for the tasks page (tasks.html)
*
* @author <a href="http://community.jboss.org/people/jharting">Jozef Hartinger</a>
*/
public class TaskPageTest extends AbstractPageTest {
private TaskPage page;
@Drone
AjaxSelenium selenium;
@ArquillianResource
URL contextPath;
@Before
public void openTaskPage() {
if (page == null) {
page = new TaskPage(selenium, contextPath);
}
page.reload();
}
@Test
public void testNewTask() {
String task = "Learn GIT";
page.newTask(task, "School");
assertTrue(page.isTaskPresent(task));
page.reload();
assertTrue(page.isTaskPresent(task));
}
@Test
public void testIllegalTaskName() {
page.newTask("", "School");
assertTrue(selenium.isAlertPresent());
assertEquals(selenium.getAlert().trim(), "size must be between 1 and 100");
}
@Test
public void testRenamingTask() {
int id = 10;
String task = "Buy yoghurt";
String category = "Buy";
page.editTask(id, task, category);
assertFalse(page.isEditFormPresent(id));
assertTrue(page.isTaskPresent(category, id, task));
assertFalse(page.isTaskPresent("Buy milk")); // the old name
page.reload();
assertTrue(page.isTaskPresent(category, id, task));
assertFalse(page.isTaskPresent("Buy milk"));
}
@Test
public void testMovingTask() {
int id = 11;
String name = "Buy an infinite tape";
String newCategory = "School";
assertTrue(page.isTaskPresent(id, name));
page.editTask(id, name, newCategory);
assertTrue(page.isTaskPresent(newCategory, id, name));
page.reload(); // verify changes are stored on the server
assertTrue(page.isTaskPresent(newCategory, id, name));
}
@Test
// SEAMREST-13
public void testRemovingTask() {
assertTrue(page.isTaskPresent(4, "Learn new vocab for English conversations"));
page.removeTask(4);
assertFalse(page.isTaskPresent(4));
page.reload(); // verify changes are stored on the server
assertFalse(page.isTaskPresent(4));
}
@Test
public void testContent() {
assertTrue(page.isCategoryPresent("School"));
assertTrue(page.isCategoryPresent("Buy"));
assertTrue(page.isTaskPresent("School", 5));
assertTrue(page.isTaskPresent("School", 5, "Prepare a presentation for webdesign seminar"));
assertTrue(page.isTaskPresent("School", 3, "Finish the RESTEasy-Seam integration example"));
assertTrue(page.isTaskPresent("School", 2, "Build the Turing machine"));
assertTrue(page.isTaskPresent(20, "Get a haircut"));
assertTrue(page.isTaskPresent(19, "Extend passport"));
assertTrue(page.isTaskPresent(18, "Visit grandma"));
}
@Test
public void testResolvingTask() {
int taskId = 12;
assertTrue(page.isTaskPresent(taskId, "Order books"));
page.resolveTask(taskId);
assertFalse(page.isTaskPresent(taskId));
page.reload(); // verify changes are stored on the server
assertFalse(page.isTaskPresent(taskId));
assertTrue(page.goToResolvedPage().isTaskPresent(taskId));
}
}