From 062901c83698fd7892e31ef01e5cdb998d50059b Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Thu, 26 Jun 2025 17:53:34 -0700 Subject: [PATCH 01/15] Issue 53306: Some LKS forms don't distinguish between fields differing only by special chars --- .../labkey/test/params/FieldDefinition.java | 2 +- .../test/tests/SampleTypeLineageTest.java | 28 +++++++++++++------ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/org/labkey/test/params/FieldDefinition.java b/src/org/labkey/test/params/FieldDefinition.java index 79ba2ea9b1..04b8c12f76 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/SampleTypeLineageTest.java b/src/org/labkey/test/tests/SampleTypeLineageTest.java index de8f2c97db..5cb5b1f139 100644 --- a/src/org/labkey/test/tests/SampleTypeLineageTest.java +++ b/src/org/labkey/test/tests/SampleTypeLineageTest.java @@ -40,6 +40,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}) @@ -1116,31 +1117,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.getIndexWhereDataAppears(parentSampleNames.get(0), "Name")); 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"); @@ -1150,11 +1157,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.getIndexWhereDataAppears(parentSampleNames.get(0), "Name")); drtSamples.clickHeaderButton("Delete"); From 0d906aa12730b460c63454bfc5d413ec5128fef1 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Fri, 27 Jun 2025 14:51:05 -0700 Subject: [PATCH 02/15] Update expected field names --- src/org/labkey/test/tests/GpatAssayTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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); From 680d3967a8fff10c15acad1d59a224a335cc7473 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Fri, 27 Jun 2025 18:22:34 -0700 Subject: [PATCH 03/15] Update input element names --- src/org/labkey/test/WebDriverWrapper.java | 9 -- .../test/tests/AssayExportImportTest.java | 48 ++++++----- .../test/tests/DomainFieldTypeChangeTest.java | 3 +- .../test/tests/FileAttachmentColumnTest.java | 3 +- src/org/labkey/test/tests/FlagColumnTest.java | 11 +-- .../test/tests/InlineImagesAssayTest.java | 5 +- .../test/tests/MultiplePKUploadAssayTest.java | 7 +- .../labkey/test/tests/ProgrammaticQCTest.java | 25 +++--- src/org/labkey/test/tests/RlabkeyTest.java | 6 +- .../SampleTypeFolderExportImportTest.java | 6 +- .../test/tests/SampleTypeLimitsTest.java | 8 +- .../test/tests/SampleTypeLineageTest.java | 28 +++---- .../test/tests/SampleTypeLinkToStudyTest.java | 11 +-- .../tests/SampleTypeNameExpressionTest.java | 4 +- src/org/labkey/test/tests/SampleTypeTest.java | 7 +- ...ChoiceImportExportAndOtherDomainsTest.java | 4 +- src/org/labkey/test/tests/TextChoiceTest.java | 20 +---- src/org/labkey/test/tests/UserTest.java | 2 +- .../tests/assay/AssayMissingValuesTest.java | 57 +++++++------ .../assay/AssayRenameExportImportTest.java | 15 ++-- .../assay/AssayTransformWarningTest.java | 11 +-- .../assay/UploadLargeExcelAssayTest.java | 3 +- .../test/tests/elisa/ElisaAssayTest.java | 2 +- .../tests/elisa/ElisaMultiPlateAssayTest.java | 11 +-- .../tests/elispotassay/ElispotAssayTest.java | 24 +++--- .../labkey/test/tests/flow/BaseFlowTest.java | 9 +- .../labkey/test/tests/nab/NabAssayTest.java | 2 +- .../test/tests/nab/NabAssayThawListTest.java | 14 ++-- .../tests/nab/NabHighThroughputAssayTest.java | 4 +- .../tests/nab/NabMultiVirusPlateTest.java | 2 +- .../tests/study/StudyMissingValuesTest.java | 4 +- .../viability/AbstractViabilityTest.java | 5 +- .../test/tests/viability/ViabilityTest.java | 84 +++++++++---------- src/org/labkey/test/util/AssayImporter.java | 23 ++--- src/org/labkey/test/util/PortalHelper.java | 11 ++- 35 files changed, 250 insertions(+), 238 deletions(-) diff --git a/src/org/labkey/test/WebDriverWrapper.java b/src/org/labkey/test/WebDriverWrapper.java index efab59f6f8..81c064c226 100644 --- a/src/org/labkey/test/WebDriverWrapper.java +++ b/src/org/labkey/test/WebDriverWrapper.java @@ -2708,15 +2708,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/tests/AssayExportImportTest.java b/src/org/labkey/test/tests/AssayExportImportTest.java index b5b8953c9b..00521d7475 100644 --- a/src/org/labkey/test/tests/AssayExportImportTest.java +++ b/src/org/labkey/test/tests/AssayExportImportTest.java @@ -68,6 +68,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 +174,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); @@ -267,7 +271,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 +280,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 +387,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 +482,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); @@ -665,25 +669,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/DomainFieldTypeChangeTest.java b/src/org/labkey/test/tests/DomainFieldTypeChangeTest.java index 3112fd56d0..abe55599d3 100644 --- a/src/org/labkey/test/tests/DomainFieldTypeChangeTest.java +++ b/src/org/labkey/test/tests/DomainFieldTypeChangeTest.java @@ -17,6 +17,7 @@ import org.labkey.test.pages.query.UpdateQueryRowPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.FieldInfo; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.APIAssayHelper; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.PortalHelper; @@ -178,7 +179,7 @@ public void testNonProvisionedDomainFieldChanges() checkCheckbox(Locator.name("batchTestBoolean")); clickButton("Next"); - setFormElement(Locator.name("name"), runName); + setFormElement(AssayTest.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 9c05dc255c..c7e71f7dc8 100644 --- a/src/org/labkey/test/tests/FileAttachmentColumnTest.java +++ b/src/org/labkey/test/tests/FileAttachmentColumnTest.java @@ -37,6 +37,7 @@ import org.labkey.test.params.FieldDefinition.ColumnType; import org.labkey.test.params.assay.GeneralAssayDesign; import org.labkey.test.params.experiment.SampleTypeDefinition; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.ListHelper; import org.labkey.test.util.PortalHelper; @@ -282,7 +283,7 @@ public void testAssayFileFieldsUI() throws Exception clickButton("Next"); // batch properties // run properties - setFormElement(Locator.input("name"), runName); + setFormElement(AssayTest.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/FlagColumnTest.java b/src/org/labkey/test/tests/FlagColumnTest.java index 70a0e274e8..4653b83fbd 100644 --- a/src/org/labkey/test/tests/FlagColumnTest.java +++ b/src/org/labkey/test/tests/FlagColumnTest.java @@ -12,6 +12,7 @@ import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; import org.labkey.test.params.FieldDefinition; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.RelativeUrl; @@ -100,15 +101,15 @@ private void doInit() clickButton("Import Data"); log("Import run1..."); - setFormElement(Locator.name("name"), "Run01"); - setFormElement(Locator.id("TextAreaDataCollector.textArea"), + setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "Run01"); + setFormElement(AssayTest.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(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "Run02"); + setFormElement(Locator.name("AnotherRunFlag"), "run has flag"); + setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, "SomeData\nrun2-data1\nrun2-data2"); clickButton("Save and Finish"); diff --git a/src/org/labkey/test/tests/InlineImagesAssayTest.java b/src/org/labkey/test/tests/InlineImagesAssayTest.java index bb3458c5a1..2db7ef9b0e 100644 --- a/src/org/labkey/test/tests/InlineImagesAssayTest.java +++ b/src/org/labkey/test/tests/InlineImagesAssayTest.java @@ -30,6 +30,7 @@ import org.labkey.test.components.CustomizeView; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionExportHelper; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.ExcelHelper; @@ -128,8 +129,8 @@ public final void testAssayInlineImages() throws Exception clickButton("Import Data"); setFormElement(Locator.name("batchFileField"), XLS_FILE); clickButton("Next"); - setFormElement(Locator.name("name"), runName); - setFormElement(Locator.name("TextAreaDataCollector.textArea"), importData); + setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(AssayTest.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..c9e55242ab 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.tests.study.AssayTest; 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(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "First run"); + setFormElement(AssayTest.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(AssayTest.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..ecae5ca2f6 100644 --- a/src/org/labkey/test/tests/ProgrammaticQCTest.java +++ b/src/org/labkey/test/tests/ProgrammaticQCTest.java @@ -26,6 +26,7 @@ import org.labkey.test.categories.Daily; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.APIAssayHelper; import org.labkey.test.util.PortalHelper; import org.labkey.test.util.QCAssayScriptHelper; @@ -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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayTest.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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayTest.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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayTest.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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayTest.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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayTest.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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayTest.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 3739f2eee2..df65a8cb65 100644 --- a/src/org/labkey/test/tests/SampleTypeFolderExportImportTest.java +++ b/src/org/labkey/test/tests/SampleTypeFolderExportImportTest.java @@ -320,9 +320,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 74ea9f7799..dc31681708 100644 --- a/src/org/labkey/test/tests/SampleTypeLineageTest.java +++ b/src/org/labkey/test/tests/SampleTypeLineageTest.java @@ -272,19 +272,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"); - 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_Name"), "SampleSetBVT15"); + setFormElement(Locator.name("Output Sample 2_Name"), "SampleSetBVT16"); + checkCheckbox(Locator.name("Output Sample 1_IntColFolderCheckBox")); + setFormElement(Locator.name("Output Sample 1_IntColFolder"), "500a"); + setFormElement(Locator.name("Output Sample 1_StringColFolder"), "firstOutput"); + setFormElement(Locator.name("Output Sample 2_StringColFolder"), "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"); + checkCheckbox(Locator.name("Output Sample 1_IntColFolderCheckBox")); + setFormElement(Locator.name("Output Sample 1_IntColFolder"), "500"); clickButton("Submit"); clickAndWait(Locator.linkContainingText("Derive 2 samples")); @@ -301,17 +301,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."); diff --git a/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java b/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java index 65e877753d..c5837d5f71 100644 --- a/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java +++ b/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java @@ -23,6 +23,7 @@ import org.labkey.test.pages.study.ManageVisitPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.experiment.SampleTypeDefinition; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.Ext4Helper; import org.labkey.test.util.PortalHelper; @@ -312,8 +313,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); @@ -361,8 +362,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(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, importData); clickButton("Save and Finish"); clickAndWait(Locator.linkWithText(runName)); @@ -663,7 +664,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 827209e16e..0805ea1b57 100644 --- a/src/org/labkey/test/tests/SampleTypeNameExpressionTest.java +++ b/src/org/labkey/test/tests/SampleTypeNameExpressionTest.java @@ -704,8 +704,8 @@ private String deriveSample(String parentSampleName, String parentSampleType, St selectOptionByText(Locator.name("targetSampleTypeId"), String.format("%s in /%s", targetSampleType, getProjectName())); clickButton("Next"); - setFormElement(Locator.name("outputSample1_%s".formatted(COL_DINT.getName())), intVal); - setFormElement(Locator.name("outputSample1_%s".formatted(COL_DSTR.getName())), strVal); + setFormElement(Locator.name("Output Sample 1_%s".formatted(COL_DINT.getName())), intVal); + setFormElement(Locator.name("Output Sample 1_%s".formatted(COL_DSTR.getName())), strVal); clickButton("Submit"); waitForElement(Locator.tagWithText("td", strVal)); diff --git a/src/org/labkey/test/tests/SampleTypeTest.java b/src/org/labkey/test/tests/SampleTypeTest.java index 21b1637def..a3814ea74d 100644 --- a/src/org/labkey/test/tests/SampleTypeTest.java +++ b/src/org/labkey/test/tests/SampleTypeTest.java @@ -49,6 +49,7 @@ import org.labkey.test.params.FieldDefinition.ColumnType; import org.labkey.test.params.FieldDefinition.LookupInfo; import org.labkey.test.params.experiment.SampleTypeDefinition; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionExportHelper; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.ExcelHelper; @@ -591,7 +592,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"); // // @@ -618,7 +619,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(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, SAMPLE_ID_TEST_RUN_DATA); clickButton("Save and Finish"); log("Try to delete all samples"); @@ -652,7 +653,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(AssayTest.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..7f41d3ebd1 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..d0073ceada 100644 --- a/src/org/labkey/test/tests/TextChoiceTest.java +++ b/src/org/labkey/test/tests/TextChoiceTest.java @@ -10,6 +10,7 @@ import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.experiment.SampleTypeDefinition; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.TestDataGenerator; import org.labkey.test.util.exp.SampleTypeAPIHelper; @@ -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)); @@ -191,7 +192,7 @@ protected Map createAssayRun() setFormElement(Locator.tagWithName("input", "name"), 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(AssayTest.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 bb14a71a7e..e936f2a812 100644 --- a/src/org/labkey/test/tests/assay/AssayMissingValuesTest.java +++ b/src/org/labkey/test/tests/assay/AssayMissingValuesTest.java @@ -13,6 +13,7 @@ import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.assay.GeneralAssayDesign; import org.labkey.test.tests.MissingValueIndicatorsTest; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LogMethod; @@ -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(AssayTest.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_SINGLE_COLUMN); + click(AssayTest.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(AssayTest.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(AssayTest.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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayTest.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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + setFormElement(AssayTest.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(AssayTest.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(AssayTest.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/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..8e81ed7da5 100644 --- a/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java +++ b/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java @@ -15,6 +15,7 @@ import org.labkey.test.pages.query.SourceQueryPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.assay.GeneralAssayDesign; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.AbstractDataRegionExportOrSignHelper; import org.labkey.test.util.TestDataGenerator; @@ -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(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "200k"); checkRadioButton(Locator.inputById("Fileupload")); setFormElement(Locator.input("__primaryFile__"), largeExcelFile); 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..fe3f2e4ee5 100644 --- a/src/org/labkey/test/tests/elisa/ElisaAssayTest.java +++ b/src/org/labkey/test/tests/elisa/ElisaAssayTest.java @@ -155,7 +155,7 @@ protected void uploadFile(File file, String uniqueifier, String finalButton, boo } setFormElement(Locator.name("__primaryFile__"), file); - setFormElement(Locator.name("curveFitMethod"), "Linear"); + setFormElement(Locator.name("CurveFitMethod"), "Linear"); clickButton("Next"); diff --git a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java index 48c0353559..d7fa9554fa 100644 --- a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java +++ b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java @@ -20,6 +20,7 @@ import org.labkey.test.pages.assay.elisa.ElisaRunDetailsPage; import org.labkey.test.pages.assay.plate.PlateDesignerPage; import org.labkey.test.pages.assay.plate.PlateTemplateListPage; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.PortalHelper; import java.io.File; @@ -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(AssayTest.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()); @@ -263,15 +264,15 @@ private AssayRunsPage uploadFile(String assayName, String runName, File file, St setFormElement(Locator.name("specimen" + (i) + "_VisitID"), "" + (i)); } - setFormElement(Locator.name("name"), runName); - setFormElement(Locator.name("curveFitMethod"), curveFitMethod); + setFormElement(AssayTest.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 7e4a65938b..1798fdc439 100644 --- a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java +++ b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java @@ -33,6 +33,7 @@ import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.pages.assay.plate.PlateDesignerPage; import org.labkey.test.tests.AbstractAssayTest; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LogMethod; import org.labkey.test.util.PipelineStatusTable; @@ -82,6 +83,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() @@ -136,15 +138,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(); @@ -176,11 +178,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")); @@ -300,7 +302,7 @@ protected void uploadFile(File file, String uniqueifier, String finalButton, boo // 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)); @@ -318,7 +320,7 @@ protected void uploadFile(File file, String uniqueifier, String finalButton, boo // 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"); @@ -506,8 +508,8 @@ protected void runTransformTest() clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), "transformed assayId"); - selectOptionByText(Locator.name("plateReader"), "AID"); + setFormElement(AssayTest.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 @@ -592,7 +594,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"); @@ -632,7 +634,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/nab/NabAssayTest.java b/src/org/labkey/test/tests/nab/NabAssayTest.java index 5d013a74bc..2d052d26e1 100644 --- a/src/org/labkey/test/tests/nab/NabAssayTest.java +++ b/src/org/labkey/test/tests/nab/NabAssayTest.java @@ -541,7 +541,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("ParticipantVisitResolver", "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..a37f281965 100644 --- a/src/org/labkey/test/tests/nab/NabAssayThawListTest.java +++ b/src/org/labkey/test/tests/nab/NabAssayThawListTest.java @@ -123,7 +123,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("ParticipantVisitResolver", AssayImportOptions.VisitResolverType.ParticipantVisitDate.name())); clickButton("Save Defaults"); // Add the list we'll use for the thaw list lookup @@ -141,10 +141,10 @@ 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("ParticipantVisitResolver").findElement(getDriver()).getAttribute("value")); // Now override - click(Locator.radioButtonByNameAndValue("participantVisitResolver", "Lookup")); + click(Locator.radioButtonByNameAndValue("ParticipantVisitResolver", "Lookup")); // 20583 We now hide the option to paste in a tsv for the default value assertElementNotPresent(Locator.radioButtonByNameAndValue("ThawListType", "Text")); @@ -190,21 +190,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("ParticipantVisitResolver").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("ParticipantVisitResolver").findElement(getDriver()).getAttribute("value")); Assert.assertEquals("Wrong participant visit resolver selected", "List", Locator.checkedRadioInGroup("ThawListType").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..a8916e66db 100644 --- a/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java +++ b/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java @@ -199,7 +199,7 @@ private void doNAbTest(String assayName, File dataFile, @Nullable File metadataF setFormElement(Locator.name("cutoff1"), "50"); setFormElement(Locator.name("cutoff2"), "70"); - selectOptionByText(Locator.name("curveFitMethod"), "Polynomial"); + selectOptionByText(Locator.name("CurveFitMethod"), "Polynomial"); if (metadataFile != null) { @@ -322,7 +322,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("ParticipantVisitResolver", "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..3b3790b99d 100644 --- a/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java +++ b/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java @@ -235,7 +235,7 @@ private void importPlateData(File dataFile, String curveFitMethod) setFormElement(Locator.name("cutoff1"), "50"); setFormElement(Locator.name("cutoff2"), "70"); - selectOptionByText(Locator.name("curveFitMethod"), curveFitMethod); + selectOptionByText(Locator.name("CurveFitMethod"), curveFitMethod); setFormElement(Locator.name("specimen01_InitialDilution"), "5"); setFormElement(Locator.name("specimen01_Factor"), "42"); selectOptionByText(Locator.name("specimen01_Method"), "Dilution"); diff --git a/src/org/labkey/test/tests/study/StudyMissingValuesTest.java b/src/org/labkey/test/tests/study/StudyMissingValuesTest.java index 4fcde12b7e..e3244c77bb 100644 --- a/src/org/labkey/test/tests/study/StudyMissingValuesTest.java +++ b/src/org/labkey/test/tests/study/StudyMissingValuesTest.java @@ -204,8 +204,8 @@ public void testAssayLinkToStudyMV() selectOptionByText(Locator.xpath("//select[@name='targetStudy']"), targetStudyValue); clickButton("Next"); - setFormElement(Locator.name("name"), ASSAY_RUN_SINGLE_COLUMN); - click(Locator.xpath("//input[@value='textAreaDataProvider']")); + setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_SINGLE_COLUMN); + click(AssayTest.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..fb5bd62d40 100644 --- a/src/org/labkey/test/tests/viability/AbstractViabilityTest.java +++ b/src/org/labkey/test/tests/viability/AbstractViabilityTest.java @@ -23,6 +23,7 @@ import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.tests.AbstractAssayTest; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.PortalHelper; import org.labkey.test.util.PostgresOnlyTest; import org.labkey.test.util.QCAssayScriptHelper; @@ -135,7 +136,7 @@ protected void uploadViabilityRun(File file, String runName, boolean setBatchTar clickButton("Next"); if (runName != null) - setFormElement(Locator.name("name"), runName); + setFormElement(AssayTest.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(AssayTest.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 3593bf685d..e23f99764b 100644 --- a/src/org/labkey/test/tests/viability/ViabilityTest.java +++ b/src/org/labkey/test/tests/viability/ViabilityTest.java @@ -85,13 +85,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("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_1604505335_0_Viability"))); - assertNotChecked(Locator.checkboxByName("_pool_1604505335_0_Unreliable")); - assertEquals("", getFormElement(Locator.name("_pool_1604505335_0_IntValue"))); + 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 +105,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_16140000610-5_2_SpecimenIDs", "vial2"); + addSpecimenIds("_pool_16140000611-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,11 +184,11 @@ 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")); @@ -253,18 +253,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_16140000610-5_2_SpecimenIDs", "vial2"); + addSpecimenIds("_pool_16140000611-5_3_SpecimenIDs", "vial3"); + addSpecimenIds("_pool_161401643-5_4_SpecimenIDs", "xyzzy"); doAndWaitForPageToLoad(() -> { @@ -315,28 +315,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"))); - checkCheckbox(Locator.checkboxById("_pool_1604505335_0_TargetStudyCheckBox")); + selectOptionByText(Locator.name("_pool_160450533-5_0_TargetStudy"), targetStudyOptionText); + assertEquals("[None]", getSelectedOptionText(Locator.name("_pool_159402032-5_1_TargetStudy"))); + checkCheckbox(Locator.checkboxById("_pool_160450533-5_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"))); - uncheckCheckbox(Locator.checkboxById("_pool_1604505335_0_TargetStudyCheckBox")); + getSelectedOptionValue(Locator.name("_pool_160450533-5_0_TargetStudy")), + getSelectedOptionValue(Locator.name("_pool_16140000611-5_3_TargetStudy"))); + uncheckCheckbox(Locator.checkboxById("_pool_160450533-5_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_16140000610-5_2_TargetStudy"), "[None]"); + selectOptionByText(Locator.name("_pool_16140000611-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_16140000610-5_2_SpecimenIDs", "vial2"); + addSpecimenIds("_pool_16140000611-5_3_SpecimenIDs", "vial3"); + addSpecimenIds("_pool_161401643-5_4_SpecimenIDs", "xyzzy"); doAndWaitForPageToLoad(() -> { diff --git a/src/org/labkey/test/util/AssayImporter.java b/src/org/labkey/test/util/AssayImporter.java index 4c439119c8..d6aec0d274 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.tests.study.AssayTest; public class AssayImporter { @@ -41,13 +42,13 @@ public void doImport() { if (options.getVisitResolver() == AssayImportOptions.VisitResolverType.SpecimenIDParticipantVisit) { - test.checkRadioButton(Locator.radioButtonByNameAndValue("participantVisitResolver", AssayImportOptions.VisitResolverType.SpecimenID.name())); + test.checkRadioButton(Locator.radioButtonByNameAndValue("ParticipantVisitResolver", 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("ParticipantVisitResolver", options.getVisitResolver().name())); } else { @@ -61,10 +62,10 @@ public void doImport() test.assertChecked(Locator.radioButtonByNameAndValue("ThawListType", "Text")); break; case SpecimenIDParticipantVisit: - test.assertChecked(Locator.radioButtonByNameAndValue("participantVisitResolver", AssayImportOptions.VisitResolverType.SpecimenID.name())); + test.assertChecked(Locator.radioButtonByNameAndValue("ParticipantVisitResolver", AssayImportOptions.VisitResolverType.SpecimenID.name())); break; default: - test.assertChecked(Locator.radioButtonByNameAndValue("participantVisitResolver", options.getVisitResolver().name())); + test.assertChecked(Locator.radioButtonByNameAndValue("ParticipantVisitResolver", options.getVisitResolver().name())); } } @@ -77,20 +78,20 @@ public void doImport() test.clickButton("Next"); if (options.getAssayId() != null) - test.setFormElement(Locator.name("name"), options.getAssayId()); + test.setFormElement(AssayTest.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) { diff --git a/src/org/labkey/test/util/PortalHelper.java b/src/org/labkey/test/util/PortalHelper.java index 8ff252b79e..dd7cb57d91 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} */ @@ -463,15 +465,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")); From 06aa62cedb4f8aebbf62a858ecb9ca5244f6a06f Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sat, 28 Jun 2025 09:18:42 -0700 Subject: [PATCH 04/15] Fix build --- .../test/components/assay/AssayConstants.java | 11 ++++++++ .../test/tests/DomainFieldTypeChangeTest.java | 4 +-- .../test/tests/FileAttachmentColumnTest.java | 4 +-- src/org/labkey/test/tests/FlagColumnTest.java | 10 +++---- .../test/tests/InlineImagesAssayTest.java | 6 ++--- .../test/tests/MultiplePKUploadAssayTest.java | 8 +++--- .../labkey/test/tests/ProgrammaticQCTest.java | 26 +++++++++---------- .../test/tests/SampleTypeLinkToStudyTest.java | 6 ++--- src/org/labkey/test/tests/SampleTypeTest.java | 6 ++--- src/org/labkey/test/tests/TextChoiceTest.java | 4 +-- .../tests/assay/AssayMissingValuesTest.java | 22 ++++++++-------- .../assay/UploadLargeExcelAssayTest.java | 4 +-- .../tests/elisa/ElisaMultiPlateAssayTest.java | 6 ++--- .../tests/elispotassay/ElispotAssayTest.java | 4 +-- .../tests/study/StudyMissingValuesTest.java | 5 ++-- .../viability/AbstractViabilityTest.java | 6 ++--- src/org/labkey/test/util/AssayImporter.java | 4 +-- 17 files changed, 74 insertions(+), 62 deletions(-) create mode 100644 src/org/labkey/test/components/assay/AssayConstants.java 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..b50b240e4d --- /dev/null +++ b/src/org/labkey/test/components/assay/AssayConstants.java @@ -0,0 +1,11 @@ +package org.labkey.test.components.assay; + +import org.labkey.test.Locator; + +public class AssayConstants +{ + 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 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/tests/DomainFieldTypeChangeTest.java b/src/org/labkey/test/tests/DomainFieldTypeChangeTest.java index abe55599d3..fa645f76a7 100644 --- a/src/org/labkey/test/tests/DomainFieldTypeChangeTest.java +++ b/src/org/labkey/test/tests/DomainFieldTypeChangeTest.java @@ -12,12 +12,12 @@ 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; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.FieldInfo; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.APIAssayHelper; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.PortalHelper; @@ -179,7 +179,7 @@ public void testNonProvisionedDomainFieldChanges() checkCheckbox(Locator.name("batchTestBoolean")); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, 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 c7e71f7dc8..6e7e0c0b72 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; @@ -37,7 +38,6 @@ import org.labkey.test.params.FieldDefinition.ColumnType; import org.labkey.test.params.assay.GeneralAssayDesign; import org.labkey.test.params.experiment.SampleTypeDefinition; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.ListHelper; import org.labkey.test.util.PortalHelper; @@ -283,7 +283,7 @@ public void testAssayFileFieldsUI() throws Exception clickButton("Next"); // batch properties // run properties - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, 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/FlagColumnTest.java b/src/org/labkey/test/tests/FlagColumnTest.java index 4653b83fbd..98b408141a 100644 --- a/src/org/labkey/test/tests/FlagColumnTest.java +++ b/src/org/labkey/test/tests/FlagColumnTest.java @@ -11,8 +11,8 @@ 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.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.RelativeUrl; @@ -101,15 +101,15 @@ private void doInit() clickButton("Import Data"); log("Import run1..."); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "Run01"); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, + 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(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "Run02"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "Run02"); setFormElement(Locator.name("AnotherRunFlag"), "run has flag"); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, "SomeData\nrun2-data1\nrun2-data2"); clickButton("Save and Finish"); diff --git a/src/org/labkey/test/tests/InlineImagesAssayTest.java b/src/org/labkey/test/tests/InlineImagesAssayTest.java index 2db7ef9b0e..be577d8bc7 100644 --- a/src/org/labkey/test/tests/InlineImagesAssayTest.java +++ b/src/org/labkey/test/tests/InlineImagesAssayTest.java @@ -28,9 +28,9 @@ 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.tests.study.AssayTest; import org.labkey.test.util.DataRegionExportHelper; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.ExcelHelper; @@ -129,8 +129,8 @@ public final void testAssayInlineImages() throws Exception clickButton("Import Data"); setFormElement(Locator.name("batchFileField"), XLS_FILE); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runName); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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 c9e55242ab..e675998c0b 100644 --- a/src/org/labkey/test/tests/MultiplePKUploadAssayTest.java +++ b/src/org/labkey/test/tests/MultiplePKUploadAssayTest.java @@ -23,7 +23,7 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; import org.labkey.test.categories.Daily; -import org.labkey.test.tests.study.AssayTest; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.util.DataRegionTable; import java.io.File; @@ -99,12 +99,12 @@ public void verifyMultiplePKListUpload() throws Exception log("Specifying the specimenID"); assertTitleContains("Data Import: Run Properties and Data File"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "First run"); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, "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(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, "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 ecae5ca2f6..8434f62370 100644 --- a/src/org/labkey/test/tests/ProgrammaticQCTest.java +++ b/src/org/labkey/test/tests/ProgrammaticQCTest.java @@ -24,9 +24,9 @@ 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.tests.study.AssayTest; import org.labkey.test.util.APIAssayHelper; import org.labkey.test.util.PortalHelper; import org.labkey.test.util.QCAssayScriptHelper; @@ -166,14 +166,14 @@ private void uploadQCRuns() clickButton("Import Data"); clickButton("Next"); - click(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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 @@ -191,14 +191,14 @@ private void uploadTransformRuns() clickButton("Import Data"); clickButton("Next"); - click(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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")); @@ -260,14 +260,14 @@ private void uploadTransformQCRuns() clickButton("Import Data"); clickButton("Next"); - click(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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/SampleTypeLinkToStudyTest.java b/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java index c5837d5f71..6183f5db7c 100644 --- a/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java +++ b/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java @@ -12,6 +12,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; @@ -23,7 +24,6 @@ import org.labkey.test.pages.study.ManageVisitPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.experiment.SampleTypeDefinition; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.Ext4Helper; import org.labkey.test.util.PortalHelper; @@ -362,8 +362,8 @@ public void testAssaySupport() DataRegionTable table = new DataRegionTable("Runs", getDriver()); table.clickHeaderButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runName); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, importData); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, importData); clickButton("Save and Finish"); clickAndWait(Locator.linkWithText(runName)); diff --git a/src/org/labkey/test/tests/SampleTypeTest.java b/src/org/labkey/test/tests/SampleTypeTest.java index 5146de9057..f5ccbe250f 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; @@ -50,7 +51,6 @@ import org.labkey.test.params.FieldDefinition.LookupInfo; import org.labkey.test.params.FieldInfo; import org.labkey.test.params.experiment.SampleTypeDefinition; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionExportHelper; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.EscapeUtil; @@ -662,7 +662,7 @@ public void testDeleteSamplesSomeWithAssayData() clickAndWait(Locator.linkWithText(DATA_ID_ASSAY)); clickButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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"); @@ -696,7 +696,7 @@ public void testDeleteSamplesSomeWithAssayData() clickButton("Import Data"); clickButton("Next"); setFormElement(Locator.name(SAMPLE_ID_FIELD_NAME), RUN_SAMPLE_NAME); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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/TextChoiceTest.java b/src/org/labkey/test/tests/TextChoiceTest.java index d0073ceada..8d49e524a6 100644 --- a/src/org/labkey/test/tests/TextChoiceTest.java +++ b/src/org/labkey/test/tests/TextChoiceTest.java @@ -4,13 +4,13 @@ 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; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.experiment.SampleTypeDefinition; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.TestDataGenerator; import org.labkey.test.util.exp.SampleTypeAPIHelper; @@ -222,7 +222,7 @@ protected Map createAssayRun() log("Paste in the results and save."); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, resultsPasteText.toString()); + setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, resultsPasteText.toString()); clickButton("Save and Finish"); diff --git a/src/org/labkey/test/tests/assay/AssayMissingValuesTest.java b/src/org/labkey/test/tests/assay/AssayMissingValuesTest.java index e936f2a812..6c1bc47ecc 100644 --- a/src/org/labkey/test/tests/assay/AssayMissingValuesTest.java +++ b/src/org/labkey/test/tests/assay/AssayMissingValuesTest.java @@ -9,11 +9,11 @@ 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; import org.labkey.test.tests.MissingValueIndicatorsTest; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LogMethod; @@ -94,14 +94,14 @@ public void testAssayMV() waitAndClickAndWait(Locator.linkWithText(ASSAY_NAME)); clickButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_SINGLE_COLUMN); - click(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + 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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + click(AssayConstants.TEXT_AREA_DATA_PROVIDER_LOCATOR); setFormElement(Locator.name("TextAreaDataCollector.textArea"), TEST_DATA_SINGLE_COLUMN_ASSAY); clickButton("Save and Finish"); assertNoLabKeyErrors(); @@ -127,15 +127,15 @@ public void testAssayMV() clickAndWait(Locator.linkWithText(ASSAY_NAME)); clickButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_TWO_COLUMN); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_TWO_COLUMN); - click(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); - setFormElement(AssayTest.TEXT_AREA_DATA_COLLECTOR_LOCATOR, 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)); @@ -163,7 +163,7 @@ public void testAssayMV() clickAndWait(Locator.linkWithText(ASSAY_NAME)); clickButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, 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); @@ -188,7 +188,7 @@ public void testAssayMV() clickAndWait(Locator.linkWithText(ASSAY_NAME)); clickButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, 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/UploadLargeExcelAssayTest.java b/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java index 8e81ed7da5..a72e144038 100644 --- a/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java +++ b/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java @@ -10,12 +10,12 @@ 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; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.assay.GeneralAssayDesign; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.AbstractDataRegionExportOrSignHelper; import org.labkey.test.util.TestDataGenerator; @@ -96,7 +96,7 @@ public void testUpload200kRows() throws Exception clickAndWait(Locator.linkWithText(LARGE_ASSAY)); clickButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "200k"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "200k"); checkRadioButton(Locator.inputById("Fileupload")); setFormElement(Locator.input("__primaryFile__"), largeExcelFile); clickButton("Save and Finish"); diff --git a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java index d7fa9554fa..86b9b82bab 100644 --- a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java +++ b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java @@ -15,12 +15,12 @@ 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; import org.labkey.test.pages.assay.plate.PlateDesignerPage; import org.labkey.test.pages.assay.plate.PlateTemplateListPage; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.PortalHelper; import java.io.File; @@ -240,7 +240,7 @@ private AssayRunsPage uploadHighSpeedFile(String assayName, String runName, File clickButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runName); + 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 @@ -264,7 +264,7 @@ private AssayRunsPage uploadFile(String assayName, String runName, File file, St setFormElement(Locator.name("specimen" + (i) + "_VisitID"), "" + (i)); } - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); setFormElement(Locator.name("CurveFitMethod"), curveFitMethod); setFormElement(Locator.name("__primaryFile__"), file); clickButton("Next"); diff --git a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java index 1798fdc439..07b73dbbc9 100644 --- a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java +++ b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java @@ -30,10 +30,10 @@ 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; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LogMethod; import org.labkey.test.util.PipelineStatusTable; @@ -508,7 +508,7 @@ protected void runTransformTest() clickButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "transformed assayId"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "transformed assayId"); selectOptionByText(PLATE_READER_LOCATOR, "AID"); uploadFile(TEST_ASSAY_ELISPOT_FILE4, "D", "Save and Finish", false); diff --git a/src/org/labkey/test/tests/study/StudyMissingValuesTest.java b/src/org/labkey/test/tests/study/StudyMissingValuesTest.java index e3244c77bb..5be186669b 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; @@ -204,8 +205,8 @@ public void testAssayLinkToStudyMV() selectOptionByText(Locator.xpath("//select[@name='targetStudy']"), targetStudyValue); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_SINGLE_COLUMN); - click(AssayTest.TEXT_AREA_DATA_PROVIDER_LOCATOR); + 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 fb5bd62d40..f4db0a9273 100644 --- a/src/org/labkey/test/tests/viability/AbstractViabilityTest.java +++ b/src/org/labkey/test/tests/viability/AbstractViabilityTest.java @@ -19,11 +19,11 @@ 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; import org.labkey.test.tests.AbstractAssayTest; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.PortalHelper; import org.labkey.test.util.PostgresOnlyTest; import org.labkey.test.util.QCAssayScriptHelper; @@ -136,7 +136,7 @@ protected void uploadViabilityRun(File file, String runName, boolean setBatchTar clickButton("Next"); if (runName != null) - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); uploadAssayFile(file); } @@ -151,7 +151,7 @@ protected void reuploadViabilityRun(File file, String runName) clickButton("Next"); if (runName != null) - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); uploadAssayFile(file); } diff --git a/src/org/labkey/test/util/AssayImporter.java b/src/org/labkey/test/util/AssayImporter.java index d6aec0d274..f9aed6d2c2 100644 --- a/src/org/labkey/test/util/AssayImporter.java +++ b/src/org/labkey/test/util/AssayImporter.java @@ -17,7 +17,7 @@ import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; -import org.labkey.test.tests.study.AssayTest; +import org.labkey.test.components.assay.AssayConstants; public class AssayImporter { @@ -78,7 +78,7 @@ public void doImport() test.clickButton("Next"); if (options.getAssayId() != null) - test.setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, options.getAssayId()); + test.setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, options.getAssayId()); test.setFormElement(Locator.name("Cutoff1"), options.getCutoff1()); if (options.getCutoff2() != null) From b141a1dd62d053be425bf616bb839cd9f10879af Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sat, 28 Jun 2025 10:09:26 -0700 Subject: [PATCH 05/15] Test fixes --- .../test/pages/issues/BaseUpdatePage.java | 4 +- src/org/labkey/test/tests/FilterTest.java | 47 +++++++++---------- .../test/tests/viability/ViabilityTest.java | 2 +- src/org/labkey/test/util/IssuesHelper.java | 2 +- 4 files changed, 27 insertions(+), 28 deletions(-) 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/tests/FilterTest.java b/src/org/labkey/test/tests/FilterTest.java index 561d5c3a1a..e069dd8814 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,16 +336,16 @@ 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")); assertElementNotPresent(Locator.linkWithText(projectIssue.get("title"))); @@ -355,8 +354,8 @@ public void testContainerFilterFacet() throws Exception 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/viability/ViabilityTest.java b/src/org/labkey/test/tests/viability/ViabilityTest.java index e23f99764b..0f27a2b36f 100644 --- a/src/org/labkey/test/tests/viability/ViabilityTest.java +++ b/src/org/labkey/test/tests/viability/ViabilityTest.java @@ -89,7 +89,7 @@ protected void runUploadTest() 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_1604505335_0_Viability"))); + 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"))); 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); } From 9d08e26ee6ebec4e28ec5081657247d1cf0a272c Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sat, 28 Jun 2025 16:53:26 -0600 Subject: [PATCH 06/15] Test fixes --- src/org/labkey/test/tests/elisa/ElisaAssayTest.java | 4 ++-- src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java | 4 ++-- src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/org/labkey/test/tests/elisa/ElisaAssayTest.java b/src/org/labkey/test/tests/elisa/ElisaAssayTest.java index fe3f2e4ee5..75f63d815f 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) diff --git a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java index 86b9b82bab..e820c1bf91 100644 --- a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java +++ b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java @@ -255,8 +255,8 @@ 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); diff --git a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java index 07b73dbbc9..1ada9899d8 100644 --- a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java +++ b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java @@ -83,7 +83,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"); + public static final Locator.XPathLocator PLATE_READER_LOCATOR = Locator.name("PlateReader"); @Override public List getAssociatedModules() From a720c3a1167245c6ab64b3ad7466e7ac9559be13 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sun, 29 Jun 2025 07:38:08 -0600 Subject: [PATCH 07/15] Test fixes --- .../test/tests/AssayExportImportTest.java | 8 ++-- .../test/tests/SampleTypeLineageTest.java | 12 ++--- src/org/labkey/test/tests/TextChoiceTest.java | 2 +- .../assay/AssayTransformImportUpdateTest.java | 2 +- .../assay/UploadLargeExcelAssayTest.java | 2 +- .../test/tests/elisa/ElisaAssayTest.java | 2 +- .../tests/elisa/ElisaMultiPlateAssayTest.java | 2 +- .../tests/elispotassay/ElispotAssayTest.java | 6 +-- .../tests/issues/IssueDomainSharingTest.java | 6 +-- .../test/tests/issues/IssuesAdminTest.java | 4 +- .../tests/issues/IssuesAttachmentTest.java | 4 +- .../labkey/test/tests/issues/IssuesTest.java | 44 +++++++++---------- .../labkey/test/tests/nab/NabAssayTest.java | 4 +- 13 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/org/labkey/test/tests/AssayExportImportTest.java b/src/org/labkey/test/tests/AssayExportImportTest.java index 00521d7475..03723d4155 100644 --- a/src/org/labkey/test/tests/AssayExportImportTest.java +++ b/src/org/labkey/test/tests/AssayExportImportTest.java @@ -486,10 +486,10 @@ public void validateImportingFileUsingRunProperties() throws Exception 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, 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)); + 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); diff --git a/src/org/labkey/test/tests/SampleTypeLineageTest.java b/src/org/labkey/test/tests/SampleTypeLineageTest.java index dc31681708..98f8552700 100644 --- a/src/org/labkey/test/tests/SampleTypeLineageTest.java +++ b/src/org/labkey/test/tests/SampleTypeLineageTest.java @@ -274,17 +274,17 @@ at ParentFolder_SampleType in the sub folder it should see one sample (the deriv setFormElement(Locator.name("Output Sample 1_Name"), "SampleSetBVT15"); setFormElement(Locator.name("Output Sample 2_Name"), "SampleSetBVT16"); - checkCheckbox(Locator.name("Output Sample 1_IntColFolderCheckBox")); - setFormElement(Locator.name("Output Sample 1_IntColFolder"), "500a"); - setFormElement(Locator.name("Output Sample 1_StringColFolder"), "firstOutput"); - setFormElement(Locator.name("Output Sample 2_StringColFolder"), "secondOutput"); + checkCheckbox(Locator.name("Output Sample 1_IntCol-FolderCheckBox")); + 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("Output Sample 1_IntColFolderCheckBox")); - setFormElement(Locator.name("Output Sample 1_IntColFolder"), "500"); + checkCheckbox(Locator.name("Output Sample 1_IntCol-FolderCheckBox")); + setFormElement(Locator.name("Output Sample 1_IntCol-Folder"), "500"); clickButton("Submit"); clickAndWait(Locator.linkContainingText("Derive 2 samples")); diff --git a/src/org/labkey/test/tests/TextChoiceTest.java b/src/org/labkey/test/tests/TextChoiceTest.java index 8d49e524a6..42c6aec468 100644 --- a/src/org/labkey/test/tests/TextChoiceTest.java +++ b/src/org/labkey/test/tests/TextChoiceTest.java @@ -190,7 +190,7 @@ 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(RUN_TC_FIELD); assertSelectOptions(runLocator, RUN_FIELD_VALUES, diff --git a/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java b/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java index d8bf8381a6..a8ff984027 100644 --- a/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java +++ b/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java @@ -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/UploadLargeExcelAssayTest.java b/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java index a72e144038..ea2f3b964c 100644 --- a/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java +++ b/src/org/labkey/test/tests/assay/UploadLargeExcelAssayTest.java @@ -120,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 75f63d815f..e1c14dd96d 100644 --- a/src/org/labkey/test/tests/elisa/ElisaAssayTest.java +++ b/src/org/labkey/test/tests/elisa/ElisaAssayTest.java @@ -151,7 +151,7 @@ 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); diff --git a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java index e820c1bf91..dedecdc5fa 100644 --- a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java +++ b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java @@ -261,7 +261,7 @@ private AssayRunsPage uploadFile(String assayName, String runName, File file, St 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(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); diff --git a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java index 1ada9899d8..1feb11458e 100644 --- a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java +++ b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java @@ -298,15 +298,15 @@ protected void uploadFile(File file, String uniqueifier, String finalButton, boo 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) 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); 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 d12e2c3666..4249a7f608 100644 --- a/src/org/labkey/test/tests/issues/IssuesTest.java +++ b/src/org/labkey/test/tests/issues/IssuesTest.java @@ -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"); @@ -278,12 +278,12 @@ 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("Type"), "UFO"); + selectOptionByText(Locator.name("Area"), "Area51"); selectOptionByText(Locator.name("module"), "Zvezda"); - selectOptionByText(Locator.name("priority"), "2"); + selectOptionByText(Locator.name("Priority"), "2"); setFormElement(Locator.name("comment"), ISSUE_0.get("comment")); - selectOptionByText(Locator.name("assignedTo"), NAME); + selectOptionByText(Locator.name("AssignedTo"), NAME); selectOptionByText(Locator.name("milestone"), "2012"); Locator fouthStringLocator = Locator.name("myFourthString"); @@ -477,7 +477,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); @@ -669,7 +669,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- @@ -700,14 +700,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"); @@ -735,7 +735,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"); @@ -756,11 +756,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"); @@ -783,10 +783,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 @@ -839,7 +839,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) @@ -853,7 +853,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 @@ -864,7 +864,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 @@ -875,7 +875,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! @@ -901,7 +901,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 2d052d26e1..485a8ec58b 100644 --- a/src/org/labkey/test/tests/nab/NabAssayTest.java +++ b/src/org/labkey/test/tests/nab/NabAssayTest.java @@ -549,8 +549,8 @@ private void doResolverTypeTest() assertTextPresent("Participant id, visit id, and date."); // assert that both the visit id and date are present. In other resolver types only one // or the other is present - assertElementPresent(Locator.checkboxById("specimen1_VisitIDCheckBox")); - assertElementPresent(Locator.checkboxById("specimen1_DateCheckBox")); + assertElementPresent(Locator.checkboxById("Specimen 1_VisitIDCheckBox")); + assertElementPresent(Locator.checkboxById("Specimen 1_DateCheckBox")); clickButton("Cancel"); } From ef1d0b5b56013552c9c6af609a858d5c72bcb06c Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Wed, 2 Jul 2025 07:24:36 -0600 Subject: [PATCH 08/15] Test fixes --- src/org/labkey/test/tests/InlineImagesAssayTest.java | 2 +- .../test/tests/TextChoiceImportExportAndOtherDomainsTest.java | 2 +- .../test/tests/assay/AssayTransformImportUpdateTest.java | 2 +- src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java | 4 ++-- src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/org/labkey/test/tests/InlineImagesAssayTest.java b/src/org/labkey/test/tests/InlineImagesAssayTest.java index be577d8bc7..455d352c6b 100644 --- a/src/org/labkey/test/tests/InlineImagesAssayTest.java +++ b/src/org/labkey/test/tests/InlineImagesAssayTest.java @@ -127,7 +127,7 @@ 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(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); setFormElement(AssayConstants.TEXT_AREA_DATA_COLLECTOR_LOCATOR, importData); diff --git a/src/org/labkey/test/tests/TextChoiceImportExportAndOtherDomainsTest.java b/src/org/labkey/test/tests/TextChoiceImportExportAndOtherDomainsTest.java index 7f41d3ebd1..bf4d4d376d 100644 --- a/src/org/labkey/test/tests/TextChoiceImportExportAndOtherDomainsTest.java +++ b/src/org/labkey/test/tests/TextChoiceImportExportAndOtherDomainsTest.java @@ -168,7 +168,7 @@ private void verifyTextChoiceInIssueDesign() log("Validate that a new issue can be inserted that uses the TextChoice field."); IssuesHelper issuesHelper = new IssuesHelper(getDriver()); - Map issueDetails = Map.of("title", ISSUE_TITLE, "assignedTo", getDisplayName(), ISSUE_TC_FIELD, 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/assay/AssayTransformImportUpdateTest.java b/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java index a8ff984027..7043cfaba2 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(); diff --git a/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java b/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java index a8916e66db..a823285851 100644 --- a/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java +++ b/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java @@ -197,8 +197,8 @@ 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"); + setFormElement(Locator.name("Cutoff1"), "50"); + setFormElement(Locator.name("Cutoff2"), "70"); selectOptionByText(Locator.name("CurveFitMethod"), "Polynomial"); if (metadataFile != null) diff --git a/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java b/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java index 3b3790b99d..58d6fdbd44 100644 --- a/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java +++ b/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java @@ -233,8 +233,8 @@ private void importPlateData(File dataFile, String curveFitMethod) clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("cutoff1"), "50"); - setFormElement(Locator.name("cutoff2"), "70"); + 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"); From d133285fb72f3284df90d544d683246f88322aad Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sun, 6 Jul 2025 20:19:44 -0700 Subject: [PATCH 09/15] Test fixes --- src/org/labkey/test/tests/FilterTest.java | 2 +- .../assay/AssayTransformImportUpdateTest.java | 2 +- src/org/labkey/test/tests/issues/IssuesTest.java | 4 ++-- .../test/tests/nab/NabMultiVirusPlateTest.java | 12 ++++++------ src/org/labkey/test/util/AssayImporter.java | 14 +++++++------- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/org/labkey/test/tests/FilterTest.java b/src/org/labkey/test/tests/FilterTest.java index e069dd8814..e0a896f32c 100644 --- a/src/org/labkey/test/tests/FilterTest.java +++ b/src/org/labkey/test/tests/FilterTest.java @@ -347,7 +347,7 @@ public void testContainerFilterFacet() throws Exception 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"))); diff --git a/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java b/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java index 7043cfaba2..15b9814577 100644 --- a/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java +++ b/src/org/labkey/test/tests/assay/AssayTransformImportUpdateTest.java @@ -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(); diff --git a/src/org/labkey/test/tests/issues/IssuesTest.java b/src/org/labkey/test/tests/issues/IssuesTest.java index 54a635fa99..948262b7f9 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"; diff --git a/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java b/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java index 58d6fdbd44..e7465aefae 100644 --- a/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java +++ b/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java @@ -236,12 +236,12 @@ private void importPlateData(File dataFile, String curveFitMethod) 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"); - checkCheckbox(Locator.name("specimen01_InitialDilutionCheckBox")); - checkCheckbox(Locator.name("specimen01_FactorCheckBox")); - checkCheckbox(Locator.name("specimen01_MethodCheckBox")); + setFormElement(Locator.name("Specimen 01_InitialDilution"), "5"); + setFormElement(Locator.name("Specimen 01_Factor"), "42"); + selectOptionByText(Locator.name("Specimen 01_Method"), "Dilution"); + checkCheckbox(Locator.name("Specimen 01_InitialDilutionCheckBox")); + checkCheckbox(Locator.name("Specimen 01_FactorCheckBox")); + checkCheckbox(Locator.name("Specimen 01_MethodCheckBox")); setFormElement(Locator.xpath("//input[@type='file' and @name='__primaryFile__']"), dataFile); diff --git a/src/org/labkey/test/util/AssayImporter.java b/src/org/labkey/test/util/AssayImporter.java index f9aed6d2c2..b2ef9dcaaa 100644 --- a/src/org/labkey/test/util/AssayImporter.java +++ b/src/org/labkey/test/util/AssayImporter.java @@ -98,37 +98,37 @@ public void doImport() // 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 From cf61ec1f021729f293226077466c24c9cbd71fff Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Mon, 7 Jul 2025 16:12:33 -0700 Subject: [PATCH 10/15] Test fixes --- .../test/components/assay/AssayConstants.java | 1 + .../test/tests/AssayExportImportTest.java | 3 +- .../test/tests/ButtonCustomizationTest.java | 2 +- .../labkey/test/tests/DatasetExportTest.java | 3 +- .../test/tests/SampleTypeLinkToStudyTest.java | 4 +-- .../test/tests/elisa/ElisaAssayTest.java | 2 +- .../tests/elisa/ElisaMultiPlateAssayTest.java | 2 +- .../tests/elispotassay/ElispotAssayTest.java | 6 ++-- .../test/tests/flow/FlowSpecimenTest.java | 5 +-- .../labkey/test/tests/issues/IssuesTest.java | 32 ++++++++----------- .../labkey/test/tests/nab/NabAssayTest.java | 7 ++-- .../tests/nab/NabMultiVirusPlateTest.java | 6 ++-- .../viability/AbstractViabilityTest.java | 2 +- src/org/labkey/test/util/IssuesApiHelper.java | 6 ++-- .../labkey/test/util/SampleTypeHelper.java | 3 +- 15 files changed, 43 insertions(+), 41 deletions(-) diff --git a/src/org/labkey/test/components/assay/AssayConstants.java b/src/org/labkey/test/components/assay/AssayConstants.java index b50b240e4d..89bd7cce5b 100644 --- a/src/org/labkey/test/components/assay/AssayConstants.java +++ b/src/org/labkey/test/components/assay/AssayConstants.java @@ -6,6 +6,7 @@ public class AssayConstants { 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("TargetStudy"); 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/tests/AssayExportImportTest.java b/src/org/labkey/test/tests/AssayExportImportTest.java index 03723d4155..67eb2ba84d 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; @@ -240,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) { diff --git a/src/org/labkey/test/tests/ButtonCustomizationTest.java b/src/org/labkey/test/tests/ButtonCustomizationTest.java index 49eca0c4c5..25c4b09a75 100644 --- a/src/org/labkey/test/tests/ButtonCustomizationTest.java +++ b/src/org/labkey/test/tests/ButtonCustomizationTest.java @@ -188,7 +188,7 @@ public void testSteps() Locator.lkButton(METADATA_LINK_BUTTON).waitForElement(getDriver(), WAIT_FOR_JAVASCRIPT) .getAttribute("class").contains("labkey-disabled-button")); - buttonRegion.checkCheckbox(buttonRegion.getRowIndex("Portland", "Name")); + buttonRegion.checkCheckbox(buttonRegion.getRowIndex("Name", "Portland")); // wait for the button to enable: waitForElement(Locator.lkButton(METADATA_LINK_BUTTON), 10000); 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/SampleTypeLinkToStudyTest.java b/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java index 6183f5db7c..6739ad538a 100644 --- a/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java +++ b/src/org/labkey/test/tests/SampleTypeLinkToStudyTest.java @@ -331,7 +331,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"); @@ -377,7 +377,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")); diff --git a/src/org/labkey/test/tests/elisa/ElisaAssayTest.java b/src/org/labkey/test/tests/elisa/ElisaAssayTest.java index e1c14dd96d..9c5bc34476 100644 --- a/src/org/labkey/test/tests/elisa/ElisaAssayTest.java +++ b/src/org/labkey/test/tests/elisa/ElisaAssayTest.java @@ -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 dedecdc5fa..a7deb55ffd 100644 --- a/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java +++ b/src/org/labkey/test/tests/elisa/ElisaMultiPlateAssayTest.java @@ -272,7 +272,7 @@ private AssayRunsPage uploadFile(String assayName, String runName, File file, St String[] letters = {"A","B","C","D","E","F","G","H"}; for (int i = 0; i <= 5; i++) { - setFormElement(Locator.name(letters[i]+"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 1feb11458e..82109bf90c 100644 --- a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java +++ b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java @@ -314,16 +314,16 @@ 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) 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) 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/IssuesTest.java b/src/org/labkey/test/tests/issues/IssuesTest.java index 948262b7f9..dc9a0a1c68 100644 --- a/src/org/labkey/test/tests/issues/IssuesTest.java +++ b/src/org/labkey/test/tests/issues/IssuesTest.java @@ -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()); @@ -290,23 +290,19 @@ public void generalTest() throws Exception setFormElement(Locator.name("title"), issueTitle); selectOptionByText(Locator.name("Type"), "UFO"); selectOptionByText(Locator.name("Area"), "Area51"); - selectOptionByText(Locator.name("module"), "Zvezda"); + 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("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)); @@ -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 diff --git a/src/org/labkey/test/tests/nab/NabAssayTest.java b/src/org/labkey/test/tests/nab/NabAssayTest.java index 485a8ec58b..ba1075f28d 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); @@ -549,8 +550,8 @@ private void doResolverTypeTest() assertTextPresent("Participant id, visit id, and date."); // assert that both the visit id and date are present. In other resolver types only one // or the other is present - assertElementPresent(Locator.checkboxById("Specimen 1_VisitIDCheckBox")); - assertElementPresent(Locator.checkboxById("Specimen 1_DateCheckBox")); + assertElementPresent(Locator.checkboxById("specimen1_VisitIDCheckBox")); + assertElementPresent(Locator.checkboxById("specimen1_DateCheckBox")); clickButton("Cancel"); } diff --git a/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java b/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java index e7465aefae..6359c13867 100644 --- a/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java +++ b/src/org/labkey/test/tests/nab/NabMultiVirusPlateTest.java @@ -239,9 +239,9 @@ private void importPlateData(File dataFile, String 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("Specimen 01_InitialDilutionCheckBox")); - checkCheckbox(Locator.name("Specimen 01_FactorCheckBox")); - checkCheckbox(Locator.name("Specimen 01_MethodCheckBox")); + checkCheckbox(Locator.name("specimen01_InitialDilutionCheckBox")); + checkCheckbox(Locator.name("specimen01_FactorCheckBox")); + checkCheckbox(Locator.name("specimen01_MethodCheckBox")); setFormElement(Locator.xpath("//input[@type='file' and @name='__primaryFile__']"), dataFile); diff --git a/src/org/labkey/test/tests/viability/AbstractViabilityTest.java b/src/org/labkey/test/tests/viability/AbstractViabilityTest.java index f4db0a9273..ebd119d6bb 100644 --- a/src/org/labkey/test/tests/viability/AbstractViabilityTest.java +++ b/src/org/labkey/test/tests/viability/AbstractViabilityTest.java @@ -132,7 +132,7 @@ 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) 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/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"); From 8a873ef50c5647aba8244416c90f2f68af00d7b1 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Tue, 8 Jul 2025 18:07:31 -0700 Subject: [PATCH 11/15] Test fixes --- .../labkey/test/tests/elispotassay/ElispotAssayTest.java | 6 +++--- src/org/labkey/test/tests/study/StudyMissingValuesTest.java | 2 +- src/org/labkey/test/tests/viability/ViabilityTest.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java index 82109bf90c..ae4f3460f4 100644 --- a/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java +++ b/src/org/labkey/test/tests/elispotassay/ElispotAssayTest.java @@ -295,7 +295,7 @@ 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"); @@ -329,9 +329,9 @@ protected void uploadFile(File file, String uniqueifier, String finalButton, boo 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); } diff --git a/src/org/labkey/test/tests/study/StudyMissingValuesTest.java b/src/org/labkey/test/tests/study/StudyMissingValuesTest.java index 5be186669b..41fb42bb0b 100644 --- a/src/org/labkey/test/tests/study/StudyMissingValuesTest.java +++ b/src/org/labkey/test/tests/study/StudyMissingValuesTest.java @@ -202,7 +202,7 @@ 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(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, ASSAY_RUN_SINGLE_COLUMN); diff --git a/src/org/labkey/test/tests/viability/ViabilityTest.java b/src/org/labkey/test/tests/viability/ViabilityTest.java index 0f27a2b36f..a2d8ae5cd1 100644 --- a/src/org/labkey/test/tests/viability/ViabilityTest.java +++ b/src/org/labkey/test/tests/viability/ViabilityTest.java @@ -107,8 +107,8 @@ protected void runUploadTest() log("** Insert specimen IDs"); addSpecimenIds("_pool_160450533-5_0_SpecimenIDs", "vial2", "vial3", "vial1", "foobar"); addSpecimenIds("_pool_159402032-5_1_SpecimenIDs", "vial1"); - addSpecimenIds("_pool_16140000610-5_2_SpecimenIDs", "vial2"); - addSpecimenIds("_pool_16140000611-5_3_SpecimenIDs", "vial3"); + 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"); From 8990ec8a3ef94e78268fe5cb7536d469aaffd50c Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Thu, 10 Jul 2025 10:56:23 -0700 Subject: [PATCH 12/15] Test fixes --- src/org/labkey/test/tests/SampleTypeLineageTest.java | 4 ++-- src/org/labkey/test/tests/nab/NabAssayThawListTest.java | 2 +- src/org/labkey/test/tests/viability/ViabilityTest.java | 2 +- src/org/labkey/test/util/APIAssayHelper.java | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/org/labkey/test/tests/SampleTypeLineageTest.java b/src/org/labkey/test/tests/SampleTypeLineageTest.java index 8904d888ad..a7fa057a6c 100644 --- a/src/org/labkey/test/tests/SampleTypeLineageTest.java +++ b/src/org/labkey/test/tests/SampleTypeLineageTest.java @@ -275,7 +275,7 @@ at ParentFolder_SampleType in the sub folder it should see one sample (the deriv setFormElement(Locator.name("Output Sample 1_Name"), "SampleSetBVT15"); setFormElement(Locator.name("Output Sample 2_Name"), "SampleSetBVT16"); - checkCheckbox(Locator.name("Output Sample 1_IntCol-FolderCheckBox")); + checkCheckbox(Locator.name("outputSample1_IntColFolderCheckBox")); 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"); @@ -284,7 +284,7 @@ at ParentFolder_SampleType in the sub folder it should see one sample (the deriv 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("Output Sample 1_IntCol-FolderCheckBox")); + checkCheckbox(Locator.name("outputSample1_IntColFolderCheckBox")); setFormElement(Locator.name("Output Sample 1_IntCol-Folder"), "500"); clickButton("Submit"); diff --git a/src/org/labkey/test/tests/nab/NabAssayThawListTest.java b/src/org/labkey/test/tests/nab/NabAssayThawListTest.java index a37f281965..ce7826f9e9 100644 --- a/src/org/labkey/test/tests/nab/NabAssayThawListTest.java +++ b/src/org/labkey/test/tests/nab/NabAssayThawListTest.java @@ -88,7 +88,7 @@ public static void setupProject() throws Exception init.doSetup(); } - private void doSetup() throws Exception + private void doSetup() { // default project _containerHelper.createProject(getProjectName(), null); diff --git a/src/org/labkey/test/tests/viability/ViabilityTest.java b/src/org/labkey/test/tests/viability/ViabilityTest.java index b8aa5a4963..14c2b8411c 100644 --- a/src/org/labkey/test/tests/viability/ViabilityTest.java +++ b/src/org/labkey/test/tests/viability/ViabilityTest.java @@ -191,7 +191,7 @@ protected void runReRunTest() 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(() -> { diff --git a/src/org/labkey/test/util/APIAssayHelper.java b/src/org/labkey/test/util/APIAssayHelper.java index 5fccfe1889..2839f3af58 100644 --- a/src/org/labkey/test/util/APIAssayHelper.java +++ b/src/org/labkey/test/util/APIAssayHelper.java @@ -113,10 +113,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); From f5cc1cbb065db175be15e68eb29dd9945fac95d7 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Thu, 10 Jul 2025 15:11:10 -0700 Subject: [PATCH 13/15] Test fixes --- src/org/labkey/test/tests/viability/ViabilityTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/labkey/test/tests/viability/ViabilityTest.java b/src/org/labkey/test/tests/viability/ViabilityTest.java index 14c2b8411c..bc7215a85f 100644 --- a/src/org/labkey/test/tests/viability/ViabilityTest.java +++ b/src/org/labkey/test/tests/viability/ViabilityTest.java @@ -317,14 +317,14 @@ protected void runTargetStudyTest() String targetStudyOptionText = "/" + getProjectName() + "/" + getFolderName() + " (" + getFolderName() + " Study)"; selectOptionByText(Locator.name("_pool_160450533-5_0_TargetStudy"), targetStudyOptionText); assertEquals("[None]", getSelectedOptionText(Locator.name("_pool_159402032-5_1_TargetStudy"))); - checkCheckbox(Locator.checkboxById("_pool_160450533-5_0_TargetStudyCheckBox")); + checkCheckbox(Locator.checkboxById("_pool_1604505335_0_TargetStudyCheckBox")); assertEquals("Target study didn't propagate with 'Same' checkbox.", 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_160450533-5_0_TargetStudy")), getSelectedOptionValue(Locator.name("_pool_16140000611-5_3_TargetStudy"))); - uncheckCheckbox(Locator.checkboxById("_pool_160450533-5_0_TargetStudyCheckBox")); + uncheckCheckbox(Locator.checkboxById("_pool_1604505335_0_TargetStudyCheckBox")); // clear TargetStudy for 'vial2' and set the TargetStudy for 'vial3' and 'xyzzy' selectOptionByText(Locator.name("_pool_16140000610-5_2_TargetStudy"), "[None]"); From 5ba4582e5a073d3cb3a0beabb33f51b2c4a28b76 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Mon, 14 Jul 2025 09:58:11 -0700 Subject: [PATCH 14/15] Update names --- .../labkey/test/tests/viability/ViabilityTest.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/org/labkey/test/tests/viability/ViabilityTest.java b/src/org/labkey/test/tests/viability/ViabilityTest.java index bc7215a85f..4b7a1da781 100644 --- a/src/org/labkey/test/tests/viability/ViabilityTest.java +++ b/src/org/labkey/test/tests/viability/ViabilityTest.java @@ -262,8 +262,8 @@ protected void runTransformTest() log("** Insert specimen IDs"); addSpecimenIds("_pool_160450533-5_0_SpecimenIDs", "vial2", "vial3", "vial1", "foobar"); addSpecimenIds("_pool_159402032-5_1_SpecimenIDs", "vial1"); - addSpecimenIds("_pool_16140000610-5_2_SpecimenIDs", "vial2"); - addSpecimenIds("_pool_16140000611-5_3_SpecimenIDs", "vial3"); + addSpecimenIds("_pool_161400006.10-5_2_SpecimenIDs", "vial2"); + addSpecimenIds("_pool_161400006.11-5_3_SpecimenIDs", "vial3"); addSpecimenIds("_pool_161401643-5_4_SpecimenIDs", "xyzzy"); doAndWaitForPageToLoad(() -> @@ -323,19 +323,19 @@ protected void runTargetStudyTest() getSelectedOptionValue(Locator.name("_pool_159402032-5_1_TargetStudy"))); assertEquals("Target study didn't propagate with 'Same' checkbox.", getSelectedOptionValue(Locator.name("_pool_160450533-5_0_TargetStudy")), - getSelectedOptionValue(Locator.name("_pool_16140000611-5_3_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_16140000610-5_2_TargetStudy"), "[None]"); - selectOptionByText(Locator.name("_pool_16140000611-5_3_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_160450533-5_0_SpecimenIDs", "vial2", "vial3", "vial1", "foobar"); addSpecimenIds("_pool_159402032-5_1_SpecimenIDs", "vial1"); - addSpecimenIds("_pool_16140000610-5_2_SpecimenIDs", "vial2"); - addSpecimenIds("_pool_16140000611-5_3_SpecimenIDs", "vial3"); + addSpecimenIds("_pool_161400006.10-5_2_SpecimenIDs", "vial2"); + addSpecimenIds("_pool_161400006.11-5_3_SpecimenIDs", "vial3"); addSpecimenIds("_pool_161401643-5_4_SpecimenIDs", "xyzzy"); doAndWaitForPageToLoad(() -> From 8bf93d27e9a57d5b279cf8c3e87f906cbb8557b9 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Mon, 14 Jul 2025 12:49:32 -0700 Subject: [PATCH 15/15] More constants for field names --- src/org/labkey/test/AssayAPITest.java | 3 ++- .../test/components/assay/AssayConstants.java | 6 +++++- .../labkey/test/tests/AssayExportImportTest.java | 4 ++-- src/org/labkey/test/tests/TextChoiceTest.java | 4 ++-- src/org/labkey/test/tests/nab/NabAssayTest.java | 2 +- .../test/tests/nab/NabAssayThawListTest.java | 15 ++++++++------- .../tests/nab/NabHighThroughputAssayTest.java | 3 ++- .../test/tests/viability/ViabilityTest.java | 15 ++++++++------- src/org/labkey/test/util/APIAssayHelper.java | 3 ++- src/org/labkey/test/util/AssayImporter.java | 12 ++++++------ 10 files changed, 38 insertions(+), 29 deletions(-) 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/components/assay/AssayConstants.java b/src/org/labkey/test/components/assay/AssayConstants.java index 89bd7cce5b..71ead8ea20 100644 --- a/src/org/labkey/test/components/assay/AssayConstants.java +++ b/src/org/labkey/test/components/assay/AssayConstants.java @@ -4,9 +4,13 @@ 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("TargetStudy"); + 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/tests/AssayExportImportTest.java b/src/org/labkey/test/tests/AssayExportImportTest.java index 67eb2ba84d..55425bde69 100644 --- a/src/org/labkey/test/tests/AssayExportImportTest.java +++ b/src/org/labkey/test/tests/AssayExportImportTest.java @@ -588,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) diff --git a/src/org/labkey/test/tests/TextChoiceTest.java b/src/org/labkey/test/tests/TextChoiceTest.java index 42c6aec468..245912a65f 100644 --- a/src/org/labkey/test/tests/TextChoiceTest.java +++ b/src/org/labkey/test/tests/TextChoiceTest.java @@ -140,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); diff --git a/src/org/labkey/test/tests/nab/NabAssayTest.java b/src/org/labkey/test/tests/nab/NabAssayTest.java index 0b3f943278..2ae5a72fe5 100644 --- a/src/org/labkey/test/tests/nab/NabAssayTest.java +++ b/src/org/labkey/test/tests/nab/NabAssayTest.java @@ -542,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 ce7826f9e9..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; @@ -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,16 +191,16 @@ 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("Specimen 1_SpecimenID").withoutAttribute("value", "")); diff --git a/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java b/src/org/labkey/test/tests/nab/NabHighThroughputAssayTest.java index a823285851..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; @@ -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/viability/ViabilityTest.java b/src/org/labkey/test/tests/viability/ViabilityTest.java index 4b7a1da781..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; @@ -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()); @@ -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 2839f3af58..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; @@ -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 b2ef9dcaaa..d5e7be3068 100644 --- a/src/org/labkey/test/util/AssayImporter.java +++ b/src/org/labkey/test/util/AssayImporter.java @@ -42,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())); } }