diff --git a/src/org/labkey/test/AssayAPITest.java b/src/org/labkey/test/AssayAPITest.java index c3b9a3f6db..c01c17812b 100644 --- a/src/org/labkey/test/AssayAPITest.java +++ b/src/org/labkey/test/AssayAPITest.java @@ -27,6 +27,7 @@ import org.labkey.remoteapi.assay.SaveProtocolCommand; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.util.APIAssayHelper; @@ -111,7 +112,7 @@ protected void importAssayAndRun(File assayPath, int pipelineCount, String conta _uiAssayHelper.uploadXarFileAsAssayDesign(assayPath, pipelineCount, container); APIAssayHelper _apiAssayHelper = new APIAssayHelper(this); - _apiAssayHelper.importAssay(assayName, runPath, getProjectName(), Collections.singletonMap("ParticipantVisitResolver", "SampleInfo")); + _apiAssayHelper.importAssay(assayName, runPath, getProjectName(), Collections.singletonMap(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "SampleInfo")); log("verify import worked"); goToProjectHome(); diff --git a/src/org/labkey/test/WebDriverWrapper.java b/src/org/labkey/test/WebDriverWrapper.java index e24b95b1eb..edda455802 100644 --- a/src/org/labkey/test/WebDriverWrapper.java +++ b/src/org/labkey/test/WebDriverWrapper.java @@ -2713,15 +2713,6 @@ public String getFormElement(WebElement el) return el.getDomProperty("value"); } - /** - * @deprecated Use {@link org.junit.Assert#assertEquals(String, Object, Object) and {@link #getFormElement(Locator)}} - */ - @Deprecated - public void assertFormElementEquals(Locator loc, String value) - { - assertEquals(value, getFormElement(loc)); - } - /** * @deprecated Use {@link org.junit.Assert#assertEquals(String, Object, Object)} and * {@link #getSelectedOptionText(Locator)} diff --git a/src/org/labkey/test/components/assay/AssayConstants.java b/src/org/labkey/test/components/assay/AssayConstants.java new file mode 100644 index 0000000000..71ead8ea20 --- /dev/null +++ b/src/org/labkey/test/components/assay/AssayConstants.java @@ -0,0 +1,16 @@ +package org.labkey.test.components.assay; + +import org.labkey.test.Locator; + +public class AssayConstants +{ + public static final String PARTICIPANT_VISIT_RESOLVER_FIELD_NAME = "ParticipantVisitResolver"; + public static final String THAW_LIST_TYPE_FIELD_NAME = "ThawListType"; + public static final String TARGET_STUDY_FIELD_NAME = "TargetStudy"; + + public static final Locator ASSAY_NAME_FIELD_LOCATOR = Locator.name("Name"); + public static final Locator COMMENTS_FIELD_LOCATOR = Locator.name("Comments"); + public static final Locator TARGET_STUDY_FIELD_LOCATOR = Locator.name(TARGET_STUDY_FIELD_NAME); + public static final Locator TEXT_AREA_DATA_PROVIDER_LOCATOR = Locator.xpath("//input[@value='textAreaDataProvider']"); + public static final Locator TEXT_AREA_DATA_COLLECTOR_LOCATOR = Locator.textarea("TextAreaDataCollector.textArea"); +} diff --git a/src/org/labkey/test/pages/issues/BaseUpdatePage.java b/src/org/labkey/test/pages/issues/BaseUpdatePage.java index eec458bcee..6b35bf27ba 100644 --- a/src/org/labkey/test/pages/issues/BaseUpdatePage.java +++ b/src/org/labkey/test/pages/issues/BaseUpdatePage.java @@ -110,8 +110,8 @@ protected class ElementCache extends BaseIssuePage.ElementCache { protected ElementCache() { - assignedTo = getSelect("assignedTo"); - priority = getSelect("priority"); + assignedTo = getSelect("AssignedTo"); + priority = getSelect("Priority"); related = getInput("related"); notifyList = getInput("notifyList"); } diff --git a/src/org/labkey/test/params/FieldDefinition.java b/src/org/labkey/test/params/FieldDefinition.java index 2c0f043f12..1ce8037c67 100644 --- a/src/org/labkey/test/params/FieldDefinition.java +++ b/src/org/labkey/test/params/FieldDefinition.java @@ -83,7 +83,7 @@ public FieldDefinition withNewName(String newName) * Define a String field * @param name field name */ - public FieldDefinition(String name) + public FieldDefinition(@NotNull String name) { this(name, ColumnType.String); } diff --git a/src/org/labkey/test/tests/AssayExportImportTest.java b/src/org/labkey/test/tests/AssayExportImportTest.java index b5b8953c9b..55425bde69 100644 --- a/src/org/labkey/test/tests/AssayExportImportTest.java +++ b/src/org/labkey/test/tests/AssayExportImportTest.java @@ -38,6 +38,7 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.ext4.Checkbox; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.pages.admin.ExportFolderPage; @@ -68,6 +69,10 @@ @BaseWebDriverTest.ClassTimeout(minutes = 10) public class AssayExportImportTest extends BaseWebDriverTest { + public static final String INSTRUMENT_SETTING_FIELD_NAME = "instrumentSetting"; + public static final String RUN_FILE_FIELD_NAME = "runFileField"; + public static final String OPERATOR_EMAIL_FIELD_NAME = "operatorEmail"; + public static final String INSTRUMENT_FIELD_NAME = "instrument"; private final String ASSAY_PROJECT_FOR_EXPORT_01 = "Assay_Project_For_Export_ByFilesWebPart"; private final String ASSAY_PROJECT_FOR_IMPORT_01 = "Assay_Project_For_Import_ByFilesWebPart"; private final String ASSAY_PROJECT_FOR_EXPORT_02 = "Assay_Project_For_Export_ByFile"; @@ -170,16 +175,16 @@ private Integer createSimpleProjectAndAssay(String projectName, String assayName protocol.getDomains().forEach(domain -> domains.put(domain.getName(), domain)); Domain batchDomain = domains.get("Batch Fields"); - batchDomain.getFields().add(new FieldDefinition("operatorEmail", ColumnType.String)); - batchDomain.getFields().add(new FieldDefinition("instrument", ColumnType.String) + batchDomain.getFields().add(new FieldDefinition(OPERATOR_EMAIL_FIELD_NAME, ColumnType.String)); + batchDomain.getFields().add(new FieldDefinition(INSTRUMENT_FIELD_NAME, ColumnType.String) .setDescription("The diagnostic test instrument.")); Domain runDomain = domains.get("Run Fields"); List runFields = runDomain.getFields(); - runFields.add(new FieldDefinition("instrumentSetting", ColumnType.Integer) + runFields.add(new FieldDefinition(INSTRUMENT_SETTING_FIELD_NAME, ColumnType.Integer) .setDescription("The configuration setting on the instrument.")); if (hasRunFileField) - runFields.add(new FieldDefinition("runFileField", ColumnType.File) + runFields.add(new FieldDefinition(RUN_FILE_FIELD_NAME, ColumnType.File) .setDescription("File for the run.")); domains.get("Run Fields").setFields(runFields); @@ -236,7 +241,7 @@ public void populateAssay(String projectName, String assayName, boolean useFiles clickAndWait(Locator.lkButton("Import Data")); } - waitForElement(Locator.tagWithName("select", "targetStudy")); + waitForElement(AssayConstants.TARGET_STUDY_FIELD_LOCATOR); if(null != batchProperties) { @@ -267,7 +272,7 @@ public void populateAssay(String projectName, String assayName, boolean useFiles if (fileIndex < runProperties.size()) { clickAndWait(Locator.lkButton("Save and Import Another Run")); - waitForElement(Locator.tagWithName("input", "instrumentSetting")); + waitForElement(Locator.tagWithName("input", INSTRUMENT_SETTING_FIELD_NAME)); } } @@ -276,7 +281,7 @@ public void populateAssay(String projectName, String assayName, boolean useFiles if (isElementPresent(Locator.lkButton("Save and Import Another Run"))) { clickAndWait(Locator.lkButton("Save and Import Another Run")); - waitForElement(Locator.tagWithName("input", "instrumentSetting")); + waitForElement(Locator.tagWithName("input", INSTRUMENT_SETTING_FIELD_NAME)); } } @@ -383,14 +388,14 @@ public void validateImportingFileUsingFilesWebPart() throws Exception RUN04_FILE); Map batchProperties = new HashMap<>(); - batchProperties.put("operatorEmail", OPERATOR_EMAIL_01); - batchProperties.put("instrument", INSTRUMENT_NAME_01); + batchProperties.put(OPERATOR_EMAIL_FIELD_NAME, OPERATOR_EMAIL_01); + batchProperties.put(INSTRUMENT_FIELD_NAME, INSTRUMENT_NAME_01); List> runProperties = new ArrayList<>(); - runProperties.add(Maps.of("name", RUN01_NAME, "comments", COMMENT_BASIC_01 + RUN01_NAME, "instrumentSetting", INSTRUMENT_SETTING_01)); - runProperties.add(Maps.of("name", RUN02_NAME, "comments", COMMENT_BASIC_01 + RUN02_NAME, "instrumentSetting", INSTRUMENT_SETTING_01)); - runProperties.add(Maps.of("name", RUN03_NAME, "comments", COMMENT_BASIC_01 + RUN03_NAME, "instrumentSetting", INSTRUMENT_SETTING_01)); - runProperties.add(Maps.of("name", RUN04_NAME, "comments", COMMENT_BASIC_01 + RUN04_NAME, "instrumentSetting", INSTRUMENT_SETTING_01)); + runProperties.add(Maps.of("Name", RUN01_NAME, "Comments", COMMENT_BASIC_01 + RUN01_NAME, INSTRUMENT_SETTING_FIELD_NAME, INSTRUMENT_SETTING_01)); + runProperties.add(Maps.of("Name", RUN02_NAME, "Comments", COMMENT_BASIC_01 + RUN02_NAME, INSTRUMENT_SETTING_FIELD_NAME, INSTRUMENT_SETTING_01)); + runProperties.add(Maps.of("Name", RUN03_NAME, "Comments", COMMENT_BASIC_01 + RUN03_NAME, INSTRUMENT_SETTING_FIELD_NAME, INSTRUMENT_SETTING_01)); + runProperties.add(Maps.of("Name", RUN04_NAME, "Comments", COMMENT_BASIC_01 + RUN04_NAME, INSTRUMENT_SETTING_FIELD_NAME, INSTRUMENT_SETTING_01)); log("Populate the assay '" + SIMPLE_ASSAY_FOR_EXPORT + "' by using files in the Files WebPart."); populateAssay(ASSAY_PROJECT_FOR_EXPORT_01, SIMPLE_ASSAY_FOR_EXPORT, true, runFiles, batchProperties, runProperties, SAMPLE_TXT_FILE); @@ -478,14 +483,14 @@ public void validateImportingFileUsingRunProperties() throws Exception RUN04_FILE); Map batchProperties = new HashMap<>(); - batchProperties.put("operatorEmail", OPERATOR_EMAIL_02); - batchProperties.put("instrument", INSTRUMENT_NAME_02); + batchProperties.put(OPERATOR_EMAIL_FIELD_NAME, OPERATOR_EMAIL_02); + batchProperties.put(INSTRUMENT_FIELD_NAME, INSTRUMENT_NAME_02); List> runProperties = new ArrayList<>(); - runProperties.add(Maps.of("name", RUN01_NAME, "comments", COMMENT_BASIC_02 + RUN01_NAME, "instrumentSetting", INSTRUMENT_SETTING_02)); - runProperties.add(Maps.of("name", RUN02_NAME, "comments", COMMENT_BASIC_02 + RUN02_NAME, "instrumentSetting", INSTRUMENT_SETTING_02)); - runProperties.add(Maps.of("name", RUN03_NAME, "comments", COMMENT_BASIC_02 + RUN03_NAME, "instrumentSetting", INSTRUMENT_SETTING_02)); - runProperties.add(Maps.of("name", RUN04_NAME, "comments", COMMENT_BASIC_02 + RUN04_NAME, "instrumentSetting", INSTRUMENT_SETTING_02)); + runProperties.add(Maps.of("Name", RUN01_NAME, "Comments", COMMENT_BASIC_02 + RUN01_NAME, INSTRUMENT_SETTING_FIELD_NAME, INSTRUMENT_SETTING_02)); + runProperties.add(Maps.of("Name", RUN02_NAME, "Comments", COMMENT_BASIC_02 + RUN02_NAME, INSTRUMENT_SETTING_FIELD_NAME, INSTRUMENT_SETTING_02)); + runProperties.add(Maps.of("Name", RUN03_NAME, "Comments", COMMENT_BASIC_02 + RUN03_NAME, INSTRUMENT_SETTING_FIELD_NAME, INSTRUMENT_SETTING_02)); + runProperties.add(Maps.of("Name", RUN04_NAME, "Comments", COMMENT_BASIC_02 + RUN04_NAME, INSTRUMENT_SETTING_FIELD_NAME, INSTRUMENT_SETTING_02)); log("Populate the assay '" + SIMPLE_ASSAY_FOR_EXPORT + "' by importing the file through the 'Run Properties'."); populateAssay(ASSAY_PROJECT_FOR_EXPORT_02, SIMPLE_ASSAY_FOR_EXPORT, false, runFiles, batchProperties, runProperties, null); @@ -583,8 +588,8 @@ private void createGeneralAssayWithoutTransform(String assayName) ReactAssayDesignerPage assayDesignerPage = _assayHelper.createAssayDesign("General", assayName); log("Remove the batch fields we don't care about."); - assayDesignerPage.goToBatchFields().removeField("ParticipantVisitResolver") - .removeField("TargetStudy"); + assayDesignerPage.goToBatchFields().removeField(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME) + .removeField(AssayConstants.TARGET_STUDY_FIELD_NAME); assayDesignerPage.goToResultsFields() .removeAllFields(false) @@ -665,25 +670,25 @@ public void testExportXarToPipeline() throws Exception ImportRunCommand run1 = new ImportRunCommand(assayId, RUN01_FILE); run1.setName(RUN01_NAME); run1.setComment(commentPrefix + RUN01_NAME); - run1.setProperties(Maps.of("instrumentSetting", instrumentSetting)); + run1.setProperties(Maps.of(INSTRUMENT_SETTING_FIELD_NAME, instrumentSetting)); run1.execute(cn, exportProject); ImportRunCommand run2 = new ImportRunCommand(assayId, RUN02_FILE); run2.setName(RUN02_NAME); run2.setComment(commentPrefix + RUN02_NAME); - run2.setProperties(Maps.of("instrumentSetting", instrumentSetting)); + run2.setProperties(Maps.of(INSTRUMENT_SETTING_FIELD_NAME, instrumentSetting)); run2.execute(cn, exportProject); ImportRunCommand run3 = new ImportRunCommand(assayId, RUN03_FILE); run3.setName(RUN03_NAME); run3.setComment(commentPrefix + RUN03_NAME); - run3.setProperties(Maps.of("instrumentSetting", instrumentSetting)); + run3.setProperties(Maps.of(INSTRUMENT_SETTING_FIELD_NAME, instrumentSetting)); run3.execute(cn, exportProject); ImportRunCommand run4 = new ImportRunCommand(assayId, RUN04_XLSX_FILE); run4.setName(RUN04_NAME); run4.setComment(commentPrefix + RUN04_NAME); - run4.setProperties(Maps.of("instrumentSetting", instrumentSetting)); + run4.setProperties(Maps.of(INSTRUMENT_SETTING_FIELD_NAME, instrumentSetting)); run4.execute(cn, exportProject); List runColumns = Arrays.asList("adjustedM1", "M2"); diff --git a/src/org/labkey/test/tests/DatasetExportTest.java b/src/org/labkey/test/tests/DatasetExportTest.java index 58fee97724..c605a95bdd 100644 --- a/src/org/labkey/test/tests/DatasetExportTest.java +++ b/src/org/labkey/test/tests/DatasetExportTest.java @@ -20,6 +20,7 @@ import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.util.DataRegionTable; import java.util.Arrays; @@ -110,7 +111,7 @@ public void setupDataset() throws Exception DataRegionTable assayResults = new DataRegionTable(super.getDataRegionId(), this); assayResults.checkAllOnPage(); clickButton("Link to Study"); - selectOptionByText(Locator.name("targetStudy"), "/" + getProjectName() + "/" + getFolderName() + " (" + getFolderName() + " Study)"); + selectOptionByText(AssayConstants.TARGET_STUDY_FIELD_LOCATOR, "/" + getProjectName() + "/" + getFolderName() + " (" + getFolderName() + " Study)"); clickButton("Next"); clickButton("Link to Study"); } diff --git a/src/org/labkey/test/tests/DomainFieldTypeChangeTest.java b/src/org/labkey/test/tests/DomainFieldTypeChangeTest.java index 3112fd56d0..fa645f76a7 100644 --- a/src/org/labkey/test/tests/DomainFieldTypeChangeTest.java +++ b/src/org/labkey/test/tests/DomainFieldTypeChangeTest.java @@ -12,6 +12,7 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Daily; import org.labkey.test.components.DomainDesignerPage; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.domain.DomainFormPanel; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.pages.query.UpdateQueryRowPage; @@ -178,7 +179,7 @@ public void testNonProvisionedDomainFieldChanges() checkCheckbox(Locator.name("batchTestBoolean")); clickButton("Next"); - setFormElement(Locator.name("name"), runName); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); setFormElement(Locator.name("runTestInteger"), "12"); setFormElement(Locator.name("runTestDecimal"), "1.12"); setFormElement(Locator.name("runTestDate"), "01-03-2022"); diff --git a/src/org/labkey/test/tests/FileAttachmentColumnTest.java b/src/org/labkey/test/tests/FileAttachmentColumnTest.java index 2d86c8c135..482eb65087 100644 --- a/src/org/labkey/test/tests/FileAttachmentColumnTest.java +++ b/src/org/labkey/test/tests/FileAttachmentColumnTest.java @@ -29,6 +29,7 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.admin.FolderManagementPage; import org.labkey.test.pages.assay.AssayRunsPage; import org.labkey.test.pages.files.FileContentPage; @@ -282,7 +283,7 @@ public void testAssayFileFieldsUI() throws Exception clickButton("Next"); // batch properties // run properties - setFormElement(Locator.input("name"), runName); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); setFormElement(Locator.input(RUN_TXT_COL), "run text"); setFormElement(Locator.input(RUN_FILE_COL), runFileFieldFile); checkRadioButton(Locator.inputById("Fileupload")); diff --git a/src/org/labkey/test/tests/FilterTest.java b/src/org/labkey/test/tests/FilterTest.java index 561d5c3a1a..e0a896f32c 100644 --- a/src/org/labkey/test/tests/FilterTest.java +++ b/src/org/labkey/test/tests/FilterTest.java @@ -48,7 +48,6 @@ import static org.junit.Assert.assertEquals; import static org.labkey.test.params.FieldDefinition.ColumnType; import static org.labkey.test.params.FieldDefinition.DOMAIN_TRICKY_CHARACTERS; -import static org.labkey.test.params.FieldDefinition.LookupInfo; import static org.labkey.test.util.PermissionsHelper.MemberType; @Category({Daily.class, Data.class}) @@ -80,7 +79,7 @@ public class FilterTest extends BaseWebDriverTest protected final static String[] CONVERTED_MONTHS = { "2000-01-01", "2000-04-04", "2000-03-03", "2000-02-02" }; protected final FieldDefinition _list2ColKey = new FieldDefinition("Car", ColumnType.String); - protected final FieldDefinition _list2Col1 = new FieldDefinition(LIST_KEY_NAME2, new LookupInfo(null, "lists", LIST_NAME_COLORS).setTableType(ColumnType.String)).setDescription("The color of the car"); + protected final FieldDefinition _list2Col1 = new FieldDefinition(LIST_KEY_NAME2, new FieldDefinition.StringLookup(null, "lists", LIST_NAME_COLORS)).setDescription("The color of the car"); protected final FieldDefinition _list2ColYear = new FieldDefinition("year", ColumnType.Integer).setLabel("year"); @Override @@ -284,15 +283,15 @@ public void testContainerFilterFacet() throws Exception HashMap projectIssue = new HashMap<>(); projectIssue.put("title", "project issue1"); - projectIssue.put("assignedTo", getDisplayName()); - projectIssue.put("type", "typea"); - projectIssue.put("priority", "1"); + projectIssue.put("AssignedTo", getDisplayName()); + projectIssue.put("Type", "typea"); + projectIssue.put("Priority", "1"); issuesHelper.addIssue(projectIssue); HashMap projectIssue2 = new HashMap<>(); projectIssue2.put("title", "project issue2"); - projectIssue2.put("assignedTo", getDisplayName()); - projectIssue2.put("type", "typeb"); - projectIssue2.put("priority", "2"); + projectIssue2.put("AssignedTo", getDisplayName()); + projectIssue2.put("Type", "typeb"); + projectIssue2.put("Priority", "2"); issuesHelper.addIssue(projectIssue2); _containerHelper.createSubfolder(getProjectName(), "subfolder"); @@ -310,15 +309,15 @@ public void testContainerFilterFacet() throws Exception HashMap subfolderIssue = new HashMap<>(); subfolderIssue.put("title", "subfolder issue1"); - subfolderIssue.put("assignedTo", getDisplayName()); - subfolderIssue.put("type", "typed"); - subfolderIssue.put("priority", "3"); + subfolderIssue.put("AssignedTo", getDisplayName()); + subfolderIssue.put("Type", "typed"); + subfolderIssue.put("Priority", "3"); issuesHelper.addIssue(subfolderIssue); HashMap subfolderIssue2 = new HashMap<>(); subfolderIssue2.put("title", "subfolder issue2"); - subfolderIssue2.put("assignedTo", getDisplayName()); - subfolderIssue2.put("type", "typee"); - subfolderIssue2.put("priority", "4"); + subfolderIssue2.put("AssignedTo", getDisplayName()); + subfolderIssue2.put("Type", "typee"); + subfolderIssue2.put("Priority", "4"); issuesHelper.addIssue(subfolderIssue2); goToProjectHome(); @@ -337,26 +336,26 @@ public void testContainerFilterFacet() throws Exception assertElementPresent(Locator.linkWithText(subfolderIssue2.get("title"))); verifyFacetOptions(region, "Type", - projectIssue.get("type"), - projectIssue2.get("type"), - subfolderIssue.get("type"), - subfolderIssue2.get("type")); + projectIssue.get("Type"), + projectIssue2.get("Type"), + subfolderIssue.get("Type"), + subfolderIssue2.get("Type")); verifyFacetOptions(region, "Priority", - projectIssue.get("priority"), - projectIssue2.get("priority"), - subfolderIssue.get("priority"), - subfolderIssue2.get("priority")); + projectIssue.get("Priority"), + projectIssue2.get("Priority"), + subfolderIssue.get("Priority"), + subfolderIssue2.get("Priority")); - region.setFacetedFilter("Priority", projectIssue2.get("priority"), subfolderIssue.get("priority")); + region.setFacetedFilter("Priority", projectIssue2.get("Priority"), subfolderIssue.get("Priority")); assertElementNotPresent(Locator.linkWithText(projectIssue.get("title"))); assertElementPresent(Locator.linkWithText(projectIssue2.get("title"))); assertElementPresent(Locator.linkWithText(subfolderIssue.get("title"))); assertElementNotPresent(Locator.linkWithText(subfolderIssue2.get("title"))); verifyFacetOptions(region, "Type", - projectIssue2.get("type"), - subfolderIssue.get("type")); + projectIssue2.get("Type"), + subfolderIssue.get("Type")); } private void verifyFacetOptions(DataRegionTable dataRegion, String column, String... options) diff --git a/src/org/labkey/test/tests/FlagColumnTest.java b/src/org/labkey/test/tests/FlagColumnTest.java index 3739e9c71c..a1ce3d2157 100644 --- a/src/org/labkey/test/tests/FlagColumnTest.java +++ b/src/org/labkey/test/tests/FlagColumnTest.java @@ -11,6 +11,7 @@ import org.labkey.test.SortDirection; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.FieldKey; import org.labkey.test.util.DataRegionTable; @@ -101,15 +102,15 @@ private void doInit() clickButton("Import Data"); log("Import run1..."); - setFormElement(Locator.name("name"), "Run01"); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "Run01"); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, "SomeData\nrun1-data1\nrun1-data2"); clickButton("Save and Import Another Run"); log("Import run2..."); - setFormElement(Locator.name("name"), "Run02"); - setFormElement(Locator.name("anotherRunFlag"), "run has flag"); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "Run02"); + setFormElement(Locator.name("AnotherRunFlag"), "run has flag"); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, "SomeData\nrun2-data1\nrun2-data2"); clickButton("Save and Finish"); diff --git a/src/org/labkey/test/tests/GpatAssayTest.java b/src/org/labkey/test/tests/GpatAssayTest.java index 62bc3b0c14..1770094f38 100644 --- a/src/org/labkey/test/tests/GpatAssayTest.java +++ b/src/org/labkey/test/tests/GpatAssayTest.java @@ -153,13 +153,13 @@ public void testSteps() WebElement runPropertiesPanel = Locator.tagWithAttributeContaining("form", "data-region-form", "Runs") .findElement(getDriver()); - setFormElement(Locator.name("date").findElement(runPropertiesPanel), + setFormElement(Locator.name("Date").findElement(runPropertiesPanel), "11/22/24"); - setFormElement(Locator.name("time").findElement(runPropertiesPanel), + setFormElement(Locator.name("Time").findElement(runPropertiesPanel), "10:38 am"); - setFormElement(Locator.name("dateTime").findElement(runPropertiesPanel), + setFormElement(Locator.name("DateTime").findElement(runPropertiesPanel), "11/22/24 10:38 am"); clickButton("Save and Finish", defaultWaitForPage); diff --git a/src/org/labkey/test/tests/InlineImagesAssayTest.java b/src/org/labkey/test/tests/InlineImagesAssayTest.java index 34b9809a85..84ead2a935 100644 --- a/src/org/labkey/test/tests/InlineImagesAssayTest.java +++ b/src/org/labkey/test/tests/InlineImagesAssayTest.java @@ -28,6 +28,7 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Daily; import org.labkey.test.components.CustomizeView; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.FieldKey; @@ -127,10 +128,10 @@ public final void testAssayInlineImages() throws Exception log("Populate the assay with data."); clickAndWait(Locator.linkWithText(assayName)); clickButton("Import Data"); - setFormElement(Locator.name("batchFileField"), XLS_FILE); + setFormElement(Locator.name("BatchFileField"), XLS_FILE); clickButton("Next"); - setFormElement(Locator.name("name"), runName); - setFormElement(Locator.name("TextAreaDataCollector.textArea"), importData); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, importData); clickButton("Save and Finish"); diff --git a/src/org/labkey/test/tests/MultiplePKUploadAssayTest.java b/src/org/labkey/test/tests/MultiplePKUploadAssayTest.java index 8b73e0304f..e675998c0b 100644 --- a/src/org/labkey/test/tests/MultiplePKUploadAssayTest.java +++ b/src/org/labkey/test/tests/MultiplePKUploadAssayTest.java @@ -23,6 +23,7 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.util.DataRegionTable; import java.io.File; @@ -98,12 +99,12 @@ public void verifyMultiplePKListUpload() throws Exception log("Specifying the specimenID"); assertTitleContains("Data Import: Run Properties and Data File"); - setFormElement(Locator.name("name"), "First run"); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), "SpecimenID\nS17\nS22"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "First run"); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, "SpecimenID\nS17\nS22"); clickButton("Save and Finish"); assertElementPresent(Locator.css(".labkey-error").withText("Can not resolve thaw list entry for specimenId: S22")); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), "SpecimenID\nS17"); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, "SpecimenID\nS17"); clickButton("Save and Finish"); log("Verifying the visit ID"); diff --git a/src/org/labkey/test/tests/ProgrammaticQCTest.java b/src/org/labkey/test/tests/ProgrammaticQCTest.java index 2bfd64f359..8434f62370 100644 --- a/src/org/labkey/test/tests/ProgrammaticQCTest.java +++ b/src/org/labkey/test/tests/ProgrammaticQCTest.java @@ -24,6 +24,7 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.util.APIAssayHelper; @@ -165,14 +166,14 @@ private void uploadQCRuns() clickButton("Import Data"); clickButton("Next"); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), TEST_RUN1_DATA1); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, TEST_RUN1_DATA1); clickButton("Save and Finish"); assertTextPresent("A duplicate PTID was discovered : b", "A duplicate PTID was discovered : e"); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), TEST_RUN1_DATA2); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, TEST_RUN1_DATA2); clickButton("Save and Finish"); // verify the log entry @@ -190,14 +191,14 @@ private void uploadTransformRuns() clickButton("Import Data"); clickButton("Next"); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), TEST_RUN1_DATA1); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, TEST_RUN1_DATA1); clickButton("Save and Finish"); assertTextPresent("A duplicate PTID was discovered : b", "A duplicate PTID was discovered : e"); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), TEST_RUN1_DATA2); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, TEST_RUN1_DATA2); clickButton("Save and Finish"); clickAndWait(Locator.linkWithText("view results")); @@ -259,14 +260,14 @@ private void uploadTransformQCRuns() clickButton("Import Data"); clickButton("Next"); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), TEST_RUN1_DATA2); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, TEST_RUN1_DATA2); clickButton("Save and Finish"); assertTextPresent("The animal column must contain a goat"); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), TEST_RUN1_DATA3); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, TEST_RUN1_DATA3); clickButton("Save and Finish"); clickAndWait(Locator.linkWithText("view results")); diff --git a/src/org/labkey/test/tests/RlabkeyTest.java b/src/org/labkey/test/tests/RlabkeyTest.java index a42b518eeb..1f7ab0d0bd 100644 --- a/src/org/labkey/test/tests/RlabkeyTest.java +++ b/src/org/labkey/test/tests/RlabkeyTest.java @@ -123,15 +123,15 @@ private void setupIssues() clickProject(PROJECT_NAME); createNewIssueList(issuesHelper, ISSUE_LIST_NAME); - issuesHelper.addIssue(Maps.of("assignedTo", _userHelper.getDisplayNameForEmail(USER), "title", ISSUE_TITLE_0)); + issuesHelper.addIssue(Maps.of("AssignedTo", _userHelper.getDisplayNameForEmail(USER), "title", ISSUE_TITLE_0)); clickFolder(FOLDER_NAME); createNewIssueList(issuesHelper, ISSUE_LIST_NAME); - issuesHelper.addIssue(Maps.of("assignedTo", _userHelper.getDisplayNameForEmail(USER), "title", ISSUE_TITLE_1)); + issuesHelper.addIssue(Maps.of("AssignedTo", _userHelper.getDisplayNameForEmail(USER), "title", ISSUE_TITLE_1)); clickProject(PROJECT_NAME_2); createNewIssueList(issuesHelper, ISSUE_LIST_NAME); - issuesHelper.addIssue(Maps.of("assignedTo", _userHelper.getDisplayNameForEmail(USER), "title", ISSUE_TITLE_2)); + issuesHelper.addIssue(Maps.of("AssignedTo", _userHelper.getDisplayNameForEmail(USER), "title", ISSUE_TITLE_2)); } /** diff --git a/src/org/labkey/test/tests/SampleTypeFolderExportImportTest.java b/src/org/labkey/test/tests/SampleTypeFolderExportImportTest.java index 622cbe137d..da65a2a33a 100644 --- a/src/org/labkey/test/tests/SampleTypeFolderExportImportTest.java +++ b/src/org/labkey/test/tests/SampleTypeFolderExportImportTest.java @@ -321,9 +321,9 @@ public void testExportAndImportWithMissingAndRequiredFields() clickButtonContainingText("Next"); // TODO: Should validate that the Derive Samples action shows the various fields as expected. That is the required and missing value fields should have the correct input type. Will be fixed in 19.2. - setFormElement(Locator.tagWithName("input", "outputSample1_Name"), sampleNames[8]); - setFormElement(Locator.tagWithName("input", "outputSample1_" + REQUIRED_FIELD_NAME), "Required text for this field."); - setFormElement(Locator.tagWithName("input", "outputSample1_" + MISSING_FIELD_NAME), "Q"); + setFormElement(Locator.tagWithName("input", "Output Sample 1_Name"), sampleNames[8]); + setFormElement(Locator.tagWithName("input", "Output Sample 1_" + REQUIRED_FIELD_NAME), "Required text for this field."); + setFormElement(Locator.tagWithName("input", "Output Sample 1_" + MISSING_FIELD_NAME), "Q"); clickButtonContainingText("Submit"); // TODO: There is a bug where derived values do not honor missing value fields (treat them as a text field). So the indicator field for this sample will be empty. Will be fixed in 19.2. diff --git a/src/org/labkey/test/tests/SampleTypeLimitsTest.java b/src/org/labkey/test/tests/SampleTypeLimitsTest.java index 5ed02fbb0f..e3f05f2a23 100644 --- a/src/org/labkey/test/tests/SampleTypeLimitsTest.java +++ b/src/org/labkey/test/tests/SampleTypeLimitsTest.java @@ -199,17 +199,17 @@ public void testDeriveSamplesLookupFields() throws IOException, CommandException log("Attempt Derive Samples with invalid lookup value"); initDeriveSamplesForm(sampleTypeName, "Derivative1"); - verifyInvalidLookupSample("outputSample1_lookUpField", "Sample3", "Could not convert value 'Sample3' (String) for Integer field 'lookUpField'."); + verifyInvalidLookupSample("Output Sample 1_lookUpField", "Sample3", "Could not convert value 'Sample3' (String) for Integer field 'lookUpField'."); log("Insert Derive Samples with valid lookup display value"); - verifyValidLookupSample("outputSample1_lookUpField", "Sample2", "Sample2", "Material", true); + verifyValidLookupSample("Output Sample 1_lookUpField", "Sample2", "Sample2", "Material", true); log("Insert Derive Samples with valid lookup to sample RowId"); initDeriveSamplesForm(sampleTypeName, "Derivative2"); SelectRowsCommand command = new SelectRowsCommand("samples", SAMPLE_TYPE_NAME); command.setFilters(Arrays.asList(new Filter("Name", "Sample1"))); SelectRowsResponse response = command.execute(createDefaultConnection(), getProjectName()); - verifyValidLookupSample("outputSample1_lookUpField", response.getRows().get(0).get("RowId").toString(), "Sample1", "Material", true); + verifyValidLookupSample("Output Sample 1_lookUpField", response.getRows().get(0).get("RowId").toString(), "Sample1", "Material", true); } private void initDeriveSamplesForm(String sampleTypeName, String sampleName) @@ -220,7 +220,7 @@ private void initDeriveSamplesForm(String sampleTypeName, String sampleName) samplesTable.clickHeaderButtonAndWait("Derive Samples"); selectOptionByText(Locator.name("targetSampleTypeId"), sampleTypeName + " in /" + getProjectName()); clickButton("Next"); - setFormElement(Locator.name("outputSample1_Name"), sampleName); + setFormElement(Locator.name("Output Sample 1_Name"), sampleName); } @Test diff --git a/src/org/labkey/test/tests/SampleTypeLineageTest.java b/src/org/labkey/test/tests/SampleTypeLineageTest.java index 9be0d9d8d2..a7fa057a6c 100644 --- a/src/org/labkey/test/tests/SampleTypeLineageTest.java +++ b/src/org/labkey/test/tests/SampleTypeLineageTest.java @@ -41,6 +41,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import static org.labkey.test.params.FieldDefinition.DOMAIN_TRICKY_CHARACTERS; import static org.labkey.test.util.exp.SampleTypeAPIHelper.SAMPLE_TYPE_DOMAIN_KIND; @Category({Daily.class}) @@ -272,19 +273,19 @@ at ParentFolder_SampleType in the sub folder it should see one sample (the deriv selectOptionByText(Locator.name("targetSampleTypeId"), subFolderSampleType + " in /" + getProjectName() + "/" + SUB_FOLDER_NAME); clickButton("Next"); - setFormElement(Locator.name("outputSample1_Name"), "SampleSetBVT15"); - setFormElement(Locator.name("outputSample2_Name"), "SampleSetBVT16"); + setFormElement(Locator.name("Output Sample 1_Name"), "SampleSetBVT15"); + setFormElement(Locator.name("Output Sample 2_Name"), "SampleSetBVT16"); checkCheckbox(Locator.name("outputSample1_IntColFolderCheckBox")); - setFormElement(Locator.name("outputSample1_IntColFolder"), "500a"); - setFormElement(Locator.name("outputSample1_StringColFolder"), "firstOutput"); - setFormElement(Locator.name("outputSample2_StringColFolder"), "secondOutput"); + setFormElement(Locator.name("Output Sample 1_IntCol-Folder"), "500a"); + setFormElement(Locator.name("Output Sample 1_StringCol-Folder"), "firstOutput"); + setFormElement(Locator.name("Output Sample 2_StringCol-Folder"), "secondOutput"); clickButton("Submit"); log("Do a simple check that data validation works."); checker().verifyTrue("Expected error message '(String) for Integer field' is not present.", isTextPresent("(String) for Integer field")); checkCheckbox(Locator.name("outputSample1_IntColFolderCheckBox")); - setFormElement(Locator.name("outputSample1_IntColFolder"), "500"); + setFormElement(Locator.name("Output Sample 1_IntCol-Folder"), "500"); clickButton("Submit"); clickAndWait(Locator.linkContainingText("Derive 2 samples")); @@ -301,17 +302,17 @@ at ParentFolder_SampleType in the sub folder it should see one sample (the deriv clickButton("Next"); String derivedSampleName = "Only_In_Sub_Folder"; - setFormElement(Locator.name("outputSample1_Name"), derivedSampleName); - setFormElement(Locator.name("outputSample1_IntCol"), "600"); - setFormElement(Locator.name("outputSample1_StringCol"), "String"); - setFormElement(Locator.name("outputSample1_DateCol"), "BadDate"); - uncheckCheckbox(Locator.name("outputSample1_BoolCol")); + setFormElement(Locator.name("Output Sample 1_Name"), derivedSampleName); + setFormElement(Locator.name("Output Sample 1_IntCol"), "600"); + setFormElement(Locator.name("Output Sample 1_StringCol"), "String"); + setFormElement(Locator.name("Output Sample 1_DateCol"), "BadDate"); + uncheckCheckbox(Locator.name("Output Sample 1_BoolCol")); clickButton("Submit"); log("Again check that data validation works as expected."); checker().verifyTrue("Expected error message 'is not a valid Date' is not present.", isTextPresent("'BadDate' is not a valid Date for DateCol ")); - setFormElement(Locator.name("outputSample1_DateCol"), "1/1/2007"); + setFormElement(Locator.name("Output Sample 1_DateCol"), "1/1/2007"); clickButton("Submit"); log("Check that the correct sample id is shown as the parent."); @@ -1117,31 +1118,37 @@ public void testDeleteSampleSources() throws CommandException, IOException @Test public void testDeleteSamplesSomeWithDerivedSamples() { - final String SAMPLE_TYPE_NAME = "DeleteSamplesWithParents"; + final String SAMPLE_TYPE_NAME = "DeleteSamplesWithParents" + DOMAIN_TRICKY_CHARACTERS; List parentSampleNames = Arrays.asList("P-1", "P-2", "P-3"); List> sampleData = new ArrayList<>(); - parentSampleNames.forEach(name -> { - sampleData.add(Map.of("Name", name)); - }); + parentSampleNames.forEach(name -> sampleData.add(Map.of("Name", name))); clickProject(PROJECT_NAME); SampleTypeHelper sampleHelper = new SampleTypeHelper(this); log("Create a sample type with some potential parents"); - sampleHelper.createSampleType(new SampleTypeDefinition(SAMPLE_TYPE_NAME), sampleData); + sampleHelper.createSampleType(new SampleTypeDefinition(SAMPLE_TYPE_NAME). + addField(new FieldDefinition("Blood+")). + addField(new FieldDefinition("Blood-")), + sampleData); DataRegionTable drtSamples = sampleHelper.getSamplesDataRegionTable(); log("Derive one sample from another"); drtSamples.checkCheckbox(drtSamples.getRowIndex("Name", parentSampleNames.get(0))); clickButton("Derive Samples"); waitAndClickAndWait(Locator.lkButton("Next")); String childName = parentSampleNames.get(0) + ".1"; - setFormElement(Locator.name("outputSample1_Name"), childName); + String nameFieldInputFieldName = "Output Sample 1_Name"; + String bloodPlusFieldInputFieldName = "Output Sample 1_Blood+"; + String bloodMinusFieldInputFieldName = "Output Sample 1_Blood-"; + setFormElement(Locator.name(nameFieldInputFieldName), childName); + setFormElement(Locator.name(bloodPlusFieldInputFieldName), "blood plus"); + setFormElement(Locator.name(bloodMinusFieldInputFieldName), "blood minus"); clickButton("Submit"); log("Derive a sample from the one just created"); clickAndWait(Locator.linkContainingText("derive samples from this sample")); clickButton("Next"); String grandchildName = childName + ".1"; - setFormElement(Locator.name("outputSample1_Name"), grandchildName); + setFormElement(Locator.name(nameFieldInputFieldName), grandchildName); clickButton("Submit"); log("Derive a sample with two parents"); @@ -1151,11 +1158,16 @@ public void testDeleteSamplesSomeWithDerivedSamples() clickButton("Derive Samples"); waitAndClickAndWait(Locator.lkButton("Next")); String twoParentChildName = parentSampleNames.get(1) + "+" + childName + ".1"; - setFormElement(Locator.name("outputSample1_Name"), twoParentChildName); + setFormElement(Locator.name(nameFieldInputFieldName), twoParentChildName); clickButton("Submit"); clickAndWait(Locator.linkContainingText(SAMPLE_TYPE_NAME)); + // Issue 53306 - ensure that names differing only by special characters were captured correctly and are being + // shown in the grid + assertTextPresent("blood plus", "blood minus"); + + log("Try to delete parent sample"); drtSamples.checkCheckbox(drtSamples.getRowIndex("Name", parentSampleNames.get(0))); drtSamples.clickHeaderButton("Delete"); diff --git a/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java b/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java index 27d500c895..c90256bcc3 100644 --- a/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java +++ b/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java @@ -13,6 +13,7 @@ import org.labkey.test.TestTimeoutException; import org.labkey.test.categories.Daily; import org.labkey.test.components.CustomizeView; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.ext4.Window; import org.labkey.test.components.html.BootstrapMenu; import org.labkey.test.pages.ImportDataPage; @@ -321,8 +322,8 @@ public void testLineageSupport() samplesTable.clickHeaderButtonAndWait("Derive Samples"); selectOptionByText(Locator.name("targetSampleTypeId"), "Plasma in /" + SAMPLE_TYPE_PROJECT); clickButton("Next"); - setFormElement(Locator.name("outputSample1_Name"), derivedSampleName); - setFormElement(Locator.name("outputSample1_Volume"), "1"); + setFormElement(Locator.name("Output Sample 1_Name"), derivedSampleName); + setFormElement(Locator.name("Output Sample 1_Volume"), "1"); clickButton("Submit"); goToProjectHome(SAMPLE_TYPE_PROJECT); @@ -339,7 +340,7 @@ public void testLineageSupport() samplesTable.clickHeaderButtonAndWait("Link to Study"); log("Link to study: Choose target"); - selectOptionByText(Locator.id("targetStudy"), "/" + DATE_BASED_STUDY + " (" + DATE_BASED_STUDY + " Study)"); + selectOptionByText(AssayConstants.TARGET_STUDY_FIELD_LOCATOR, "/" + DATE_BASED_STUDY + " (" + DATE_BASED_STUDY + " Study)"); clickButton("Next"); new DataRegionTable("query", getDriver()).clickHeaderButtonAndWait("Link to Study"); @@ -370,8 +371,8 @@ public void testAssaySupport() DataRegionTable table = new DataRegionTable("Runs", getDriver()); table.clickHeaderButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), runName); - setFormElement(Locator.name("TextAreaDataCollector.textArea"), importData); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, importData); clickButton("Save and Finish"); clickAndWait(Locator.linkWithText(runName)); @@ -385,7 +386,7 @@ public void testAssaySupport() table.checkCheckbox(0); table.clickHeaderButtonAndWait("Link to Study"); - selectOptionByText(Locator.id("targetStudy"), "/" + DATE_BASED_STUDY + " (" + DATE_BASED_STUDY + " Study)"); + selectOptionByText(AssayConstants.TARGET_STUDY_FIELD_LOCATOR, "/" + DATE_BASED_STUDY + " (" + DATE_BASED_STUDY + " Study)"); clickButton("Next"); checker().verifyEquals("Incorrect Participant ID deduced", "P4", Locator.name("participantId").findElement(getDriver()).getAttribute("value")); @@ -672,7 +673,7 @@ public void testSubjectTimepointFromParentSample() samplesTable.clickHeaderButtonAndWait("Derive Samples"); selectOptionByText(Locator.name("targetSampleTypeId"), childSampleType + " in /" + getProjectName()); clickButton("Next"); - setFormElement(Locator.name("outputSample1_Name"), "derivedChildSample"); + setFormElement(Locator.name("Output Sample 1_Name"), "derivedChildSample"); clickButton("Submit"); log("Verifying the auto link to study by deriving single samples from parent sample"); diff --git a/src/org/labkey/test/tests/SampleTypeNameExpressionTest.java b/src/org/labkey/test/tests/SampleTypeNameExpressionTest.java index 07597b6f68..11cd7afea0 100644 --- a/src/org/labkey/test/tests/SampleTypeNameExpressionTest.java +++ b/src/org/labkey/test/tests/SampleTypeNameExpressionTest.java @@ -804,7 +804,7 @@ private String deriveSample(String parentSampleName, String parentSampleType, St String flagString = ""; for(Map.Entry entry : setField.entrySet()) { - setFormElement(Locator.name(String.format("outputSample1_%s", entry.getKey())), entry.getValue()); + setFormElement(Locator.name(String.format("Output Sample 1_%s", entry.getKey())), entry.getValue()); flagString = entry.getValue(); } clickButton("Submit"); diff --git a/src/org/labkey/test/tests/SampleTypeTest.java b/src/org/labkey/test/tests/SampleTypeTest.java index dbd7f07ed0..0dbe2c380b 100644 --- a/src/org/labkey/test/tests/SampleTypeTest.java +++ b/src/org/labkey/test/tests/SampleTypeTest.java @@ -36,6 +36,7 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Daily; import org.labkey.test.components.CustomizeView; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.domain.BaseDomainDesigner; import org.labkey.test.components.domain.DomainFormPanel; import org.labkey.test.components.ext4.Window; @@ -634,7 +635,7 @@ public void testDeleteSamplesSomeWithAssayData() // clickButton("Import Data"); // setFormElement(Locator.name(SAMPLE_ID_FIELD_NAME), BATCH_SAMPLE_NAME); // clickButton("Next"); -// setFormElement(Locator.id("TextAreaDataCollector.textArea"), TEST_RUN_DATA); +// setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, TEST_RUN_DATA); // clickButton("Save and Finish"); // // @@ -661,7 +662,7 @@ public void testDeleteSamplesSomeWithAssayData() clickAndWait(Locator.linkWithText(DATA_ID_ASSAY)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), SAMPLE_ID_TEST_RUN_DATA); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, SAMPLE_ID_TEST_RUN_DATA); clickButton("Save and Finish"); log("Try to delete all samples"); @@ -695,7 +696,7 @@ public void testDeleteSamplesSomeWithAssayData() clickButton("Import Data"); clickButton("Next"); setFormElement(Locator.name(SAMPLE_ID_FIELD_NAME), RUN_SAMPLE_NAME); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), TEST_RUN_DATA); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, TEST_RUN_DATA); clickButton("Save and Finish"); log("Try to delete the sampleId referenced in the run field"); diff --git a/src/org/labkey/test/tests/TextChoiceImportExportAndOtherDomainsTest.java b/src/org/labkey/test/tests/TextChoiceImportExportAndOtherDomainsTest.java index d6dd21f198..bf4d4d376d 100644 --- a/src/org/labkey/test/tests/TextChoiceImportExportAndOtherDomainsTest.java +++ b/src/org/labkey/test/tests/TextChoiceImportExportAndOtherDomainsTest.java @@ -168,9 +168,7 @@ private void verifyTextChoiceInIssueDesign() log("Validate that a new issue can be inserted that uses the TextChoice field."); IssuesHelper issuesHelper = new IssuesHelper(getDriver()); - String tcFieldName = getSelectControlName(ISSUE_TC_FIELD); - - Map issueDetails = Map.of("title", ISSUE_TITLE, "assignedTo", getDisplayName(), tcFieldName, ISSUE_VALUE); + Map issueDetails = Map.of("title", ISSUE_TITLE, "AssignedTo", getDisplayName(), ISSUE_TC_FIELD, ISSUE_VALUE); issuesHelper.addIssue(issueDetails); diff --git a/src/org/labkey/test/tests/TextChoiceTest.java b/src/org/labkey/test/tests/TextChoiceTest.java index 7b5e987add..245912a65f 100644 --- a/src/org/labkey/test/tests/TextChoiceTest.java +++ b/src/org/labkey/test/tests/TextChoiceTest.java @@ -4,6 +4,7 @@ import org.labkey.remoteapi.CommandException; import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.domain.DomainFieldRow; import org.labkey.test.components.domain.DomainFormPanel; import org.labkey.test.components.html.OptionSelect; @@ -139,8 +140,8 @@ protected void createDefaultAssayDesignWithTextChoice() fieldRow.setTextChoiceValues(BATCH_FIELD_VALUES); log("Remove the default batch fields."); - domainFormPanel.removeField("ParticipantVisitResolver"); - domainFormPanel.removeField("TargetStudy"); + domainFormPanel.removeField(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME); + domainFormPanel.removeField(AssayConstants.TARGET_STUDY_FIELD_NAME); log(String.format("Add a TextChoice field named '%s' to the run properties.", RUN_TC_FIELD)); fieldRow = assayDesignerPage.goToRunFields().addField(RUN_TC_FIELD); @@ -177,7 +178,7 @@ protected Map createAssayRun() DataRegionTable runTable = new DataRegionTable("Runs", getDriver()); runTable.clickHeaderButtonAndWait("Import Data"); - Locator batchLocator = Locator.name(getSelectControlName(BATCH_TC_FIELD)); + Locator batchLocator = Locator.name(BATCH_TC_FIELD); assertSelectOptions(batchLocator, BATCH_FIELD_VALUES, String.format("Options for the batch field '%s' are not as expected. Fatal error.", BATCH_TC_FIELD)); @@ -189,9 +190,9 @@ protected Map createAssayRun() log(String.format("Set the Assay ID to '%s'.", ASSAY_RUN_ID)); - setFormElement(Locator.tagWithName("input", "name"), ASSAY_RUN_ID); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_ID); - Locator runLocator = Locator.name(getSelectControlName(RUN_TC_FIELD)); + Locator runLocator = Locator.name(RUN_TC_FIELD); assertSelectOptions(runLocator, RUN_FIELD_VALUES, String.format("Options for the '%s' field not as expected. Fatal error.", RUN_TC_FIELD)); @@ -221,7 +222,7 @@ protected Map createAssayRun() log("Paste in the results and save."); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), resultsPasteText.toString()); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, resultsPasteText.toString()); clickButton("Save and Finish"); @@ -276,17 +277,4 @@ protected void assertSelectOptions(Locator selectLocator, List expectedO LabKeyAssert.assertEqualsSorted(failureMsg, expectedOptions, selectOptions); } - - /** - * Simple helper to identify the name of the control on a page based on the field name. The name of the - * control is the field but the first letter is lower case. This lets the test not worry about that. - * - * @param tcFieldName The TextChoice field name. - * @return The field name with the first letter lower case. - */ - protected String getSelectControlName(String tcFieldName) - { - return Character.toLowerCase(tcFieldName.charAt(0)) + tcFieldName.substring(1); - } - } diff --git a/src/org/labkey/test/tests/UserTest.java b/src/org/labkey/test/tests/UserTest.java index 8f5a0c0f5b..b0e6d133b2 100644 --- a/src/org/labkey/test/tests/UserTest.java +++ b/src/org/labkey/test/tests/UserTest.java @@ -406,7 +406,7 @@ public void testDeactivatedUser() private Locator createAssignedToOptionLocator(String username) { - return Locator.xpath("//select[@name='assignedTo']/option[@value='" + username + "']"); + return Locator.xpath("//select[@name='AssignedTo']/option[@value='" + username + "']"); } /** diff --git a/src/org/labkey/test/tests/assay/AssayMissingValuesTest.java b/src/org/labkey/test/tests/assay/AssayMissingValuesTest.java index 87cdbb1c46..974397525b 100644 --- a/src/org/labkey/test/tests/assay/AssayMissingValuesTest.java +++ b/src/org/labkey/test/tests/assay/AssayMissingValuesTest.java @@ -9,6 +9,7 @@ import org.labkey.test.Locator; import org.labkey.test.TestFileUtils; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.admin.ExportFolderPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.assay.GeneralAssayDesign; @@ -60,25 +61,29 @@ public void testAssayMV() final String ASSAY_EXCEL_RUN_SINGLE_COLUMN = "MVAssayExcelRunSingleColumn"; final String ASSAY_EXCEL_RUN_TWO_COLUMN = "MVAssayExcelRunTwoColumn"; final String TEST_DATA_SINGLE_COLUMN_ASSAY = - "SpecimenID\tParticipantID\tVisitID\tDate\tage\tsex\n" + - "1\tTed\t1\t01-Jan-09\tN\tmale\n" + - "2\tAlice\t1\t01-Jan-09\t17\tfemale\n" + - "3\tBob\t1\t01-Jan-09\tQ\tN"; + """ + SpecimenID\tParticipantID\tVisitID\tDate\tage\tsex + 1\tTed\t1\t01-Jan-09\tN\tmale + 2\tAlice\t1\t01-Jan-09\t17\tfemale + 3\tBob\t1\t01-Jan-09\tQ\tN"""; final String TEST_DATA_TWO_COLUMN_ASSAY = - "SpecimenID\tParticipantID\tVisitID\tDate\tage\tageMVIndicator\tsex\tsexMVIndicator\n" + - "1\tFranny\t1\t01-Jan-09\t\tN\tmale\t\n" + - "2\tZoe\t1\t01-Jan-09\t25\tQ\tfemale\t\n" + - "3\tJ.D.\t1\t01-Jan-09\t50\t\tmale\tQ"; + """ + SpecimenID\tParticipantID\tVisitID\tDate\tage\tageMVIndicator\tsex\tsexMVIndicator + 1\tFranny\t1\t01-Jan-09\t\tN\tmale\t + 2\tZoe\t1\t01-Jan-09\t25\tQ\tfemale\t + 3\tJ.D.\t1\t01-Jan-09\t50\t\tmale\tQ"""; final String TEST_DATA_SINGLE_COLUMN_ASSAY_BAD = - "SpecimenID\tParticipantID\tVisitID\tDate\tage\tsex\n" + - "1\tTed\t1\t01-Jan-09\t.N\tmale\n" + - "2\tAlice\t1\t01-Jan-09\t17\tfemale\n" + - "3\tBob\t1\t01-Jan-09\tQ\tN"; + """ + SpecimenID\tParticipantID\tVisitID\tDate\tage\tsex + 1\tTed\t1\t01-Jan-09\t.N\tmale + 2\tAlice\t1\t01-Jan-09\t17\tfemale + 3\tBob\t1\t01-Jan-09\tQ\tN"""; final String TEST_DATA_TWO_COLUMN_ASSAY_BAD = - "SpecimenID\tParticipantID\tVisitID\tDate\tage\tageMVIndicator\tsex\tsexMVIndicator\n" + - "1\tFranny\t1\t01-Jan-09\t\tN\tmale\t\n" + - "2\tZoe\t1\t01-Jan-09\t25\tQ\tfemale\t\n" + - "3\tJ.D.\t1\t01-Jan-09\t50\t\tmale\t.Q"; + """ + SpecimenID\tParticipantID\tVisitID\tDate\tage\tageMVIndicator\tsex\tsexMVIndicator + 1\tFranny\t1\t01-Jan-09\t\tN\tmale\t + 2\tZoe\t1\t01-Jan-09\t25\tQ\tfemale\t + 3\tJ.D.\t1\t01-Jan-09\t50\t\tmale\t.Q"""; final File ASSAY_SINGLE_COLUMN_EXCEL_FILE = TestFileUtils.getSampleData("mvIndicators/assay_single_column.xls"); final File ASSAY_TWO_COLUMN_EXCEL_FILE = TestFileUtils.getSampleData("mvIndicators/assay_two_column.xls"); final File ASSAY_SINGLE_COLUMN_EXCEL_FILE_BAD = TestFileUtils.getSampleData("mvIndicators/assay_single_column_bad.xls"); @@ -89,14 +94,14 @@ public void testAssayMV() waitAndClickAndWait(Locator.linkWithText(ASSAY_NAME)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), ASSAY_RUN_SINGLE_COLUMN); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_SINGLE_COLUMN); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); setFormElement(Locator.name("TextAreaDataCollector.textArea"), TEST_DATA_SINGLE_COLUMN_ASSAY_BAD); clickButton("Save and Finish"); assertLabKeyErrorPresent(); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); setFormElement(Locator.name("TextAreaDataCollector.textArea"), TEST_DATA_SINGLE_COLUMN_ASSAY); clickButton("Save and Finish"); assertNoLabKeyErrors(); @@ -122,15 +127,15 @@ public void testAssayMV() clickAndWait(Locator.linkWithText(ASSAY_NAME)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), ASSAY_RUN_TWO_COLUMN); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_TWO_COLUMN); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); - setFormElement(Locator.name("TextAreaDataCollector.textArea"), TEST_DATA_TWO_COLUMN_ASSAY_BAD); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, TEST_DATA_TWO_COLUMN_ASSAY_BAD); clickButton("Save and Finish"); assertLabKeyErrorPresent(); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); - setFormElement(Locator.name("TextAreaDataCollector.textArea"), TEST_DATA_TWO_COLUMN_ASSAY); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, TEST_DATA_TWO_COLUMN_ASSAY); clickButton("Save and Finish"); assertNoLabKeyErrors(); clickAndWait(Locator.linkWithText(ASSAY_RUN_TWO_COLUMN)); @@ -158,7 +163,7 @@ public void testAssayMV() clickAndWait(Locator.linkWithText(ASSAY_NAME)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), ASSAY_EXCEL_RUN_SINGLE_COLUMN); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, ASSAY_EXCEL_RUN_SINGLE_COLUMN); checkCheckbox(Locator.radioButtonByNameAndValue("dataCollectorName", "File upload")); setFormElement(Locator.name("__primaryFile__"), ASSAY_SINGLE_COLUMN_EXCEL_FILE_BAD); @@ -183,7 +188,7 @@ public void testAssayMV() clickAndWait(Locator.linkWithText(ASSAY_NAME)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), ASSAY_EXCEL_RUN_TWO_COLUMN); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, ASSAY_EXCEL_RUN_TWO_COLUMN); checkCheckbox(Locator.radioButtonByNameAndValue("dataCollectorName", "File upload")); setFormElement(Locator.name("__primaryFile__"), ASSAY_TWO_COLUMN_EXCEL_FILE_BAD); clickButton("Save and Finish"); diff --git a/src/org/labkey/test/tests/assay/AssayRenameExportImportTest.java b/src/org/labkey/test/tests/assay/AssayRenameExportImportTest.java index 8400607307..7faf81c595 100644 --- a/src/org/labkey/test/tests/assay/AssayRenameExportImportTest.java +++ b/src/org/labkey/test/tests/assay/AssayRenameExportImportTest.java @@ -60,6 +60,9 @@ public class AssayRenameExportImportTest extends BaseWebDriverTest .setDate(2024, 1, 29) .setTimeOfDay(10, 45, 0) .build().getTime(); + public static final String RUN_DATE_FIELD_NAME = "RunDate"; + public static final String RUN_TIME_FIELD_NAME = "RunTime"; + public static final String RUN_DATE_TIME_FIELD_NAME = "RunDateTime"; private final SimpleDateFormat _defaultDateFormat = new SimpleDateFormat("yyyy-MM-dd"); private final SimpleDateFormat _defaultTimeFormat = new SimpleDateFormat("HH:mm:ss"); @@ -289,9 +292,9 @@ private void createGpatAssayAndRun(String projectName, String assayName, File ru domainFormPanel.getField("Time").setType(FieldDefinition.ColumnType.Time); domainFormPanel = assayDesignerPage.expandFieldsPanel("Run Fields"); - domainFormPanel.addField(new FieldDefinition("RunDate", FieldDefinition.ColumnType.Date)); - domainFormPanel.addField(new FieldDefinition("RunTime", FieldDefinition.ColumnType.Time)); - domainFormPanel.addField(new FieldDefinition("RunDateTime", FieldDefinition.ColumnType.DateAndTime)); + domainFormPanel.addField(new FieldDefinition(RUN_DATE_FIELD_NAME, FieldDefinition.ColumnType.Date)); + domainFormPanel.addField(new FieldDefinition(RUN_TIME_FIELD_NAME, FieldDefinition.ColumnType.Time)); + domainFormPanel.addField(new FieldDefinition(RUN_DATE_TIME_FIELD_NAME, FieldDefinition.ColumnType.DateAndTime)); assayDesignerPage.clickFinish(); @@ -300,13 +303,13 @@ private void createGpatAssayAndRun(String projectName, String assayName, File ru WebElement runPropertiesPanel = Locator.tagWithAttributeContaining("form", "data-region-form", "Runs") .findElement(getDriver()); - setFormElement(Locator.name("runDate").findElement(runPropertiesPanel), + setFormElement(Locator.name(RUN_DATE_FIELD_NAME).findElement(runPropertiesPanel), _defaultDateFormat.format(runDateValue)); - setFormElement(Locator.name("runTime").findElement(runPropertiesPanel), + setFormElement(Locator.name(RUN_TIME_FIELD_NAME).findElement(runPropertiesPanel), _defaultTimeFormat.format(runDateValue)); - setFormElement(Locator.name("runDateTime").findElement(runPropertiesPanel), + setFormElement(Locator.name(RUN_DATE_TIME_FIELD_NAME).findElement(runPropertiesPanel), _defaultDateTimeFormat.format(runDateValue)); waitAndClick(Locator.lkButton("Save and Finish")); diff --git a/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java b/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java index d8bf8381a6..15b9814577 100644 --- a/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java +++ b/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java @@ -132,7 +132,7 @@ public void testEnableTransformForUpdate() throws Exception new AssayRunsPage(getDriver()).getTable().clickHeaderButton("Import Data"); clickButton("Next"); var importPage = new AssayImportPage(getDriver()); - importPage.setNamedInputText("name", "transformTestImport"); + importPage.setNamedInputText("Name", "transformTestImport"); importPage.setNamedTextAreaValue("TextAreaDataCollector.textArea", importData); importPage.clickSaveAndFinish(); @@ -169,7 +169,7 @@ public void testEnableTransformForUpdate() throws Exception new AssayRunsPage(getDriver()).getTable().clickHeaderButton("Import Data"); clickButton("Next"); importPage = new AssayImportPage(getDriver()); - importPage.setNamedInputText("name", "non_transform_import"); + importPage.setNamedInputText("Name", "non_transform_import"); importPage.setNamedTextAreaValue("TextAreaDataCollector.textArea", importData); importPage.clickSaveAndFinish(); @@ -281,7 +281,7 @@ public void testCancelAsyncAssayTransformJob() throws Exception new AssayRunsPage(getDriver()).getTable().clickHeaderButton("Import Data"); clickButton("Next"); var importPage = new AssayImportPage(getDriver()); - importPage.setNamedInputText("name", "cancelTransformTestImport"); + importPage.setNamedInputText("Name", "cancelTransformTestImport"); importPage.setNamedTextAreaValue("TextAreaDataCollector.textArea", importDataBuilder.toString()); Instant before = Instant.now(); importPage.clickSaveAndFinish(); diff --git a/src/org/labkey/test/tests/assay/AssayTransformWarningTest.java b/src/org/labkey/test/tests/assay/AssayTransformWarningTest.java index c505a81c5a..b3f0ca2cfd 100644 --- a/src/org/labkey/test/tests/assay/AssayTransformWarningTest.java +++ b/src/org/labkey/test/tests/assay/AssayTransformWarningTest.java @@ -50,6 +50,7 @@ public class AssayTransformWarningTest extends BaseWebDriverTest public static final File R_TRANSFORM_SCRIPT = TestFileUtils.getSampleData("qc/assayTransformWarning.R"); public static final File R_TRANSFORM_ERROR_SCRIPT = TestFileUtils.getSampleData("qc/assayTransformError.R"); public static final File JAVA_INVALID_TRANSFORM_SCRIPT = TestFileUtils.getSampleData("qc/src/org/labkey/AssayTransformNoOp.java"); + public static final Locator.XPathLocator ASSAY_NAME_FIELD_LOCATOR = Locator.name("Name"); @Override public List getAssociatedModules() @@ -110,7 +111,7 @@ public void testJavaTransformWarning() throws Exception clickAndWait(Locator.linkWithText(assayName)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), runName); + setFormElement(ASSAY_NAME_FIELD_LOCATOR, runName); setFormElement(Locator.name("TextAreaDataCollector.textArea"), importData); clickButton("Save and Finish"); @@ -150,7 +151,7 @@ public void testRTransformWarning() clickAndWait(Locator.linkWithText(assayName)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), runName); + setFormElement(ASSAY_NAME_FIELD_LOCATOR, runName); // Use this file as a sample upload file parameter setFormElement(Locator.name("myFile"), JAVA_TRANSFORM_SCRIPT); @@ -213,7 +214,7 @@ public void testRTransformUpdateWarning() throws Exception clickAndWait(Locator.linkWithText(assayName)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), runName); + setFormElement(ASSAY_NAME_FIELD_LOCATOR, runName); setFormElement(Locator.name("TextAreaDataCollector.textArea"), importData); clickButton("Save and Finish"); @@ -247,7 +248,7 @@ public void testRTransformError() clickAndWait(Locator.linkWithText(assayName)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), runName); + setFormElement(ASSAY_NAME_FIELD_LOCATOR, runName); setFormElement(Locator.name("TextAreaDataCollector.textArea"), importData); @@ -284,7 +285,7 @@ public void testTransformErrorOnUpdate() throws Exception clickAndWait(Locator.linkWithText(assayName)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), runName); + setFormElement(ASSAY_NAME_FIELD_LOCATOR, runName); setFormElement(Locator.name("TextAreaDataCollector.textArea"), importData); clickButton("Save and Finish"); diff --git a/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java b/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java index 1070df1e83..ea2f3b964c 100644 --- a/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java +++ b/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java @@ -10,6 +10,7 @@ import org.labkey.test.WebDriverWrapper; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.pages.assay.AssayUploadJobsPage; import org.labkey.test.pages.query.SourceQueryPage; @@ -95,7 +96,7 @@ public void testUpload200kRows() throws Exception clickAndWait(Locator.linkWithText(LARGE_ASSAY)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.input("name"), "200k"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "200k"); checkRadioButton(Locator.inputById("Fileupload")); setFormElement(Locator.input("__primaryFile__"), largeExcelFile); clickButton("Save and Finish"); @@ -119,7 +120,7 @@ public void testUpload200kRows() throws Exception clickAndWait(Locator.linkWithText(LARGE_ASSAY_2)); clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.input("name"), "200k take 2"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "200k take 2"); checkRadioButton(Locator.inputById("Fileupload")); setFormElement(Locator.input("__primaryFile__"), largeExportExcelFile); clickButton("Save and Finish"); diff --git a/src/org/labkey/test/tests/elisa/ElisaAssayTest.java b/src/org/labkey/test/tests/elisa/ElisaAssayTest.java index 7f0728b5a4..9c5bc34476 100644 --- a/src/org/labkey/test/tests/elisa/ElisaAssayTest.java +++ b/src/org/labkey/test/tests/elisa/ElisaAssayTest.java @@ -142,8 +142,8 @@ protected void uploadFile(File file, String uniqueifier, String finalButton, boo { for (int i = startSpecimen; i <= lastSpecimen; i++) { - Locator specimenLocator = Locator.name("specimen" + (i) + "_SpecimenID"); - Locator participantLocator = Locator.name("specimen" + (i) + "_ParticipantID"); + Locator specimenLocator = Locator.name("Specimen " + (i) + "_SpecimenID"); + Locator participantLocator = Locator.name("Specimen " + (i) + "_ParticipantID"); // test for prepopulation of specimen form element values // if (testPrepopulation) @@ -151,11 +151,11 @@ protected void uploadFile(File file, String uniqueifier, String finalButton, boo setFormElement(specimenLocator, "specimen " + (i) + " " + uniqueifier); setFormElement(participantLocator, "ptid " + (i) + " " + uniqueifier); - setFormElement(Locator.name("specimen" + (i) + "_VisitID"), "" + (i)); + setFormElement(Locator.name("Specimen " + (i) + "_VisitID"), "" + (i)); } setFormElement(Locator.name("__primaryFile__"), file); - setFormElement(Locator.name("curveFitMethod"), "Linear"); + setFormElement(Locator.name("CurveFitMethod"), "Linear"); clickButton("Next"); @@ -173,7 +173,7 @@ protected void uploadFile(File file, String uniqueifier, String finalButton, boo String[] letters = {"A","B","C","D","E","F","G","H"}; for (int i = 0; i <= 5; i++) { - setFormElement(Locator.name(letters[i].toLowerCase()+"1"+letters[i]+"2_Concentration"), "" + (i + 1)); + setFormElement(Locator.name(letters[i]+"1-"+letters[i]+"2_Concentration"), "" + (i + 1)); if (!testPrepopulation) { diff --git a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java index 48c0353559..a7deb55ffd 100644 --- a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java +++ b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java @@ -15,6 +15,7 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.assay.AssayDataPage; import org.labkey.test.pages.assay.AssayRunsPage; import org.labkey.test.pages.assay.elisa.ElisaRunDetailsPage; @@ -239,8 +240,8 @@ private AssayRunsPage uploadHighSpeedFile(String assayName, String runName, File clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), runName); - setFormElement(Locator.name("curveFitMethod"), curveFitMethod); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(Locator.name("CurveFitMethod"), curveFitMethod); setFormElement(Locator.name("__primaryFile__"), file); clickButton("Save and Finish", 180000); // 3 minutes wait if need return new AssayRunsPage(getDriver()); @@ -254,24 +255,24 @@ private AssayRunsPage uploadFile(String assayName, String runName, File file, St for (int i = startSpecimen; i <= lastSpecimen; i++) { - Locator specimenLocator = Locator.name("specimen" + (i) + "_SpecimenID"); - Locator participantLocator = Locator.name("specimen" + (i) + "_ParticipantID"); + Locator specimenLocator = Locator.name("Specimen " + (i) + "_SpecimenID"); + Locator participantLocator = Locator.name("Specimen " + (i) + "_ParticipantID"); setFormElement(specimenLocator, "specimen " + (i) + " " + uniqueifier); setFormElement(participantLocator, "ptid " + (i) + " " + uniqueifier); - setFormElement(Locator.name("specimen" + (i) + "_VisitID"), "" + (i)); + setFormElement(Locator.name("Specimen " + (i) + "_VisitID"), "" + (i)); } - setFormElement(Locator.name("name"), runName); - setFormElement(Locator.name("curveFitMethod"), curveFitMethod); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(Locator.name("CurveFitMethod"), curveFitMethod); setFormElement(Locator.name("__primaryFile__"), file); clickButton("Next"); String[] letters = {"A","B","C","D","E","F","G","H"}; for (int i = 0; i <= 5; i++) { - setFormElement(Locator.name(letters[i].toLowerCase()+"1"+letters[i]+"2_Concentration"), "" + (i + 1)); + setFormElement(Locator.name(letters[i]+"1-"+letters[i]+"2_Concentration"), "" + (i + 1)); } clickButton("Save and Finish"); diff --git a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java index 0cda0ff4fd..0026867d17 100644 --- a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java +++ b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java @@ -31,6 +31,7 @@ import org.labkey.test.components.CrosstabDataRegion; import org.labkey.test.components.CustomizeView; import org.labkey.test.components.PlateSummary; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.pages.assay.plate.PlateDesignerPage; import org.labkey.test.tests.AbstractAssayTest; @@ -83,6 +84,7 @@ public class ElispotAssayTest extends AbstractAssayTest private static final String FLUOROSPOT_DETECTION_METHOD = "fluorescent"; public static final String FLUOROSPOT_FOLDER = "Fluorospot"; + public static final Locator.XPathLocator PLATE_READER_LOCATOR = Locator.name("PlateReader"); @Override public List getAssociatedModules() @@ -137,15 +139,15 @@ public void elispotTests() clickButton("Import Data"); clickButton("Next"); - selectOptionByText(Locator.name("plateReader"), "Cellular Technology Ltd. (CTL)"); + selectOptionByText(PLATE_READER_LOCATOR, "Cellular Technology Ltd. (CTL)"); uploadFile(TEST_ASSAY_ELISPOT_FILE1, "A", "Save and Import Another Run", false); assertTextPresent("Upload successful."); - selectOptionByText(Locator.name("plateReader"), "AID"); + selectOptionByText(PLATE_READER_LOCATOR, "AID"); uploadFile(TEST_ASSAY_ELISPOT_FILE2, "B", "Save and Import Another Run", false); assertTextPresent("Upload successful."); - selectOptionByText(Locator.name("plateReader"), "Zeiss"); + selectOptionByText(PLATE_READER_LOCATOR, "Zeiss"); uploadFile(TEST_ASSAY_ELISPOT_FILE3, "C", "Save and Finish", false); assertElispotData(); @@ -177,11 +179,11 @@ public void fluorospotTests() log("Uploading Fluorospot Runs"); clickButton("Import Data"); clickButton("Next"); - selectOptionByText(Locator.name("plateReader"), "AID"); + selectOptionByText(PLATE_READER_LOCATOR, "AID"); uploadFluorospotFile(TEST_ASSAY_FLUOROSPOT_FILE1, "F1", "Save and Import Another Run"); assertTextPresent("Upload successful."); - selectOptionByText(Locator.name("plateReader"), "AID"); + selectOptionByText(PLATE_READER_LOCATOR, "AID"); uploadFluorospotFile(TEST_ASSAY_FLUOROSPOT_FILE2, "F2", "Save and Finish"); clickAndWait(Locator.linkContainingText("AID_fluoro2")); @@ -294,18 +296,18 @@ protected void uploadFile(File file, String uniqueifier, String finalButton, boo protected void uploadFile(File file, String uniqueifier, String finalButton, boolean testPrepopulation, boolean subtractBackground, boolean fluorospot) { if (subtractBackground) - checkCheckbox(Locator.checkboxByName("subtractBackground")); + checkCheckbox(Locator.checkboxByName("SubtractBackground")); for (int i = 0; i < 4; i++) { - Locator specimenLocator = Locator.name("specimen" + (i + 1) + "_ParticipantID"); + Locator specimenLocator = Locator.name("Specimen " + (i + 1) + "_ParticipantID"); // test for prepopulation of specimen form element values if (testPrepopulation) - assertFormElementEquals(specimenLocator, "Specimen " + (i+1)); + assertEquals("Specimen " + (i+1), getFormElement(specimenLocator)); setFormElement(specimenLocator, "ptid " + (i + 1) + " " + uniqueifier); - setFormElement(Locator.name("specimen" + (i + 1) + "_VisitID"), "" + (i + 1)); - setFormElement(Locator.name("specimen" + (i + 1) + "_SampleDescription"), "blood"); + setFormElement(Locator.name("Specimen " + (i + 1) + "_VisitID"), "" + (i + 1)); + setFormElement(Locator.name("Specimen " + (i + 1) + "_SampleDescription"), "blood"); } setFormElement(Locator.name("__primaryFile__"), file); @@ -313,24 +315,24 @@ protected void uploadFile(File file, String uniqueifier, String finalButton, boo for (int i = 0; i < 6; i++) { - setFormElement(Locator.name("antigen" + (i + 1) + "_AntigenID"), "" + (i + 1)); + setFormElement(Locator.name("Antigen " + (i + 1) + "_AntigenID"), "" + (i + 1)); - Locator antigenLocator = Locator.name("antigen" + (i + 1) + "_AntigenName"); + Locator antigenLocator = Locator.name("Antigen " + (i + 1) + "_AntigenName"); // test for prepopulation of antigen element values if (testPrepopulation) - assertFormElementEquals(antigenLocator, "Antigen " + (i+1)); + assertEquals("Antigen " + (i+1), getFormElement(antigenLocator)); setFormElement(antigenLocator, "atg_" + (i + 1) + uniqueifier); - setFormElement(Locator.name("antigen" + (i + 1) + "_CellWell"), "150"); + setFormElement(Locator.name("Antigen " + (i + 1) + "_CellWell"), "150"); } if (fluorospot) { clickButton("Next"); - setFormElement(Locator.input("cy3_CytokineName"), "Cytokine 1"); + setFormElement(Locator.input("Cy3_CytokineName"), "Cytokine 1"); setFormElement(Locator.input("FITC_CytokineName"), "Cytokine 2"); - setFormElement(Locator.input("FITCCy3_CytokineName"), "Cytokine 3"); + setFormElement(Locator.input("FITC+Cy3_CytokineName"), "Cytokine 3"); } clickButton(finalButton); } @@ -507,8 +509,8 @@ protected void runTransformTest() clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), "transformed assayId"); - selectOptionByText(Locator.name("plateReader"), "AID"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "transformed assayId"); + selectOptionByText(PLATE_READER_LOCATOR, "AID"); uploadFile(TEST_ASSAY_ELISPOT_FILE4, "D", "Save and Finish", false); // verify there is a spot count value of 747.747 and a custom column added by the transform @@ -593,7 +595,7 @@ protected void verifyBackgroundSubtractionOnNewRun() clickButton("Import Data"); clickButton("Next"); - selectOptionByText(Locator.name("plateReader"), "AID"); + selectOptionByText(PLATE_READER_LOCATOR, "AID"); uploadFile(TEST_ASSAY_ELISPOT_FILE5, "E", "Save and Finish", false, true); DataRegionTable runTable = new DataRegionTable("Runs", this); assertTextPresent("AID_0161456 W8"); @@ -633,7 +635,7 @@ private void testTNTCdata() clickButton("Import Data"); clickButton("Next"); - selectOptionByText(Locator.name("plateReader"), "AID"); + selectOptionByText(PLATE_READER_LOCATOR, "AID"); uploadFile(TEST_ASSAY_ELISPOT_FILE6, "F", "Save and Finish", false); testMeanAndMedian(); diff --git a/src/org/labkey/test/tests/flow/BaseFlowTest.java b/src/org/labkey/test/tests/flow/BaseFlowTest.java index 1821b32679..7566e3ae4a 100644 --- a/src/org/labkey/test/tests/flow/BaseFlowTest.java +++ b/src/org/labkey/test/tests/flow/BaseFlowTest.java @@ -279,12 +279,14 @@ protected void setProtocolMetadata(String specimenIdColumn, String participantCo if (setBackground) { // specify forground-background match columns - assertFormElementEquals(Locator.name("ff_matchColumn").index(0), "Run"); + Locator loc1 = Locator.name("ff_matchColumn").index(0); + assertEquals("Run", getFormElement(loc1)); selectOptionByText(Locator.name("ff_matchColumn").index(1), "Sample Sample Order"); // specify background values selectOptionByText(Locator.name("ff_backgroundFilterField").index(0), "Sample Stim"); - assertFormElementEquals(Locator.name("ff_backgroundFilterOp").index(0), "eq"); + Locator loc = Locator.name("ff_backgroundFilterOp").index(0); + assertEquals("eq", getFormElement(loc)); setFormElement(Locator.name("ff_backgroundFilterValue").index(0), "Neg Cont"); } @@ -339,7 +341,8 @@ protected void importAnalysis(ImportAnalysisOptions options) if (!options.canAccelerateWizard()) { importAnalysis_selectFCSFiles(options.getContainerPath(), options.getSelectFCSFilesOption(), options.getKeywordDirs()); - assertFormElementEquals(Locator.name("selectFCSFilesOption"), options.getSelectFCSFilesOption().name()); + Locator loc = Locator.name("selectFCSFilesOption"); + assertEquals(options.getSelectFCSFilesOption().name(), getFormElement(loc)); boolean resolving = options.getSelectFCSFilesOption() == SelectFCSFileOption.Previous; importAnalysis_reviewSamples(options.getContainerPath(), resolving, options.getSelectedGroupNames(), options.getSelectedSampleIds()); diff --git a/src/org/labkey/test/tests/flow/FlowSpecimenTest.java b/src/org/labkey/test/tests/flow/FlowSpecimenTest.java index 9fb152e282..40804c54a5 100644 --- a/src/org/labkey/test/tests/flow/FlowSpecimenTest.java +++ b/src/org/labkey/test/tests/flow/FlowSpecimenTest.java @@ -23,6 +23,7 @@ import org.labkey.test.categories.Daily; import org.labkey.test.categories.Flow; import org.labkey.test.categories.Specimen; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LogMethod; import org.labkey.test.util.PipelineStatusTable; @@ -161,7 +162,7 @@ protected void importFCSFiles() clickAndWait(Locator.linkWithText("Browse for more FCS files to be imported")); _fileBrowserHelper.selectFileBrowserItem("flowjoquery/microFCS"); _fileBrowserHelper.selectImportDataAction("Import Directory of FCS Files"); - selectOptionByText(Locator.id("targetStudy"), "/" + getProjectName() + "/" + STUDY_FOLDER + " (" + STUDY_FOLDER + " Study)"); + selectOptionByText(AssayConstants.TARGET_STUDY_FIELD_LOCATOR, "/" + getProjectName() + "/" + STUDY_FOLDER + " (" + STUDY_FOLDER + " Study)"); clickButton("Import Selected Runs"); waitForPipelineComplete(); @@ -223,7 +224,7 @@ private void linkFlowResultsToStudy() beginAt("/flow" + getContainerPath() + "/query.view?schemaName=flow&query.queryName=FCSAnalyses"); click(Locator.checkboxByName(".toggle")); clickButton("Link to Study"); - selectOptionByText(Locator.name("targetStudy"), "/" + getProjectName() + "/" + STUDY_FOLDER + " (" + STUDY_FOLDER + " Study)"); + selectOptionByText(AssayConstants.TARGET_STUDY_FIELD_LOCATOR, "/" + getProjectName() + "/" + STUDY_FOLDER + " (" + STUDY_FOLDER + " Study)"); clickButton("Next"); assertTitleContains("Link to " + STUDY_FOLDER + " Study: Verify Results"); // verify specimen information is filled in for '118795.fcs' FCS file diff --git a/src/org/labkey/test/tests/issues/IssueDomainSharingTest.java b/src/org/labkey/test/tests/issues/IssueDomainSharingTest.java index 2e32071309..0519f64df4 100644 --- a/src/org/labkey/test/tests/issues/IssueDomainSharingTest.java +++ b/src/org/labkey/test/tests/issues/IssueDomainSharingTest.java @@ -126,7 +126,8 @@ public void testSharingDomain() final String assignTo = _userHelper.getDisplayNameForEmail(USER); final String customValue = "Value for shared domain"; final String listDef = SHARED_LIST_DEF; - final String inheritedField = "inheritedfield"; + // Append ":" to field name: Issue 32057: Issues forms can't handle complex field names + final String inheritedField = "inheritedfield:"; goToProjectHome("Shared"); _containerHelper.enableModule("Issues"); @@ -144,8 +145,7 @@ public void testSharingDomain() adminPage.clickSave(); adminPage = IssuesAdminPage.beginAt(this, "Shared", listDef); - // Append ":" to field name: Issue 32057: Issues forms can't handle complex field names - adminPage.getFieldsPanel().addField(new FieldDefinition(inheritedField + ":", ColumnType.String).setLabel(inheritedField)); + adminPage.getFieldsPanel().addField(new FieldDefinition(inheritedField, ColumnType.String).setLabel(inheritedField)); adminPage.clickSave(); ListPage issueList = ListPage.beginAt(this, getProjectName(), listDef); diff --git a/src/org/labkey/test/tests/issues/IssuesAdminTest.java b/src/org/labkey/test/tests/issues/IssuesAdminTest.java index 67278136d7..98d9f7983c 100644 --- a/src/org/labkey/test/tests/issues/IssuesAdminTest.java +++ b/src/org/labkey/test/tests/issues/IssuesAdminTest.java @@ -198,11 +198,11 @@ public void testRelatedIssuesComments() throws Exception DetailsPage detailsPage = _issuesHelper.addIssue( Maps.of("title", mainTitle, - "assignedTo", TEST_USER_DISPLAY_NAME, + "AssignedTo", TEST_USER_DISPLAY_NAME, "comment", "Main issue Comment")); Map relatedIssueData = Maps.of("title", relatedIssueTitle, - "assignedTo", TEST_USER_DISPLAY_NAME, + "AssignedTo", TEST_USER_DISPLAY_NAME, "comment", "Related issue Comment"); InsertPage relatedIssuePage = detailsPage.clickCreateRelatedIssue(getProjectName(), ISSUE_LIST_NAME.toLowerCase()); for (Map.Entry field : relatedIssueData.entrySet()) diff --git a/src/org/labkey/test/tests/issues/IssuesAttachmentTest.java b/src/org/labkey/test/tests/issues/IssuesAttachmentTest.java index 18c636c80e..f650a672c9 100644 --- a/src/org/labkey/test/tests/issues/IssuesAttachmentTest.java +++ b/src/org/labkey/test/tests/issues/IssuesAttachmentTest.java @@ -91,10 +91,10 @@ private void doSetup() throws Exception } @Test - public void testAttachmentInjection() throws Exception + public void testAttachmentInjection() { goToProjectHome(); - Map issue = Maps.of("assignedTo", getDisplayName(), "title", "Attempt Issue Attachment Injection"); + Map issue = Maps.of("AssignedTo", getDisplayName(), "title", "Attempt Issue Attachment Injection"); final DetailsPage detailsPage = issuesHelper.addIssue(issue, ALERT_FILE, ESCAPE_FILE); final String issueId = detailsPage.getIssueId(); diff --git a/src/org/labkey/test/tests/issues/IssuesTest.java b/src/org/labkey/test/tests/issues/IssuesTest.java index 7d4c75b21c..dc9a0a1c68 100644 --- a/src/org/labkey/test/tests/issues/IssuesTest.java +++ b/src/org/labkey/test/tests/issues/IssuesTest.java @@ -84,8 +84,8 @@ public class IssuesTest extends BaseWebDriverTest private static final String USER2 = "user2_issuetest@issues.test"; private static final String USER3 = "user3_issuetest@issues.test"; private static final String user = "reader@issues.test"; - private static final Map ISSUE_0 = new HashMap<>(Maps.of("title", ISSUE_TITLE_0, "priority", "2", "comment", "a bright flash of light")); - private static final Map ISSUE_1 = new HashMap<>(Maps.of("title", ISSUE_TITLE_1, "priority", "1", "comment", "alien autopsy")); + private static final Map ISSUE_0 = new HashMap<>(Maps.of("title", ISSUE_TITLE_0, "Priority", "2", "comment", "a bright flash of light")); + private static final Map ISSUE_1 = new HashMap<>(Maps.of("title", ISSUE_TITLE_1, "Priority", "1", "comment", "alien autopsy")); private static final String ISSUE_SUMMARY_WEBPART_NAME = "Issues Summary"; private static final String ISSUE_LIST_REGION_NAME = "issues-issues"; private static final String TEST_GROUP = "testers"; @@ -162,8 +162,8 @@ protected void doCleanup(boolean afterTest) throws TestTimeoutException public void doInit() { NAME = getDisplayName(); - ISSUE_0.put("assignedTo", NAME); - ISSUE_1.put("assignedTo", NAME); + ISSUE_0.put("AssignedTo", NAME); + ISSUE_1.put("AssignedTo", NAME); _containerHelper.createProject(getProjectName(), null); _permissionsHelper.createPermissionsGroup(TEST_GROUP); _permissionsHelper.assertPermissionSetting(TEST_GROUP, "No Permissions"); @@ -279,7 +279,7 @@ public void generalTest() throws Exception adminPage.getFieldsPanel().getField("StringWithDefault") .clickAdvancedSettings() .clickDefaultValuesLink(); // should land us in - setFormElement(Locator.input("stringWithDefault"), "StringWithDefault (default value)"); + setFormElement(Locator.input("StringWithDefault"), "StringWithDefault (default value)"); clickButton("Save Defaults"); clickProject(getProjectName()); @@ -288,25 +288,21 @@ public void generalTest() throws Exception // InsertAction clickButton("New Issue"); setFormElement(Locator.name("title"), issueTitle); - selectOptionByText(Locator.name("type"), "UFO"); - selectOptionByText(Locator.name("area"), "Area51"); - selectOptionByText(Locator.name("module"), "Zvezda"); - selectOptionByText(Locator.name("priority"), "2"); + selectOptionByText(Locator.name("Type"), "UFO"); + selectOptionByText(Locator.name("Area"), "Area51"); + selectOptionByText(Locator.name("Module"), "Zvezda"); + selectOptionByText(Locator.name("Priority"), "2"); setFormElement(Locator.name("comment"), ISSUE_0.get("comment")); - selectOptionByText(Locator.name("assignedTo"), NAME); - selectOptionByText(Locator.name("milestone"), "2012"); + selectOptionByText(Locator.name("AssignedTo"), NAME); + selectOptionByText(Locator.name("Milestone"), "2012"); - Locator fouthStringLocator = Locator.name("myFourthString"); - if (!isElementPresent(fouthStringLocator)) - fouthStringLocator = Locator.name("myfourthstring"); - setFormElement(fouthStringLocator, "http://www.issues.test"); + Locator fourthStringLocator = Locator.name("MyFourthString"); + setFormElement(fourthStringLocator, "http://www.issues.test"); - Locator fifthStringLocator = Locator.name("myFifthString"); - if (!isElementPresent(fifthStringLocator)) - fifthStringLocator = Locator.name("myfifthstring"); + Locator fifthStringLocator = Locator.name("MyFifthString"); selectOptionByText(fifthStringLocator, "Polonium"); // clear out the default value on insert - setFormElement(Locator.name("stringWithDefault"), ""); + setFormElement(Locator.name("StringWithDefault"), ""); clickButton("Save"); @@ -324,7 +320,7 @@ public void generalTest() throws Exception clickAndWait(Locator.linkWithText("Issues List")); // Click the issue id based on the text issue title - clickAndWait(Locator.linkWithText("" + issueId)); + clickAndWait(Locator.linkWithText(issueId)); // UpdateAction updateIssue(); @@ -350,7 +346,7 @@ public void generalTest() throws Exception assertTextPresent("Issues List"); //we should be back at the issues list now // JumpToIssueAction - setFormElement(Locator.name("issueId"), "" + issueId); + setFormElement(Locator.name("issueId"), issueId); clickAndWait(Locator.tagWithAttribute("a", "data-original-title", "Search")); assertTextPresent(issueTitle); assertElementNotPresent(Locators.labkeyError); @@ -443,7 +439,7 @@ private void setIssue(UpdatePage page, String title, String assignedTo, String t { page.title().set(title); page.assignedTo().set(assignedTo); - page.selectWithName("type").set(type); + page.selectWithName("Type").set(type); page.priority().set(priority); page.related().set(related); page.notifyList().set(notify); @@ -453,7 +449,7 @@ private void assertIssue(UpdatePage page, String title, String assignedTo, Strin { assertEquals("title", title, page.title().get()); assertEquals("assignedTo", assignedTo, page.assignedTo().get()); - assertEquals("type", type, page.selectWithName("type").get()); + assertEquals("type", type, page.selectWithName("Type").get()); assertEquals("priority", priority, page.priority().get()); assertEquals("related", related, page.related().get()); Assertions.assertThat(page.notifyList().get()).as("notify").contains(_userHelper.getDisplayNameForEmail(notify)); @@ -491,7 +487,7 @@ public void testEmailTemplate() @Test public void emailTest() { - Map ISSUE = Maps.of("assignedTo", _userHelper.getDisplayNameForEmail(USER1), "title", "A not so serious issue", "priority", "4", "comment", "No big whup", "notifyList", USER2); + Map ISSUE = Maps.of("AssignedTo", _userHelper.getDisplayNameForEmail(USER1), "title", "A not so serious issue", "Priority", "4", "comment", "No big whup", "notifyList", USER2); _issuesHelper.goToAdmin(); _issuesHelper.setIssueAssignmentList(null); @@ -685,7 +681,7 @@ public void subFolderIssuesTest() { final Map issue0 = new HashMap<>(ISSUE_0); issue0.put("title", "This is for the subfolder test"); - final Map issue1 = Maps.of("assignedTo", NAME, "title", "A sub-folder issue", "priority", "2", "comment", "We are in a sub-folder"); + final Map issue1 = Maps.of("AssignedTo", NAME, "title", "A sub-folder issue", "Priority", "2", "comment", "We are in a sub-folder"); final String subFolder = "SubFolder"; // NOTE: be afraid -- very afraid. this data is used other places and could lead to false+ or false- @@ -716,14 +712,14 @@ public void subFolderIssuesTest() @Test public void duplicatesTest() { - _issuesHelper.addIssue(Maps.of("assignedTo", NAME, "title", "This Is some Issue -- let's say A")); + _issuesHelper.addIssue(Maps.of("AssignedTo", NAME, "title", "This Is some Issue -- let's say A")); String issueIdA = getIssueId(); - _issuesHelper.addIssue(Maps.of("assignedTo", NAME, "title", "This is another issue -- let's say B")); + _issuesHelper.addIssue(Maps.of("AssignedTo", NAME, "title", "This is another issue -- let's say B")); String issueIdB = getIssueId(); clickButton("Resolve"); - selectOptionByText(Locator.name("resolution"), "Duplicate"); + selectOptionByText(Locator.name("Resolution"), "Duplicate"); setFormElement(Locator.name("duplicate"), issueIdA); clickButton("Save"); @@ -751,7 +747,7 @@ public void moveIssueTest() goToModule("Issues"); // create a new issue to be moved - _issuesHelper.addIssue(Maps.of("assignedTo", displayName, "title", issueTitle)); + _issuesHelper.addIssue(Maps.of("AssignedTo", displayName, "title", issueTitle)); // move the created issue goToModule("Issues"); @@ -772,11 +768,11 @@ public void moveIssueTest() goToModule("Issues"); String issueTitleA = "Multi-Issue Move A"; - _issuesHelper.addIssue(Maps.of("assignedTo", displayName, "title", issueTitleA)); + _issuesHelper.addIssue(Maps.of("AssignedTo", displayName, "title", issueTitleA)); String issueIdA = getIssueId(); String issueTitleB = "Multi-Issue Move B"; - _issuesHelper.addIssue(Maps.of("assignedTo", displayName, "title", issueTitleB)); + _issuesHelper.addIssue(Maps.of("AssignedTo", displayName, "title", issueTitleB)); String issueIdB = getIssueId(); goToModule("Issues"); @@ -799,10 +795,10 @@ public void relatedIssueTest() { Locator relatedLocator = Locator.name("related"); - String issueIdA = _issuesHelper.addIssue(Maps.of("assignedTo", NAME, "title", "A is for Apple", "priority", "0")).getIssueId(); - String issueIdB = _issuesHelper.addIssue(Maps.of("assignedTo", NAME, "title", "B is for Baking", "priority", "0")).getIssueId(); + String issueIdA = _issuesHelper.addIssue(Maps.of("AssignedTo", NAME, "title", "A is for Apple", "Priority", "0")).getIssueId(); + String issueIdB = _issuesHelper.addIssue(Maps.of("AssignedTo", NAME, "title", "B is for Baking", "Priority", "0")).getIssueId(); // related C to A - String issueIdC = _issuesHelper.addIssue(Maps.of("assignedTo", NAME, "title", "C is for Cat", "priority", "0", "related", issueIdA)).getIssueId(); + String issueIdC = _issuesHelper.addIssue(Maps.of("AssignedTo", NAME, "title", "C is for Cat", "Priority", "0", "related", issueIdA)).getIssueId(); clickAndWait(Locator.linkWithText(issueIdA)); assertElementPresent(Locator.linkWithText(issueIdC)); // Should link back to related issue @@ -855,7 +851,7 @@ public void defaultAssignedToTest() // check for no default clickButton("New Issue"); - assertEquals("", getSelectedOptionText(Locator.name("assignedTo"))); + assertEquals("", getSelectedOptionText(Locator.name("AssignedTo"))); clickButton("Cancel"); /// check reader cannot be set as default user (issue 20598) @@ -869,7 +865,7 @@ public void defaultAssignedToTest() // verify clickButton("New Issue"); - assertEquals(getSelectedOptionText(Locator.name("assignedTo")), user1DisplayName); + assertEquals(getSelectedOptionText(Locator.name("AssignedTo")), user1DisplayName); clickButton("Cancel"); // set default group and user @@ -880,7 +876,7 @@ public void defaultAssignedToTest() // verify clickButton("New Issue"); - assertEquals(getSelectedOptionText(Locator.name("assignedTo")), NAME); + assertEquals(getSelectedOptionText(Locator.name("AssignedTo")), NAME); clickButton("Cancel"); // set no default user and return to project users assign list @@ -891,7 +887,7 @@ public void defaultAssignedToTest() // check for no default clickButton("New Issue"); - assertEquals("", getSelectedOptionText(Locator.name("assignedTo"))); + assertEquals("", getSelectedOptionText(Locator.name("AssignedTo"))); clickButton("Cancel"); // issue 20699 - NPE b/c default assign to user deleted! @@ -917,7 +913,7 @@ public void defaultAssignedToTest() goToProjectHome(); waitAndClickAndWait(Locator.linkContainingText(ISSUE_SUMMARY_WEBPART_NAME)); clickButton("New Issue"); - List assignedToUserOptionWebElement = new Select(Locator.name("assignedTo").findElement(getDriver())).getOptions(); + List assignedToUserOptionWebElement = new Select(Locator.name("AssignedTo").findElement(getDriver())).getOptions(); List assignedToUserOptions = new ArrayList<>(); for (WebElement e : assignedToUserOptionWebElement) if (!e.getText().isBlank()) diff --git a/src/org/labkey/test/tests/nab/NabAssayTest.java b/src/org/labkey/test/tests/nab/NabAssayTest.java index 1585551864..2ae5a72fe5 100644 --- a/src/org/labkey/test/tests/nab/NabAssayTest.java +++ b/src/org/labkey/test/tests/nab/NabAssayTest.java @@ -29,6 +29,7 @@ import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; import org.labkey.test.components.PlateGrid; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.labkey.LabKeyAlert; import org.labkey.test.pages.admin.PermissionsPage; import org.labkey.test.pages.assay.RunQCPage; @@ -419,7 +420,7 @@ public void runUITests() region.checkAllOnPage(); region.clickHeaderButtonAndWait("Link to Study"); - selectOptionByText(Locator.name("targetStudy"), "/" + TEST_ASSAY_PRJ_NAB + "/" + TEST_ASSAY_FLDR_STUDY1 + " (" + TEST_ASSAY_FLDR_STUDY1 + " Study)"); + selectOptionByText(AssayConstants.TARGET_STUDY_FIELD_LOCATOR, "/" + TEST_ASSAY_PRJ_NAB + "/" + TEST_ASSAY_FLDR_STUDY1 + " (" + TEST_ASSAY_FLDR_STUDY1 + " Study)"); clickButton("Next", 300_000); // Triggers a query that is, sometimes, very slow on SQL Server region = new DataRegionTable("Data", this); @@ -541,7 +542,7 @@ private void doResolverTypeTest() clickFolder(TEST_ASSAY_FLDR_NAB); clickAndWait(Locator.linkWithText(TEST_ASSAY_NAB)); clickButton("Import Data"); - checkRadioButton(Locator.radioButtonByNameAndValue("participantVisitResolver", "ParticipantVisitDate")); + checkRadioButton(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "ParticipantVisitDate")); clickButton("Next"); // verify that 'Participant ID', 'Visit ID', and 'Date' fields are included diff --git a/src/org/labkey/test/tests/nab/NabAssayThawListTest.java b/src/org/labkey/test/tests/nab/NabAssayThawListTest.java index 196317bc8d..4f07afeba6 100644 --- a/src/org/labkey/test/tests/nab/NabAssayThawListTest.java +++ b/src/org/labkey/test/tests/nab/NabAssayThawListTest.java @@ -25,6 +25,7 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.tests.AbstractAssayTest; import org.labkey.test.util.AbstractAssayHelper; import org.labkey.test.util.AssayImportOptions; @@ -88,7 +89,7 @@ public static void setupProject() throws Exception init.doSetup(); } - private void doSetup() throws Exception + private void doSetup() { // default project _containerHelper.createProject(getProjectName(), null); @@ -123,7 +124,7 @@ public void runUITests() // We'll override it later at the folder level. clickAndWait(Locator.linkWithText(TEST_ASSAY_NAB)); _assayHelper.setDefaultValues(TEST_ASSAY_NAB, AbstractAssayHelper.AssayDefaultAreas.BATCH_FIELDS); - click(Locator.radioButtonByNameAndValue("participantVisitResolver", AssayImportOptions.VisitResolverType.ParticipantVisitDate.name())); + click(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, AssayImportOptions.VisitResolverType.ParticipantVisitDate.name())); clickButton("Save Defaults"); // Add the list we'll use for the thaw list lookup @@ -141,13 +142,13 @@ public void runUITests() // Are we seeing the default set in the parent project? Assert.assertEquals("Default participant visit resolver not inherited from project", AssayImportOptions.VisitResolverType.ParticipantVisitDate.name(), - Locator.checkedRadioInGroup("participantVisitResolver").findElement(getDriver()).getAttribute("value")); + Locator.checkedRadioInGroup(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME).findElement(getDriver()).getAttribute("value")); // Now override - click(Locator.radioButtonByNameAndValue("participantVisitResolver", "Lookup")); + click(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "Lookup")); // 20583 We now hide the option to paste in a tsv for the default value - assertElementNotPresent(Locator.radioButtonByNameAndValue("ThawListType", "Text")); + assertElementNotPresent(Locator.radioButtonByNameAndValue(AssayConstants.THAW_LIST_TYPE_FIELD_NAME, "Text")); // 20998 as part of that fix, the List option should already be checked waitForElement(Locator.css(".schema-loaded-marker")); @@ -190,21 +191,21 @@ public void runUITests() // As long as we're here, make sure inheritance is still being acknowledged. Assert.assertEquals("Default participant visit resolver not inherited from project", AssayImportOptions.VisitResolverType.ParticipantVisitDate.name(), - Locator.checkedRadioInGroup("participantVisitResolver").findElement(getDriver()).getAttribute("value")); + Locator.checkedRadioInGroup(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME).findElement(getDriver()).getAttribute("value")); assertTextPresent("These values are overridden by defaults"); log("Verify Delete and Re-import doesn't autofill SpecimenId"); navToRunDetails(); clickAndWait(Locator.linkWithText("Delete and Re-import")); Assert.assertEquals("Wrong participant visit resolver selected", - "Lookup", Locator.checkedRadioInGroup("participantVisitResolver").findElement(getDriver()).getAttribute("value")); + "Lookup", Locator.checkedRadioInGroup(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME).findElement(getDriver()).getAttribute("value")); Assert.assertEquals("Wrong participant visit resolver selected", - "List", Locator.checkedRadioInGroup("ThawListType").findElement(getDriver()).getAttribute("value")); + "List", Locator.checkedRadioInGroup(AssayConstants.THAW_LIST_TYPE_FIELD_NAME).findElement(getDriver()).getAttribute("value")); waitForFormElementToEqual(Locator.tagWithName("input", "ThawListList-QueryName"), "NabThawList"); clickButton("Next"); - assertElementPresent(Locator.input("specimen1_SpecimenID").withoutAttribute("value", "")); + assertElementPresent(Locator.input("Specimen 1_SpecimenID").withoutAttribute("value", "")); // Let's make sure *some* of the last entered values did get auto-filled. - assertElementPresent(Locator.input("specimen1_InitialDilution").withAttribute("value", "20.0")); + assertElementPresent(Locator.input("Specimen 1_InitialDilution").withAttribute("value", "20.0")); verifyValidation(iob); } diff --git a/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java b/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java index 2c307df4ae..b79a98628d 100644 --- a/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java +++ b/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java @@ -25,6 +25,7 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.pages.assay.plate.PlateDesignerPage; import org.labkey.test.pages.assay.plate.PlateTemplateListPage; @@ -197,9 +198,9 @@ private void doNAbTest(String assayName, File dataFile, @Nullable File metadataF clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("cutoff1"), "50"); - setFormElement(Locator.name("cutoff2"), "70"); - selectOptionByText(Locator.name("curveFitMethod"), "Polynomial"); + setFormElement(Locator.name("Cutoff1"), "50"); + setFormElement(Locator.name("Cutoff2"), "70"); + selectOptionByText(Locator.name("CurveFitMethod"), "Polynomial"); if (metadataFile != null) { @@ -322,7 +323,7 @@ private void verifyResolverTypes() { // high throughput Nab assays should not contain the Participant, Visit, Date resolver type clickAndWait(Locator.linkWithText("Import Data")); - assertElementNotPresent(Locator.radioButtonByNameAndValue("participantVisitResolver", "ParticipantVisitDate")); + assertElementNotPresent(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "ParticipantVisitDate")); clickButton("Cancel"); } diff --git a/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java b/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java index 7aa9986b5a..6359c13867 100644 --- a/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java +++ b/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java @@ -233,12 +233,12 @@ private void importPlateData(File dataFile, String curveFitMethod) clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("cutoff1"), "50"); - setFormElement(Locator.name("cutoff2"), "70"); - selectOptionByText(Locator.name("curveFitMethod"), curveFitMethod); - setFormElement(Locator.name("specimen01_InitialDilution"), "5"); - setFormElement(Locator.name("specimen01_Factor"), "42"); - selectOptionByText(Locator.name("specimen01_Method"), "Dilution"); + setFormElement(Locator.name("Cutoff1"), "50"); + setFormElement(Locator.name("Cutoff2"), "70"); + selectOptionByText(Locator.name("CurveFitMethod"), curveFitMethod); + setFormElement(Locator.name("Specimen 01_InitialDilution"), "5"); + setFormElement(Locator.name("Specimen 01_Factor"), "42"); + selectOptionByText(Locator.name("Specimen 01_Method"), "Dilution"); checkCheckbox(Locator.name("specimen01_InitialDilutionCheckBox")); checkCheckbox(Locator.name("specimen01_FactorCheckBox")); checkCheckbox(Locator.name("specimen01_MethodCheckBox")); diff --git a/src/org/labkey/test/tests/study/StudyMissingValuesTest.java b/src/org/labkey/test/tests/study/StudyMissingValuesTest.java index 4fcde12b7e..41fb42bb0b 100644 --- a/src/org/labkey/test/tests/study/StudyMissingValuesTest.java +++ b/src/org/labkey/test/tests/study/StudyMissingValuesTest.java @@ -9,6 +9,7 @@ import org.labkey.test.Locator; import org.labkey.test.TestFileUtils; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.DatasetPropertiesPage; import org.labkey.test.pages.ImportDataPage; import org.labkey.test.tests.MissingValueIndicatorsTest; @@ -201,11 +202,11 @@ public void testAssayLinkToStudyMV() waitAndClickAndWait(Locator.linkWithText(ASSAY_NAME)); clickButton("Import Data"); String targetStudyValue = "/" + getProjectName() + " (" + getProjectName() + " Study)"; - selectOptionByText(Locator.xpath("//select[@name='targetStudy']"), targetStudyValue); + selectOptionByText(AssayConstants.TARGET_STUDY_FIELD_LOCATOR, targetStudyValue); clickButton("Next"); - setFormElement(Locator.name("name"), ASSAY_RUN_SINGLE_COLUMN); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_SINGLE_COLUMN); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); setFormElement(Locator.name("TextAreaDataCollector.textArea"), TEST_DATA_SINGLE_COLUMN_ASSAY); clickButton("Save and Finish"); assertNoLabKeyErrors(); diff --git a/src/org/labkey/test/tests/viability/AbstractViabilityTest.java b/src/org/labkey/test/tests/viability/AbstractViabilityTest.java index a4e924fef5..ebd119d6bb 100644 --- a/src/org/labkey/test/tests/viability/AbstractViabilityTest.java +++ b/src/org/labkey/test/tests/viability/AbstractViabilityTest.java @@ -19,6 +19,7 @@ import org.labkey.test.Locator; import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.domain.DomainFormPanel; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; @@ -131,11 +132,11 @@ protected void uploadViabilityRun(File file, String runName, boolean setBatchTar clickAndWait(Locator.linkWithText(getAssayName())); clickButton("Import Data"); if (setBatchTargetStudy) - selectOptionByText(Locator.name("targetStudy"), "/" + getProjectName() + "/" + getFolderName() + " (" + getFolderName() + " Study)"); + selectOptionByText(AssayConstants.TARGET_STUDY_FIELD_LOCATOR, "/" + getProjectName() + "/" + getFolderName() + " (" + getFolderName() + " Study)"); clickButton("Next"); if (runName != null) - setFormElement(Locator.name("name"), runName); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); uploadAssayFile(file); } @@ -150,7 +151,7 @@ protected void reuploadViabilityRun(File file, String runName) clickButton("Next"); if (runName != null) - setFormElement(Locator.name("name"), runName); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); uploadAssayFile(file); } diff --git a/src/org/labkey/test/tests/viability/ViabilityTest.java b/src/org/labkey/test/tests/viability/ViabilityTest.java index ed38972cbe..f1571204ab 100644 --- a/src/org/labkey/test/tests/viability/ViabilityTest.java +++ b/src/org/labkey/test/tests/viability/ViabilityTest.java @@ -23,6 +23,7 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.util.DataRegionTable; @@ -85,13 +86,13 @@ protected void runUploadTest() uploadViabilityRun(TestFileUtils.getSampleData("viability/small.VIA.csv"), true); log("** Check form field values"); - assertEquals("160450533", getFormElement(Locator.name("_pool_1604505335_0_ParticipantID"))); - assertEquals("5.0", getFormElement(Locator.name("_pool_1604505335_0_VisitID"))); - assertEquals("3.700E7", getFormElement(Locator.name("_pool_1604505335_0_TotalCells"))); - assertEquals("3.127E7", getFormElement(Locator.name("_pool_1604505335_0_ViableCells"))); - assertEquals("84.5%", getFormElement(Locator.name("_pool_1604505335_0_Viability"))); - assertNotChecked(Locator.checkboxByName("_pool_1604505335_0_Unreliable")); - assertEquals("", getFormElement(Locator.name("_pool_1604505335_0_IntValue"))); + assertEquals("160450533", getFormElement(Locator.name("_pool_160450533-5_0_ParticipantID"))); + assertEquals("5.0", getFormElement(Locator.name("_pool_160450533-5_0_VisitID"))); + assertEquals("3.700E7", getFormElement(Locator.name("_pool_160450533-5_0_TotalCells"))); + assertEquals("3.127E7", getFormElement(Locator.name("_pool_160450533-5_0_ViableCells"))); + assertEquals("84.5%", getFormElement(Locator.name("_pool_160450533-5_0_Viability"))); + assertNotChecked(Locator.checkboxByName("_pool_160450533-5_0_Unreliable")); + assertEquals("", getFormElement(Locator.name("_pool_160450533-5_0_IntValue"))); sleep(500); clickButton(SAVE_AND_FINISH, 0); @@ -105,15 +106,15 @@ protected void runUploadTest() assertElementNotPresent(Locator.lkButtonDisabled(SAVE_AND_IMPORT)); log("** Insert specimen IDs"); - addSpecimenIds("_pool_1604505335_0_SpecimenIDs", "vial2", "vial3", "vial1", "foobar"); - addSpecimenIds("_pool_1594020325_1_SpecimenIDs", "vial1"); - addSpecimenIds("_pool_161400006105_2_SpecimenIDs", "vial2"); - addSpecimenIds("_pool_161400006115_3_SpecimenIDs", "vial3"); - addSpecimenIds("_pool_1614016435_4_SpecimenIDs", "xyzzy"); + addSpecimenIds("_pool_160450533-5_0_SpecimenIDs", "vial2", "vial3", "vial1", "foobar"); + addSpecimenIds("_pool_159402032-5_1_SpecimenIDs", "vial1"); + addSpecimenIds("_pool_161400006.10-5_2_SpecimenIDs", "vial2"); + addSpecimenIds("_pool_161400006.11-5_3_SpecimenIDs", "vial3"); + addSpecimenIds("_pool_161401643-5_4_SpecimenIDs", "xyzzy"); log("** Set Unreliable flag and IntValue"); - checkCheckbox(Locator.checkboxByName("_pool_1604505335_0_Unreliable")); - setFormElement(Locator.xpath("//input[@name='_pool_1604505335_0_IntValue'][1]"), "300"); + checkCheckbox(Locator.checkboxByName("_pool_160450533-5_0_Unreliable")); + setFormElement(Locator.xpath("//input[@name='_pool_160450533-5_0_IntValue'][1]"), "300"); doAndWaitForPageToLoad(() -> { @@ -184,14 +185,14 @@ protected void runReRunTest() // Check the 'SpecimenIDs' and 'IntValue' field is copied on re-run assertEquals("Specimen IDs for 160450533-5", List.of("foobar", "vial1", "vial2", "vial3"), - getValues("_pool_1604505335_0_SpecimenIDs")); + getValues("_pool_160450533-5_0_SpecimenIDs")); assertEquals("Specimen IDs for 161401643-5", List.of("xyzzy"), - getValues("_pool_1614016435_4_SpecimenIDs")); + getValues("_pool_161401643-5_4_SpecimenIDs")); assertEquals("IntValue for 160450533-5", List.of("300"), - getValues("_pool_1604505335_0_IntValue")); + getValues("_pool_160450533-5_0_IntValue")); // Check the 'Unreliable' field isn't copied on re-run - assertNotChecked(Locator.checkboxByName("_pool_1604505335_0_Unreliable")); + assertNotChecked(Locator.checkboxByName("_pool_160450533-5_0_Unreliable")); doAndWaitForPageToLoad(() -> { @@ -253,18 +254,18 @@ protected void runTransformTest() uploadViabilityRun(TestFileUtils.getSampleData("viability/small.VIA.csv"), runName, false); log("** Check form field values"); - assertEquals("160450533", getFormElement(Locator.name("_pool_1604505335_0_ParticipantID"))); - assertEquals("5.0", getFormElement(Locator.name("_pool_1604505335_0_VisitID"))); - assertEquals("3.700E7", getFormElement(Locator.name("_pool_1604505335_0_TotalCells"))); - assertEquals("3.127E7", getFormElement(Locator.name("_pool_1604505335_0_ViableCells"))); - assertEquals("84.5%", getFormElement(Locator.name("_pool_1604505335_0_Viability"))); + assertEquals("160450533", getFormElement(Locator.name("_pool_160450533-5_0_ParticipantID"))); + assertEquals("5.0", getFormElement(Locator.name("_pool_160450533-5_0_VisitID"))); + assertEquals("3.700E7", getFormElement(Locator.name("_pool_160450533-5_0_TotalCells"))); + assertEquals("3.127E7", getFormElement(Locator.name("_pool_160450533-5_0_ViableCells"))); + assertEquals("84.5%", getFormElement(Locator.name("_pool_160450533-5_0_Viability"))); log("** Insert specimen IDs"); - addSpecimenIds("_pool_1604505335_0_SpecimenIDs", "vial2", "vial3", "vial1", "foobar"); - addSpecimenIds("_pool_1594020325_1_SpecimenIDs", "vial1"); - addSpecimenIds("_pool_161400006105_2_SpecimenIDs", "vial2"); - addSpecimenIds("_pool_161400006115_3_SpecimenIDs", "vial3"); - addSpecimenIds("_pool_1614016435_4_SpecimenIDs", "xyzzy"); + addSpecimenIds("_pool_160450533-5_0_SpecimenIDs", "vial2", "vial3", "vial1", "foobar"); + addSpecimenIds("_pool_159402032-5_1_SpecimenIDs", "vial1"); + addSpecimenIds("_pool_161400006.10-5_2_SpecimenIDs", "vial2"); + addSpecimenIds("_pool_161400006.11-5_3_SpecimenIDs", "vial3"); + addSpecimenIds("_pool_161401643-5_4_SpecimenIDs", "xyzzy"); doAndWaitForPageToLoad(() -> { @@ -302,8 +303,8 @@ protected void runTargetStudyTest() ReactAssayDesignerPage assayDesignerPage = _assayHelper.clickEditAssayDesign(true); // remove TargetStudy field from the Batch domain and add it to the Result domain. - assayDesignerPage.expandFieldsPanel("Batch").removeField("TargetStudy", true); - assayDesignerPage.expandFieldsPanel("Result").addField(new FieldDefinition("TargetStudy", FieldDefinition.ColumnType.String).setLabel("Target Study")); + assayDesignerPage.expandFieldsPanel("Batch").removeField(AssayConstants.TARGET_STUDY_FIELD_NAME, true); + assayDesignerPage.expandFieldsPanel("Result").addField(new FieldDefinition(AssayConstants.TARGET_STUDY_FIELD_NAME, FieldDefinition.ColumnType.String).setLabel("Target Study")); assayDesignerPage.clickFinish(); navigateToFolder(getProjectName(), getFolderName()); @@ -315,28 +316,28 @@ protected void runTargetStudyTest() log("** Test 'same' checkbox for TargetStudy"); String targetStudyOptionText = "/" + getProjectName() + "/" + getFolderName() + " (" + getFolderName() + " Study)"; - selectOptionByText(Locator.name("_pool_1604505335_0_TargetStudy"), targetStudyOptionText); - assertEquals("[None]", getSelectedOptionText(Locator.name("_pool_1594020325_1_TargetStudy"))); + selectOptionByText(Locator.name("_pool_160450533-5_0_TargetStudy"), targetStudyOptionText); + assertEquals("[None]", getSelectedOptionText(Locator.name("_pool_159402032-5_1_TargetStudy"))); checkCheckbox(Locator.checkboxById("_pool_1604505335_0_TargetStudyCheckBox")); assertEquals("Target study didn't propagate with 'Same' checkbox.", - getSelectedOptionValue(Locator.name("_pool_1604505335_0_TargetStudy")), - getSelectedOptionValue(Locator.name("_pool_1594020325_1_TargetStudy"))); + getSelectedOptionValue(Locator.name("_pool_160450533-5_0_TargetStudy")), + getSelectedOptionValue(Locator.name("_pool_159402032-5_1_TargetStudy"))); assertEquals("Target study didn't propagate with 'Same' checkbox.", - getSelectedOptionValue(Locator.name("_pool_1604505335_0_TargetStudy")), - getSelectedOptionValue(Locator.name("_pool_161400006115_3_TargetStudy"))); + getSelectedOptionValue(Locator.name("_pool_160450533-5_0_TargetStudy")), + getSelectedOptionValue(Locator.name("_pool_161400006.11-5_3_TargetStudy"))); uncheckCheckbox(Locator.checkboxById("_pool_1604505335_0_TargetStudyCheckBox")); // clear TargetStudy for 'vial2' and set the TargetStudy for 'vial3' and 'xyzzy' - selectOptionByText(Locator.name("_pool_161400006105_2_TargetStudy"), "[None]"); - selectOptionByText(Locator.name("_pool_161400006115_3_TargetStudy"), "/" + getProjectName() + "/" + STUDY2_NAME + " (" + STUDY2_NAME + " Study)"); - selectOptionByText(Locator.name("_pool_1614016435_4_TargetStudy"), "/" + getProjectName() + "/" + STUDY2_NAME + " (" + STUDY2_NAME + " Study)"); + selectOptionByText(Locator.name("_pool_161400006.10-5_2_TargetStudy"), "[None]"); + selectOptionByText(Locator.name("_pool_161400006.11-5_3_TargetStudy"), "/" + getProjectName() + "/" + STUDY2_NAME + " (" + STUDY2_NAME + " Study)"); + selectOptionByText(Locator.name("_pool_161401643-5_4_TargetStudy"), "/" + getProjectName() + "/" + STUDY2_NAME + " (" + STUDY2_NAME + " Study)"); log("** Insert specimen IDs"); - addSpecimenIds("_pool_1604505335_0_SpecimenIDs", "vial2", "vial3", "vial1", "foobar"); - addSpecimenIds("_pool_1594020325_1_SpecimenIDs", "vial1"); - addSpecimenIds("_pool_161400006105_2_SpecimenIDs", "vial2"); - addSpecimenIds("_pool_161400006115_3_SpecimenIDs", "vial3"); - addSpecimenIds("_pool_1614016435_4_SpecimenIDs", "xyzzy"); + addSpecimenIds("_pool_160450533-5_0_SpecimenIDs", "vial2", "vial3", "vial1", "foobar"); + addSpecimenIds("_pool_159402032-5_1_SpecimenIDs", "vial1"); + addSpecimenIds("_pool_161400006.10-5_2_SpecimenIDs", "vial2"); + addSpecimenIds("_pool_161400006.11-5_3_SpecimenIDs", "vial3"); + addSpecimenIds("_pool_161401643-5_4_SpecimenIDs", "xyzzy"); doAndWaitForPageToLoad(() -> { @@ -348,7 +349,7 @@ protected void runTargetStudyTest() clickAndWait(Locator.linkWithText(runName)); _customizeViewsHelper.openCustomizeViewPanel(); - _customizeViewsHelper.addColumn("TargetStudy"); + _customizeViewsHelper.addColumn(AssayConstants.TARGET_STUDY_FIELD_NAME); _customizeViewsHelper.saveDefaultView(); DataRegionTable table = new DataRegionTable("Data", this); @@ -356,25 +357,25 @@ protected void runTargetStudyTest() assertEquals("4", table.getDataAsText(0, "SpecimenCount")); assertEquals("3", table.getDataAsText(0, "SpecimenMatchCount")); assertEquals("52.11%", table.getDataAsText(0, "Recovery")); - assertEquals(getFolderName() + " Study", table.getDataAsText(0, "TargetStudy")); + assertEquals(getFolderName() + " Study", table.getDataAsText(0, AssayConstants.TARGET_STUDY_FIELD_NAME)); assertEquals("vial2", table.getDataAsText(2, "Specimen IDs")); assertEquals("1", table.getDataAsText(2, "SpecimenCount")); assertEquals("0", table.getDataAsText(2, "SpecimenMatchCount")); assertEquals(" ", table.getDataAsText(2, "Recovery")); - assertEquals(" ", table.getDataAsText(2, "TargetStudy")); + assertEquals(" ", table.getDataAsText(2, AssayConstants.TARGET_STUDY_FIELD_NAME)); assertEquals("vial3", table.getDataAsText(3, "Specimen IDs")); assertEquals("1", table.getDataAsText(3, "SpecimenCount")); assertEquals("0", table.getDataAsText(3, "SpecimenMatchCount")); assertEquals(" ", table.getDataAsText(3, "Recovery")); - assertEquals(STUDY2_NAME + " Study", table.getDataAsText(3, "TargetStudy")); + assertEquals(STUDY2_NAME + " Study", table.getDataAsText(3, AssayConstants.TARGET_STUDY_FIELD_NAME)); assertEquals("xyzzy", table.getDataAsText(4, "Specimen IDs")); assertEquals("1", table.getDataAsText(4, "SpecimenCount")); assertEquals("1", table.getDataAsText(4, "SpecimenMatchCount")); assertEquals("88.88%", table.getDataAsText(4, "Recovery")); - assertEquals(STUDY2_NAME + " Study", table.getDataAsText(4, "TargetStudy")); + assertEquals(STUDY2_NAME + " Study", table.getDataAsText(4, AssayConstants.TARGET_STUDY_FIELD_NAME)); // UNDONE: participant/visit resolver test // UNDONE: link to study diff --git a/src/org/labkey/test/util/APIAssayHelper.java b/src/org/labkey/test/util/APIAssayHelper.java index 5fccfe1889..cec86cfd4f 100644 --- a/src/org/labkey/test/util/APIAssayHelper.java +++ b/src/org/labkey/test/util/APIAssayHelper.java @@ -38,6 +38,7 @@ import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.test.BaseWebDriverTest; import org.labkey.test.WebTestHelper; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.assay.AssayDesign; import org.openqa.selenium.NotFoundException; @@ -113,10 +114,10 @@ public ImportRunResponse importAssay(int assayID, String runName, File file, Str irc.setComment(runProperties.get("Comment").toString()); runProperties.remove("Comment"); } - if (runProperties.containsKey("name") && StringUtils.isBlank(runName)) + if (runProperties.containsKey("Name") && StringUtils.isBlank(runName)) { - irc.setName(runProperties.get("name").toString()); - runProperties.remove("name"); + irc.setName(runProperties.get("Name").toString()); + runProperties.remove("Name"); } irc.setProperties(runProperties); @@ -132,7 +133,7 @@ public ImportRunResponse importAssay(int assayID, String runName, File file, Str @Override public void importAssay(String assayName, File file, String projectPath) throws CommandException, IOException { - importAssay(assayName, file, projectPath, Collections.singletonMap("ParticipantVisitResolver", "SampleInfo")); + importAssay(assayName, file, projectPath, Collections.singletonMap(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "SampleInfo")); } @Override diff --git a/src/org/labkey/test/util/AssayImporter.java b/src/org/labkey/test/util/AssayImporter.java index 4c439119c8..d5e7be3068 100644 --- a/src/org/labkey/test/util/AssayImporter.java +++ b/src/org/labkey/test/util/AssayImporter.java @@ -17,6 +17,7 @@ import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; +import org.labkey.test.components.assay.AssayConstants; public class AssayImporter { @@ -41,30 +42,30 @@ public void doImport() { if (options.getVisitResolver() == AssayImportOptions.VisitResolverType.SpecimenIDParticipantVisit) { - test.checkRadioButton(Locator.radioButtonByNameAndValue("participantVisitResolver", AssayImportOptions.VisitResolverType.SpecimenID.name())); + test.checkRadioButton(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, AssayImportOptions.VisitResolverType.SpecimenID.name())); Locator checkBox = Locator.checkboxByName("includeParticipantAndVisit"); test.waitForElement(checkBox); test.checkCheckbox(checkBox); } else - test.checkRadioButton(Locator.radioButtonByNameAndValue("participantVisitResolver", options.getVisitResolver().name())); + test.checkRadioButton(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, options.getVisitResolver().name())); } else { switch (options.getVisitResolver()) { case LookupList: - test.assertChecked(Locator.radioButtonByNameAndValue("ThawListType", "List")); + test.assertChecked(Locator.radioButtonByNameAndValue(AssayConstants.THAW_LIST_TYPE_FIELD_NAME, "List")); test.waitForFormElementToNotEqual(Locator.name("ThawListList-QueryName"), ""); break; case LookupText: - test.assertChecked(Locator.radioButtonByNameAndValue("ThawListType", "Text")); + test.assertChecked(Locator.radioButtonByNameAndValue(AssayConstants.THAW_LIST_TYPE_FIELD_NAME, "Text")); break; case SpecimenIDParticipantVisit: - test.assertChecked(Locator.radioButtonByNameAndValue("participantVisitResolver", AssayImportOptions.VisitResolverType.SpecimenID.name())); + test.assertChecked(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, AssayImportOptions.VisitResolverType.SpecimenID.name())); break; default: - test.assertChecked(Locator.radioButtonByNameAndValue("participantVisitResolver", options.getVisitResolver().name())); + test.assertChecked(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, options.getVisitResolver().name())); } } @@ -77,57 +78,57 @@ public void doImport() test.clickButton("Next"); if (options.getAssayId() != null) - test.setFormElement(Locator.name("name"), options.getAssayId()); + test.setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, options.getAssayId()); - test.setFormElement(Locator.name("cutoff1"), options.getCutoff1()); + test.setFormElement(Locator.name("Cutoff1"), options.getCutoff1()); if (options.getCutoff2() != null) - test.setFormElement(Locator.name("cutoff2"), options.getCutoff2()); + test.setFormElement(Locator.name("Cutoff2"), options.getCutoff2()); if (options.getCutoff3() != null) - test.setFormElement(Locator.name("cutoff3"), options.getCutoff3()); + test.setFormElement(Locator.name("Cutoff3"), options.getCutoff3()); if (options.getVirusName() != null) - test.setFormElement(Locator.name("virusName"), options.getVirusName()); + test.setFormElement(Locator.name("VirusName"), options.getVirusName()); if (options.getVirusId() != null) - test.setFormElement(Locator.name("virusID"), options.getVirusId()); + test.setFormElement(Locator.name("VirusID"), options.getVirusId()); - test.selectOptionByText(Locator.name("curveFitMethod"), options.getCurveFitMethod()); + test.selectOptionByText(Locator.name("CurveFitMethod"), options.getCurveFitMethod()); if (options.getMetadataFile() == null) { // populate the sample well group information for (int i = 0; i < options.getPtids().length; i++) { - test.setFormElement(Locator.name("specimen" + (i + 1) + "_ParticipantID"), options.getPtids()[i]); + test.setFormElement(Locator.name("Specimen " + (i + 1) + "_ParticipantID"), options.getPtids()[i]); } for (int i = 0; i < options.getVisits().length; i++) { - test.setFormElement(Locator.name("specimen" + (i + 1) + "_VisitID"), options.getVisits()[i]); + test.setFormElement(Locator.name("Specimen " + (i + 1) + "_VisitID"), options.getVisits()[i]); } for (int i = 0; i < options.getInitialDilutions().length; i++) { - test.setFormElement(Locator.name("specimen" + (i + 1) + "_InitialDilution"), options.getInitialDilutions()[i]); + test.setFormElement(Locator.name("Specimen " + (i + 1) + "_InitialDilution"), options.getInitialDilutions()[i]); } for (int i = 0; i < options.getDilutionFactors().length; i++) { - test.setFormElement(Locator.name("specimen" + (i + 1) + "_Factor"), options.getDilutionFactors()[i]); + test.setFormElement(Locator.name("Specimen " + (i + 1) + "_Factor"), options.getDilutionFactors()[i]); } for (int i = 0; i < options.getMethods().length; i++) { - test.selectOptionByText(Locator.name("specimen" + (i + 1) + "_Method"), options.getMethods()[i]); + test.selectOptionByText(Locator.name("Specimen " + (i + 1) + "_Method"), options.getMethods()[i]); } for (int i = 0; i < options.getDates().length; i++) { - test.setFormElement(Locator.name("specimen" + (i + 1) + "_Date"), options.getDates()[i]); + test.setFormElement(Locator.name("Specimen " + (i + 1) + "_Date"), options.getDates()[i]); } for (int i = 0; i < options.getSampleIds().length; i++) { - test.setFormElement(Locator.name("specimen" + (i + 1) + "_SpecimenID"), options.getSampleIds()[i]); + test.setFormElement(Locator.name("Specimen " + (i + 1) + "_SpecimenID"), options.getSampleIds()[i]); } } else diff --git a/src/org/labkey/test/util/IssuesApiHelper.java b/src/org/labkey/test/util/IssuesApiHelper.java index bcd16a78f2..264c20f84a 100644 --- a/src/org/labkey/test/util/IssuesApiHelper.java +++ b/src/org/labkey/test/util/IssuesApiHelper.java @@ -34,9 +34,9 @@ public DetailsPage addIssue(Map props, File... attachments) issue.setAction(IssueModel.IssueAction.insert); // translate display name to userId - if (props.containsKey("assignedTo")) + if (props.containsKey("AssignedTo")) { - String displayName = props.get("assignedTo"); + String displayName = props.get("AssignedTo"); List user = _userHelper.getUsers().getUsersInfo().stream() .filter(ui -> ui.getDisplayName().equals(displayName)).toList(); @@ -45,7 +45,7 @@ public DetailsPage addIssue(Map props, File... attachments) issue.setAssignedTo(user.get(0).getUserId()); } - if (!props.containsKey("priority")) + if (!props.containsKey("Priority")) issue.setPriority(_defaultPriority); try diff --git a/src/org/labkey/test/util/IssuesHelper.java b/src/org/labkey/test/util/IssuesHelper.java index 87bb67faf9..d9a791ed8d 100644 --- a/src/org/labkey/test/util/IssuesHelper.java +++ b/src/org/labkey/test/util/IssuesHelper.java @@ -188,7 +188,7 @@ public DetailsPage addIssue(String title, String assignedTo, Map { Map fields = new TreeMap<>(); fields.put("title", title); - fields.put("assignedTo", assignedTo); + fields.put("AssignedTo", assignedTo); fields.putAll(extraFields); return addIssue(fields, attachments); } diff --git a/src/org/labkey/test/util/PortalHelper.java b/src/org/labkey/test/util/PortalHelper.java index be7b523b16..e974dcb346 100644 --- a/src/org/labkey/test/util/PortalHelper.java +++ b/src/org/labkey/test/util/PortalHelper.java @@ -34,6 +34,8 @@ import java.util.List; import java.util.function.Consumer; +import static org.junit.Assert.assertEquals; + /** * TODO: Move appropriate functionality into {@link org.labkey.test.pages.PortalBodyPanel} and {@link org.labkey.test.components.WebPart} */ @@ -453,15 +455,18 @@ public void checkWebpartPermission(String webpart, String expectedPermission, St doInAdminMode(() -> { openWebpartPermissionWindow(webpart); - assertFormElementEquals(Locator.name("permission"), expectedPermission); + Locator loc1 = Locator.name("permission"); + assertEquals(expectedPermission, getFormElement(loc1)); if (expectedFolder == null) { - assertFormElementEquals(Locator.name("permissionContainer"), ""); + Locator loc = Locator.name("permissionContainer"); + assertEquals("", getFormElement(loc)); } else { - assertFormElementEquals(Locator.name("permissionContainer"), expectedFolder); + Locator loc = Locator.name("permissionContainer"); + assertEquals(expectedFolder, getFormElement(loc)); } click(Locator.tagWithText("span", "Cancel")); diff --git a/src/org/labkey/test/util/SampleTypeHelper.java b/src/org/labkey/test/util/SampleTypeHelper.java index ce8ce3feb5..84c657a397 100644 --- a/src/org/labkey/test/util/SampleTypeHelper.java +++ b/src/org/labkey/test/util/SampleTypeHelper.java @@ -23,6 +23,7 @@ import org.labkey.test.Locator; import org.labkey.test.WebDriverWrapper; import org.labkey.test.WebTestHelper; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.ext4.Window; import org.labkey.test.pages.ImportDataPage; import org.labkey.test.pages.experiment.CreateSampleTypePage; @@ -378,7 +379,7 @@ private DataRegionTable _linkToStudy(DataRegionTable samplesTable, String target samplesTable.clickHeaderButtonAndWait("Link to Study"); log("Link to study: Choose target"); - selectOptionByText(Locator.id("targetStudy"), "/" + targetStudy + " (" + targetStudy + " Study)"); + selectOptionByText(AssayConstants.TARGET_STUDY_FIELD_LOCATOR, "/" + targetStudy + " (" + targetStudy + " Study)"); if (categoryName != null) setFormElement(Locator.name("autoLinkCategory"), categoryName); clickButton("Next");