Skip to content

Issue 53306: Some LKS forms don't distinguish between fields properly #2521

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 20 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions src/org/labkey/test/WebDriverWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -2713,15 +2713,6 @@ public String getFormElement(WebElement el)
return el.getDomProperty("value");
}

/**
* @deprecated Use {@link org.junit.Assert#assertEquals(String, Object, Object) and {@link #getFormElement(Locator)}}
*/
@Deprecated
public void assertFormElementEquals(Locator loc, String value)
{
assertEquals(value, getFormElement(loc));
}

/**
* @deprecated Use {@link org.junit.Assert#assertEquals(String, Object, Object)} and
* {@link #getSelectedOptionText(Locator)}
Expand Down
12 changes: 12 additions & 0 deletions src/org/labkey/test/components/assay/AssayConstants.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
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 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");
}
4 changes: 2 additions & 2 deletions src/org/labkey/test/pages/issues/BaseUpdatePage.java
Original file line number Diff line number Diff line change
Expand Up @@ -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");
}
Expand Down
2 changes: 1 addition & 1 deletion src/org/labkey/test/params/FieldDefinition.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
51 changes: 28 additions & 23 deletions src/org/labkey/test/tests/AssayExportImportTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -68,6 +69,10 @@
@BaseWebDriverTest.ClassTimeout(minutes = 10)
public class AssayExportImportTest extends BaseWebDriverTest
{
public static final String INSTRUMENT_SETTING_FIELD_NAME = "instrumentSetting";
public static final String RUN_FILE_FIELD_NAME = "runFileField";
public static final String OPERATOR_EMAIL_FIELD_NAME = "operatorEmail";
public static final String INSTRUMENT_FIELD_NAME = "instrument";
private final String ASSAY_PROJECT_FOR_EXPORT_01 = "Assay_Project_For_Export_ByFilesWebPart";
private final String ASSAY_PROJECT_FOR_IMPORT_01 = "Assay_Project_For_Import_ByFilesWebPart";
private final String ASSAY_PROJECT_FOR_EXPORT_02 = "Assay_Project_For_Export_ByFile";
Expand Down Expand Up @@ -170,16 +175,16 @@ private Integer createSimpleProjectAndAssay(String projectName, String assayName
protocol.getDomains().forEach(domain -> domains.put(domain.getName(), domain));

Domain batchDomain = domains.get("Batch Fields");
batchDomain.getFields().add(new FieldDefinition("operatorEmail", ColumnType.String));
batchDomain.getFields().add(new FieldDefinition("instrument", ColumnType.String)
batchDomain.getFields().add(new FieldDefinition(OPERATOR_EMAIL_FIELD_NAME, ColumnType.String));
batchDomain.getFields().add(new FieldDefinition(INSTRUMENT_FIELD_NAME, ColumnType.String)
.setDescription("The diagnostic test instrument."));

Domain runDomain = domains.get("Run Fields");
List<PropertyDescriptor> 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);

Expand Down Expand Up @@ -236,7 +241,7 @@ public void populateAssay(String projectName, String assayName, boolean useFiles
clickAndWait(Locator.lkButton("Import Data"));
}

waitForElement(Locator.tagWithName("select", "targetStudy"));
waitForElement(AssayConstants.TARGET_STUDY_FIELD_LOCATOR);

if(null != batchProperties)
{
Expand Down Expand Up @@ -267,7 +272,7 @@ public void populateAssay(String projectName, String assayName, boolean useFiles
if (fileIndex < runProperties.size())
{
clickAndWait(Locator.lkButton("Save and Import Another Run"));
waitForElement(Locator.tagWithName("input", "instrumentSetting"));
waitForElement(Locator.tagWithName("input", INSTRUMENT_SETTING_FIELD_NAME));
}

}
Expand All @@ -276,7 +281,7 @@ public void populateAssay(String projectName, String assayName, boolean useFiles
if (isElementPresent(Locator.lkButton("Save and Import Another Run")))
{
clickAndWait(Locator.lkButton("Save and Import Another Run"));
waitForElement(Locator.tagWithName("input", "instrumentSetting"));
waitForElement(Locator.tagWithName("input", INSTRUMENT_SETTING_FIELD_NAME));
}
}

Expand Down Expand Up @@ -383,14 +388,14 @@ public void validateImportingFileUsingFilesWebPart() throws Exception
RUN04_FILE);

Map<String, String> 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<Map<String, String>> 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);
Expand Down Expand Up @@ -478,14 +483,14 @@ public void validateImportingFileUsingRunProperties() throws Exception
RUN04_FILE);

Map<String, String> 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<Map<String, String>> 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);
Expand Down Expand Up @@ -665,25 +670,25 @@ public void testExportXarToPipeline() throws Exception
ImportRunCommand run1 = new ImportRunCommand(assayId, RUN01_FILE);
run1.setName(RUN01_NAME);
run1.setComment(commentPrefix + RUN01_NAME);
run1.setProperties(Maps.of("instrumentSetting", instrumentSetting));
run1.setProperties(Maps.of(INSTRUMENT_SETTING_FIELD_NAME, instrumentSetting));
run1.execute(cn, exportProject);

ImportRunCommand run2 = new ImportRunCommand(assayId, RUN02_FILE);
run2.setName(RUN02_NAME);
run2.setComment(commentPrefix + RUN02_NAME);
run2.setProperties(Maps.of("instrumentSetting", instrumentSetting));
run2.setProperties(Maps.of(INSTRUMENT_SETTING_FIELD_NAME, instrumentSetting));
run2.execute(cn, exportProject);

ImportRunCommand run3 = new ImportRunCommand(assayId, RUN03_FILE);
run3.setName(RUN03_NAME);
run3.setComment(commentPrefix + RUN03_NAME);
run3.setProperties(Maps.of("instrumentSetting", instrumentSetting));
run3.setProperties(Maps.of(INSTRUMENT_SETTING_FIELD_NAME, instrumentSetting));
run3.execute(cn, exportProject);

ImportRunCommand run4 = new ImportRunCommand(assayId, RUN04_XLSX_FILE);
run4.setName(RUN04_NAME);
run4.setComment(commentPrefix + RUN04_NAME);
run4.setProperties(Maps.of("instrumentSetting", instrumentSetting));
run4.setProperties(Maps.of(INSTRUMENT_SETTING_FIELD_NAME, instrumentSetting));
run4.execute(cn, exportProject);

List<String> runColumns = Arrays.asList("adjustedM1", "M2");
Expand Down
3 changes: 2 additions & 1 deletion src/org/labkey/test/tests/DatasetExportTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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");
}
Expand Down
3 changes: 2 additions & 1 deletion src/org/labkey/test/tests/DomainFieldTypeChangeTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.labkey.test.WebTestHelper;
import org.labkey.test.categories.Daily;
import org.labkey.test.components.DomainDesignerPage;
import org.labkey.test.components.assay.AssayConstants;
import org.labkey.test.components.domain.DomainFormPanel;
import org.labkey.test.pages.ReactAssayDesignerPage;
import org.labkey.test.pages.query.UpdateQueryRowPage;
Expand Down Expand Up @@ -178,7 +179,7 @@ public void testNonProvisionedDomainFieldChanges()
checkCheckbox(Locator.name("batchTestBoolean"));
clickButton("Next");

setFormElement(Locator.name("name"), runName);
setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName);
setFormElement(Locator.name("runTestInteger"), "12");
setFormElement(Locator.name("runTestDecimal"), "1.12");
setFormElement(Locator.name("runTestDate"), "01-03-2022");
Expand Down
3 changes: 2 additions & 1 deletion src/org/labkey/test/tests/FileAttachmentColumnTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -282,7 +283,7 @@ public void testAssayFileFieldsUI() throws Exception
clickButton("Next"); // batch properties

// run properties
setFormElement(Locator.input("name"), runName);
setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName);
setFormElement(Locator.input(RUN_TXT_COL), "run text");
setFormElement(Locator.input(RUN_FILE_COL), runFileFieldFile);
checkRadioButton(Locator.inputById("Fileupload"));
Expand Down
49 changes: 24 additions & 25 deletions src/org/labkey/test/tests/FilterTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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})
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -284,15 +283,15 @@ public void testContainerFilterFacet() throws Exception

HashMap<String, String> 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<String, String> 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");
Expand All @@ -310,15 +309,15 @@ public void testContainerFilterFacet() throws Exception

HashMap<String, String> 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<String, String> 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();
Expand All @@ -337,26 +336,26 @@ public void testContainerFilterFacet() throws Exception
assertElementPresent(Locator.linkWithText(subfolderIssue2.get("title")));

verifyFacetOptions(region, "Type",
projectIssue.get("type"),
projectIssue2.get("type"),
subfolderIssue.get("type"),
subfolderIssue2.get("type"));
projectIssue.get("Type"),
projectIssue2.get("Type"),
subfolderIssue.get("Type"),
subfolderIssue2.get("Type"));

verifyFacetOptions(region, "Priority",
projectIssue.get("priority"),
projectIssue2.get("priority"),
subfolderIssue.get("priority"),
subfolderIssue2.get("priority"));
projectIssue.get("Priority"),
projectIssue2.get("Priority"),
subfolderIssue.get("Priority"),
subfolderIssue2.get("Priority"));

region.setFacetedFilter("Priority", projectIssue2.get("priority"), subfolderIssue.get("priority"));
region.setFacetedFilter("Priority", projectIssue2.get("Priority"), subfolderIssue.get("Priority"));
assertElementNotPresent(Locator.linkWithText(projectIssue.get("title")));
assertElementPresent(Locator.linkWithText(projectIssue2.get("title")));
assertElementPresent(Locator.linkWithText(subfolderIssue.get("title")));
assertElementNotPresent(Locator.linkWithText(subfolderIssue2.get("title")));

verifyFacetOptions(region, "Type",
projectIssue2.get("type"),
subfolderIssue.get("type"));
projectIssue2.get("Type"),
subfolderIssue.get("Type"));
}

private void verifyFacetOptions(DataRegionTable dataRegion, String column, String... options)
Expand Down
Loading