diff --git a/src/org/labkey/test/BaseWebDriverTest.java b/src/org/labkey/test/BaseWebDriverTest.java index 04350006eb..8f5e515fb0 100644 --- a/src/org/labkey/test/BaseWebDriverTest.java +++ b/src/org/labkey/test/BaseWebDriverTest.java @@ -2307,8 +2307,12 @@ public NewQueryPage createNewQuery(@NotNull String schemaName, @Nullable String return new NewQueryPage(getDriver()); } - protected void createQuery(String container, String name, String schemaName, String sql, String xml, boolean inheritable) + { + createQuery(container, name, schemaName, sql, xml, inheritable, null); + } + + protected void createQuery(String container, String name, String schemaName, String sql, String xml, boolean inheritable, @Nullable String description) { SourceQueryPage sourcePage = createQuery(container, name, schemaName); sourcePage.setSource(sql); @@ -2318,10 +2322,15 @@ protected void createQuery(String container, String name, String schemaName, Str sourcePage.setMetadataXml(xml); } sourcePage.clickSave(); // This seems very slow... maybe clickSaveAndFinish() instead? - if (inheritable) + if (inheritable || !StringUtils.isEmpty(description)) { + String queryURL = buildURL("query", getProjectName(), "begin", Map.of("schemaName", schemaName)); + beginAt(queryURL); editQueryProperties(schemaName, name); - selectOptionByValue(Locator.name("inheritable"), "true"); + if (inheritable) + selectOptionByValue(Locator.name("inheritable"), "true"); + if (description != null) + setFormElement(Locator.tagWithName("textarea", "description"), description); clickButton("Save"); } } diff --git a/src/org/labkey/test/tests/query/QueryLookupTest.java b/src/org/labkey/test/tests/query/QueryLookupTest.java index dec685a921..fa1252424f 100644 --- a/src/org/labkey/test/tests/query/QueryLookupTest.java +++ b/src/org/labkey/test/tests/query/QueryLookupTest.java @@ -15,6 +15,7 @@ import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.DomainUtils; import org.labkey.test.util.EscapeUtil; +import org.labkey.test.util.TestDataGenerator; import org.labkey.test.util.data.TestDataUtils; import java.util.ArrayList; @@ -22,6 +23,8 @@ import java.util.List; import java.util.Map; +import static org.labkey.test.WebTestHelper.buildURL; + @Category({Daily.class}) public class QueryLookupTest extends BaseWebDriverTest @@ -88,7 +91,7 @@ public void testLookupToQueryColumn() throws Exception """.replace("[query_name]", EscapeUtil.getMarkupEscapedValue(queryName)); // create a query on the list goToSchemaBrowser(); - createQuery(getProjectName(), queryName, "lists", querySql, queryXml, false); + createQuery(getProjectName(), queryName, "lists", querySql, queryXml, false, queryName); // now create another list, with a lookup to the custom query new IntListDefinition(secondList, "Key") @@ -96,6 +99,13 @@ public void testLookupToQueryColumn() throws Exception new FieldDefinition("lookup", new FieldDefinition.StringLookup(getProjectName(), "lists", queryName)))) .create(createDefaultConnection(), PROJECT_NAME); + // Issue 53846: Character limit on query property limit throws unhandled exception + String queryURL = buildURL("query", getProjectName(), "begin", Map.of("schemaName", "lists")); + beginAt(queryURL); + editQueryProperties("lists", queryName); + setFormElement(Locator.tagWithName("textarea", "description"), TestDataGenerator.randomString(300)); + clickButton("Save"); + // insert data into the list goToManageLists(); waitAndClickAndWait(Locator.linkWithText(secondList));