package org.richfaces.tests.metamer.ftest.richExtendedDataTable;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
import org.jboss.arquillian.graphene.Graphene;
import org.openqa.selenium.support.FindBy;
import org.richfaces.fragment.common.picker.ChoicePickerHelper;
import org.richfaces.fragment.dataScroller.DataScroller;
import org.richfaces.model.SortMode;
import org.richfaces.tests.metamer.ftest.abstractions.DataTableSortingTest;
import org.richfaces.tests.metamer.ftest.annotations.IssueTracking;
import org.richfaces.tests.metamer.ftest.richExtendedDataTable.fragment.SortingEDT;
import org.testng.annotations.Test;
import com.google.common.collect.Sets;
public abstract class ExtendedDataTableSortingTest extends DataTableSortingTest {
@FindBy(css = "div.rf-edt[id$=richEDT]")
private SortingEDT table;
@Override
protected SortingEDT getTable() {
return table;
}
@Test
@IssueTracking("https://issues.jboss.org/browse/RF-7872")
public void testShowColumnControlHideAllColumnsAndScroll() {
setAttribute("showColumnControl", true);
getTable().getHeader().openColumnControl().hideAllColumns();
// check
assertNotVisible(getTable().advanced().getTableBodyElement(), "Table body should not be visible");
assertTrue(getTable().getHeader().openColumnControl().areAllColumnsHidden());
// do some scrolling
Graphene.guardAjax(dataScroller2).switchTo(DataScroller.DataScrollerSwitchButton.NEXT);
// check
assertNotVisible(getTable().advanced().getTableBodyElement(), "Table body should not be visible");
assertTrue(getTable().getHeader().openColumnControl().areAllColumnsHidden());
// do some scrolling
Graphene.guardAjax(dataScroller2).switchTo(DataScroller.DataScrollerSwitchButton.LAST);
Graphene.guardAjax(dataScroller2).switchTo(DataScroller.DataScrollerSwitchButton.PREVIOUS);
// check
assertNotVisible(getTable().advanced().getTableBodyElement(), "Table body should not be visible");
assertTrue(getTable().getHeader().openColumnControl().areAllColumnsHidden());
}
@Test
@IssueTracking("https://issues.jboss.org/browse/RF-7872")
public void testShowColumnControlWithSorting() {
setAttribute("showColumnControl", true);
setAttribute("style", "z-index: 50;");
setAttribute("sortMode", SortMode.single);
// hide column with title
getTable().getHeader().openColumnControl().hideColumn(ChoicePickerHelper.byVisibleText().contains("title"));
sortByColumn(COLUMN_SEX);
verifySortingByColumns(Sets.newHashSet(2), "sex");// 2 = column with title
// check column visibility stays unchecked
assertFalse(getTable().getHeader().openColumnControl().isColumnChecked(ChoicePickerHelper.byVisibleText().contains("title")));
// hide column with sex
getTable().getHeader().openColumnControl().hideColumn(ChoicePickerHelper.byVisibleText().contains("sex"));
sortByColumn(COLUMN_NUMBER_OF_KIDS1);
verifySortingByColumns(Sets.newHashSet(0, 2), "numberOfKids");// 0 = column with sex, 2 = column with title
// check column visibility stays unchecked
assertFalse(getTable().getHeader().openColumnControl().isColumnChecked(ChoicePickerHelper.byVisibleText().contains("sex")));
assertFalse(getTable().getHeader().openColumnControl().isColumnChecked(ChoicePickerHelper.byVisibleText().contains("title")));
}
}