package org.lightadmin.page; import org.junit.After; import org.junit.Test; import org.lightadmin.LoginOnce; import org.lightadmin.RunWithConfiguration; import org.lightadmin.SeleniumIntegrationTest; import org.lightadmin.config.FilterTestEntityConfiguration; import org.lightadmin.data.Domain; import static org.lightadmin.util.DomainAsserts.assertTableData; @RunWithConfiguration( {FilterTestEntityConfiguration.class }) @LoginOnce( domain = Domain.FILTER_TEST_DOMAIN ) public class FilterTest extends SeleniumIntegrationTest { @After public void resetFilter() { getStartPage().resetFilter(); } //Covers LA-6: https://github.com/max-dev/light-admin/issues/6 @Test public void canFilterByIntegerField() { getStartPage().openAdvancedSearch(); getStartPage().filter( "integerField", "1234567" ); assertTableData( expectedResult1, getStartPage().getDataTable(), webDriver(), webDriverTimeout() ); } //Covers LA-25: https://github.com/max-dev/light-admin/issues/25 @Test public void canFilterByPrimitiveIntegerField() { getStartPage().openAdvancedSearch(); getStartPage().filter( "primitiveIntegerField", "15235" ); assertTableData( expectedResult7, getStartPage().getDataTable(), webDriver(), webDriverTimeout() ); } @Test public void canFilterByIdField() { getStartPage().openAdvancedSearch(); getStartPage().filter( "id", "9" ); assertTableData( expectedResult6, getStartPage().getDataTable(), webDriver(), webDriverTimeout() ); } @Test public void canFilterByDecimalField() { getStartPage().openAdvancedSearch(); getStartPage().filter( "decimalField", "1499.99" ); assertTableData( expectedResult2, getStartPage().getDataTable(), webDriver(), webDriverTimeout() ); } @Test public void textFilterIsCaseInsensitive() { getStartPage().openAdvancedSearch(); getStartPage().filter( "textField", "CASE sensitivity TeSt" ); assertTableData( expectedResult4, getStartPage().getDataTable(), webDriver(), webDriverTimeout() ); } @Test public void canFilterByPartialTextQuery() { getStartPage().openAdvancedSearch(); getStartPage().filter( "textField", "query" ); assertTableData( expectedResult5, getStartPage().getDataTable(), webDriver(), webDriverTimeout() ); } @Test public void canFilterByCombinedCriteria() { getStartPage().openAdvancedSearch(); getStartPage().filter( "primitiveIntegerField", "31264" ); getStartPage().filter( "decimalField", "61.12" ); assertTableData( expectedResult8, getStartPage().getDataTable(), webDriver(), webDriverTimeout() ); } //Covers LA-46: https://github.com/max-dev/light-admin/issues/46 @Test public void canFilterByTextWithSpecialCharacters() { getStartPage().openAdvancedSearch(); getStartPage().filter( "textField", "管#<,&«$'(*@×¢¤₤€¥ª ™®© ØøÅåÆæĈę ¦_{~>½" ); assertTableData( expectedResult3, getStartPage().getDataTable(), webDriver(), webDriverTimeout() ); } private static final String[][] expectedResult1 = {{"1", "integer search test", "1234567", "521", "22.2", ""}}; private static final String[][] expectedResult2 = {{"2", "decimal search test", "456", "31264", "1499.99", ""}}; private static final String[][] expectedResult3 = {{"3", "管#<,&«$'(*@×¢¤₤€¥ª ™®© ØøÅåÆæĈę ¦_{~>½", "789", "62342", "22.2", ""}}; private static final String[][] expectedResult4 = { {"4", "Case Sensitivity Test", "901", "823", "22.2", "Yes"}, {"5", "Case sensitivity test", "901", "9521", "22.2", "No"} }; private static final String[][] expectedResult5 = { {"6", "query partial search test", "234", "9164", "22.2", "Yes"}, {"7", "partial querysearch test", "345", "612325", "22.2", "Yes"}, {"8", "search test by partial query", "567", "623412", "22.2", "Yes"} }; private String[][] expectedResult6 = {{"9", "Id search test", "234", "2932", "21.2", "No"}}; private String[][] expectedResult7 = {{"10", "primitive integer search test", "345", "15235", "22.2", "Yes"}}; private String[][] expectedResult8 = {{"11", "combined criteria search test", "345", "31264", "61.12", "Yes"}}; }