Skip to content

Commit 9381483

Browse files
authored
Making it harder to delete all rows from lists (#2904)
1 parent 1afe6eb commit 9381483

File tree

6 files changed

+415
-14
lines changed

6 files changed

+415
-14
lines changed

src/org/labkey/test/BaseWebDriverTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.apache.commons.lang3.time.FastDateFormat;
2323
import org.apache.commons.lang3.tuple.ImmutablePair;
2424
import org.apache.commons.lang3.tuple.Pair;
25+
import org.apache.hc.core5.http.HttpStatus;
2526
import org.awaitility.Awaitility;
2627
import org.jetbrains.annotations.NotNull;
2728
import org.jetbrains.annotations.Nullable;
@@ -2734,6 +2735,15 @@ private File clickExportImageIcon(String chartParentCls, int chartIndex, Locator
27342735
}
27352736
}
27362737

2738+
public void verifyImagePopupInGrid(File imageFile)
2739+
{
2740+
mouseOver(Locator.xpath("//img[contains(@title, '" + imageFile.getName() + "')]"));
2741+
longWait().until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#helpDiv")));
2742+
String src = Locator.xpath("//div[@id='helpDiv']//img[contains(@src, 'download')]").findElement(getDriver()).getAttribute("src");
2743+
assertTrue("Wrong image in popup: " + src, src.contains(imageFile.getName()));
2744+
assertEquals("Bad response from image pop-up", HttpStatus.SC_OK, WebTestHelper.getHttpResponse(src).getResponseCode());
2745+
}
2746+
27372747
public List<Map<String, Object>> loadTsv(File tsv)
27382748
{
27392749
try (TabLoader loader = new TabLoader(tsv, true))

src/org/labkey/test/components/list/ManageListsGrid.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,30 @@ public File exportSelectedLists()
5353

5454
public BeginPage deleteSelectedLists()
5555
{
56-
clickHeaderButtonAndWait("Delete");
56+
if (getHeaderButton("Delete").getAttribute("class").contains("labkey-down-arrow"))
57+
clickHeaderMenu("Delete", true, "Delete List");
58+
else
59+
clickHeaderButtonAndWait("Delete");
60+
5761
ConfirmDeletePage confirmPage = new ConfirmDeletePage(getDriver());
5862
return confirmPage.confirmDelete();
5963
}
6064

65+
public BeginPage deleteAllDataFromSelectedLists()
66+
{
67+
clickHeaderMenu("Delete", true, "Delete All Data from List");
68+
ConfirmDeletePage confirmPage = new ConfirmDeletePage(getDriver(), "Confirm Delete All Data");
69+
return confirmPage.confirmDelete();
70+
}
71+
72+
public ManageListsGrid selectLists(List<String> listNames)
73+
{
74+
for (String listName : listNames)
75+
checkCheckbox(getRowIndex("Name", listName));
76+
77+
return this;
78+
}
79+
6180
public List<String> getListNames()
6281
{
6382
return getColumnDataAsText("Name");

src/org/labkey/test/pages/list/ConfirmDeletePage.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,17 @@
88

99
public class ConfirmDeletePage extends LabKeyPage<ConfirmDeletePage.ElementCache>
1010
{
11+
private String _deleteBtnText;
12+
1113
public ConfirmDeletePage(WebDriver driver)
14+
{
15+
this(driver, "Confirm Delete");
16+
}
17+
18+
public ConfirmDeletePage(WebDriver driver, String deleteBtnText)
1219
{
1320
super(driver);
21+
_deleteBtnText = deleteBtnText;
1422
}
1523

1624
public BeginPage confirmDelete()
@@ -27,6 +35,6 @@ protected ElementCache newElementCache()
2735

2836
protected class ElementCache extends LabKeyPage<?>.ElementCache
2937
{
30-
WebElement deleteButton = Locator.lkButton("Confirm Delete").findWhenNeeded(this);
38+
WebElement deleteButton = Locator.lkButton(_deleteBtnText == null ? "Confirm Delete" : _deleteBtnText).findWhenNeeded(this);
3139
}
3240
}

src/org/labkey/test/tests/InlineImagesListTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -219,11 +219,7 @@ public final void testList() throws Exception
219219
// Mouse over the logo, migh help with the following mouse over the image.
220220
mouseOver(Locator.tagWithAttributeContaining("img", "src", "logo.image"));
221221
sleep(500);
222-
mouseOver(Locator.xpath("//img[contains(@title, '" + LRG_PNG_FILE.getName() + "')]"));
223-
longWait().until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#helpDiv")));
224-
String src = Locator.xpath("//div[@id='helpDiv']//img[contains(@src, 'download')]").findElement(getDriver()).getAttribute("src");
225-
assertTrue("Wrong image in popup: " + src, src.contains(LRG_PNG_FILE.getName()));
226-
assertEquals("Bad response from image pop-up", HttpStatus.SC_OK, WebTestHelper.getHttpResponse(src).getResponseCode());
222+
verifyImagePopupInGrid(LRG_PNG_FILE);
227223

228224
// Commenting out for now. There is a random behavior where sometimes the thumbnail image will not show up when you move from one cell to another.
229225
/*
@@ -303,7 +299,7 @@ public final void testList() throws Exception
303299
sleep(500);
304300
mouseOver(Locator.xpath("//img[contains(@title, '" + LRG_PNG_FILE.getName() + "')]"));
305301
shortWait().until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#helpDiv")));
306-
src = Locator.xpath("//div[@id='helpDiv']//img[contains(@src, 'download')]").findElement(getDriver()).getAttribute("src");
302+
var src = Locator.xpath("//div[@id='helpDiv']//img[contains(@src, 'download')]").findElement(getDriver()).getAttribute("src");
307303
assertTrue("Wrong image in popup: " + src, src.contains(LRG_PNG_FILE.getName()));
308304
assertEquals("Bad response from image pop-up", HttpStatus.SC_OK, WebTestHelper.getHttpResponse(src).getResponseCode());
309305

src/org/labkey/test/tests/TriggerScriptTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -824,12 +824,11 @@ public void updateDataSetRow(int id, String tableName, Map<String, String> data)
824824
*/
825825
private void cleanUpListRows()
826826
{
827-
goToManagedList(LIST_NAME);
828-
clickButton("Delete All Rows", 0);
829-
waitForElement(Locator.xpath("//*[text()='Confirm Deletion']"));
830-
clickButton("Yes", 0);
831-
waitForText("Success");
832-
clickButton("OK");
827+
var listsPage = goToManageLists();
828+
var grid = listsPage.getGrid();
829+
grid.uncheckAllOnPage();
830+
grid.selectLists(List.of(LIST_NAME));
831+
grid.deleteAllDataFromSelectedLists();
833832
}
834833

835834
/**

0 commit comments

Comments
 (0)