package org.primefaces.showcase.ft; import org.jboss.arquillian.graphene.page.InitialPage; import org.jboss.arquillian.graphene.page.Page; import org.jboss.arquillian.junit.InSequence; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.primefaces.showcase.pages.HomePage; import org.primefaces.showcase.pages.datatable.DatatableFiltering; import org.primefaces.showcase.pages.datatable.DatatableHeaderAndFooter; import org.primefaces.showcase.pages.datatable.DatatableHome; import org.primefaces.showcase.pages.datatable.DatatablePagination; import java.util.List; import static junit.framework.Assert.assertEquals; import static org.jboss.arquillian.graphene.Graphene.waitGui; import static org.junit.Assert.assertTrue; /** * Created by rafael-pestano on 03/04/2014. */ public class ShowcaseFt extends BaseFt{ @Page HomePage home; @Test @InSequence(1) public void shouldBeInInitialPage() { browser.get(baseUrl +"index.xhtml"); assertTrue(home.isPresent()); } //datatable tests @Test @InSequence(2) public void shouldBeInDatatableHome(@InitialPage DatatableHome datatableHome){ assertTrue(datatableHome.isPresent()); } @Test @InSequence(3) public void shouldRenderSimpleDatatable(){ assertTrue(browser.findElement(By.xpath("//div[contains(@class, 'ui-datatable')]")).isDisplayed()); } @Test @InSequence(4) public void shouldRenderHeaderAndFooterTable(@InitialPage DatatableHeaderAndFooter datatableFooterAndHeader){ assertTrue(datatableFooterAndHeader.isPresent()); assertTrue(datatableFooterAndHeader.isTableHeaderPresent()); assertTrue(datatableFooterAndHeader.isTableFooterPresent()); } @Test @InSequence(5) public void shouldPaginateDatatable(@InitialPage DatatablePagination datatablePagination){ assertTrue(datatablePagination.isPresent()); assertEquals(datatablePagination.getDatatable().getTableRows().size(), 10); datatablePagination.selectPageByValue("15"); assertEquals(datatablePagination.getDatatable().getTableRows().size(), 15); datatablePagination.selectPageByValue("5"); assertEquals(datatablePagination.getDatatable().getTableRows().size(), 5); Integer tablePageBefore = datatablePagination.getCurrentPageValue(); datatablePagination.goToNextTablePage(); assertEquals(++tablePageBefore, datatablePagination.getCurrentPageValue()); datatablePagination.goToNextTablePage(); assertEquals(++tablePageBefore, datatablePagination.getCurrentPageValue()); datatablePagination.goToNextTablePage(); assertEquals(++tablePageBefore, datatablePagination.getCurrentPageValue()); datatablePagination.goToNextTablePage(); assertEquals(++tablePageBefore, datatablePagination.getCurrentPageValue()); datatablePagination.goToPreviousTablePage(); assertEquals(--tablePageBefore, datatablePagination.getCurrentPageValue()); datatablePagination.goToPreviousTablePage(); assertEquals(--tablePageBefore, datatablePagination.getCurrentPageValue()); datatablePagination.goToPreviousTablePage(); assertEquals(--tablePageBefore, datatablePagination.getCurrentPageValue()); } @Test @InSequence(6) public void shouldFilterDatatable(@InitialPage DatatableFiltering datatableFiltering){ assertTrue(datatableFiltering.isPresent()); datatableFiltering.filterInput("1"); List<WebElement> rows = datatableFiltering.getDatatable().getTableRows(); for (WebElement row : rows) { assertTrue(row.getText().contains("1")); } datatableFiltering.getDatatable().clearFilterColumn("modelColumn"); datatableFiltering.filterInput("2"); datatableFiltering.filterInput("313"); assertTrue(datatableFiltering.getDatatable().getTableRows().isEmpty()); datatableFiltering.getDatatable().clearFilterColumn("modelColumn"); datatableFiltering.filterInput("a"); waitGui(); datatableFiltering.filterSelect("BMW"); rows = datatableFiltering.getDatatable().getTableRows(); for (WebElement row : rows) { assertTrue(row.getText().contains("BMW")); } } }