Skip to content

Commit b4d52e0

Browse files
committed
fix comments about selectFilter javadoc and initFilterColumn method
1 parent 0435138 commit b4d52e0

2 files changed

Lines changed: 30 additions & 11 deletions

File tree

src/org/labkey/test/components/ui/grids/ResponsiveGrid.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.labkey.test.components.react.ReactCheckBox;
1818
import org.labkey.test.components.ui.grids.FieldReferenceManager.FieldReference;
1919
import org.labkey.test.components.ui.search.FilterExpressionPanel;
20+
import org.labkey.test.components.ui.search.FilterFacetedPanel;
2021
import org.labkey.test.params.FieldKey;
2122
import org.labkey.test.util.selenium.WebElementUtils;
2223
import org.openqa.selenium.Keys;
@@ -46,6 +47,8 @@
4647
import static org.labkey.remoteapi.query.Filter.Operator.CONTAINS_NONE;
4748
import static org.labkey.remoteapi.query.Filter.Operator.DOES_NOT_CONTAIN_EXACTLY;
4849
import static org.labkey.remoteapi.query.Filter.Operator.IN;
50+
import static org.labkey.remoteapi.query.Filter.Operator.IS_EMPTY;
51+
import static org.labkey.remoteapi.query.Filter.Operator.IS_NOT_EMPTY;
4952
import static org.labkey.test.WebDriverWrapper.waitFor;
5053

5154
public class ResponsiveGrid<T extends ResponsiveGrid<?>> extends WebDriverComponent<ResponsiveGrid<T>.ElementCache> implements UpdatingComponent
@@ -241,17 +244,21 @@ public String filterColumnExpectingError(CharSequence columnIdentifier, Filter.O
241244
private GridFilterModal initFilterColumn(CharSequence columnIdentifier, Filter.Operator operator, Object value)
242245
{
243246
List<Filter.Operator> listOperators = List.of(IN, CONTAINS_ALL, CONTAINS_ANY, CONTAINS_EXACTLY, CONTAINS_NONE,
244-
DOES_NOT_CONTAIN_EXACTLY);
247+
DOES_NOT_CONTAIN_EXACTLY, IS_EMPTY, IS_NOT_EMPTY);
245248
clickColumnMenuItem(columnIdentifier, "Filter...", false);
246249
GridFilterModal filterModal = new GridFilterModal(getDriver(), this);
247250
if (operator != null)
248251
{
249252
if (listOperators.contains(operator) && value instanceof List<?>)
250253
{
251254
List<String> values = (List<String>) value;
252-
filterModal.selectFacetTab().selectValue(values.get(0));
253-
filterModal.selectFacetTab().checkValues(values.toArray(String[]::new));
254-
filterModal.selectFacetTab().selectFilter(operator.getDisplayValue());
255+
FilterFacetedPanel filterPanel = filterModal.selectFacetTab();
256+
filterPanel.selectValue(values.get(0));
257+
filterPanel.checkValues(values.toArray(String[]::new));
258+
if (filterPanel.isFiltersPresented())
259+
{
260+
filterPanel.selectFilter(operator);
261+
}
255262
}
256263
else
257264
filterModal.selectExpressionTab().setFilter(new FilterExpressionPanel.Expression(operator, value));
@@ -394,15 +401,16 @@ public T selectRow(int index, boolean checked)
394401

395402
/**
396403
* Finds the first row with the specified texts in the specified columns, and sets its checkbox
397-
* @param partialMap key-column (fieldKey, name, or label), value-text in that column
398-
* @param checked the desired checkbox state
404+
*
405+
* @param partialMap key-column (fieldKey, name, or label), value-text in that column
406+
* @param checked the desired checkbox state
399407
* @return this grid
400408
*/
401409
public T selectRow(Map<String, String> partialMap, boolean checked)
402410
{
403411
GridRow row = getRow(partialMap);
404412
selectRowAndVerifyCheckedCounts(row, checked);
405-
getWrapper().log("Row described by map ["+partialMap+"] selection state set to + ["+row.isSelected()+"]");
413+
getWrapper().log("Row described by map [" + partialMap + "] selection state set to + [" + row.isSelected() + "]");
406414

407415
return getThis();
408416
}

src/org/labkey/test/components/ui/search/FilterFacetedPanel.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@
88
import org.labkey.test.components.html.Input;
99
import org.labkey.test.components.react.ReactSelect;
1010
import org.labkey.test.components.ui.FilterStatusValue;
11+
import org.labkey.remoteapi.query.Filter;
1112
import org.openqa.selenium.WebDriver;
1213
import org.openqa.selenium.WebElement;
1314
import org.openqa.selenium.support.ui.ExpectedConditions;
1415

1516
import java.util.List;
1617
import java.util.stream.Collectors;
1718

19+
import static org.labkey.test.WebDriverWrapper.waitFor;
1820
import static org.labkey.test.components.html.Input.Input;
21+
import static org.labkey.test.util.samplemanagement.SMTestUtils.isVisible;
1922

2023
public class FilterFacetedPanel extends WebDriverComponent<FilterFacetedPanel.ElementCache>
2124
{
@@ -50,12 +53,20 @@ public void selectValue(String value)
5053
}
5154

5255
/**
53-
* Select a single facet value by clicking its label. Should replace all existing selections.
54-
* @param value desired value
56+
* Check that filter choosing option exists on the page.
57+
*/
58+
public boolean isFiltersPresented()
59+
{
60+
return waitFor(() -> isVisible(elementCache().filterTypeSelects), 1000);
61+
}
62+
63+
/**
64+
* Select a filer by clicking its label. Right now this method relevant only for multi-value text choice.
65+
* @param operator desired filter value
5566
*/
56-
public void selectFilter(String value)
67+
public void selectFilter(Filter.Operator operator)
5768
{
58-
elementCache().filterTypeSelects.select(value);
69+
elementCache().filterTypeSelects.select(operator.getDisplayValue());
5970
}
6071

6172
/**

0 commit comments

Comments
 (0)