Skip to content

Commit a1df458

Browse files
committed
Merge branch 'develop' into fb_bot_merge_25.7
2 parents c71ae82 + 193732e commit a1df458

19 files changed

+301
-194
lines changed

src/org/labkey/test/components/CustomizeView.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,9 @@ private WebElement expandPivots(CharSequence fieldKey)
367367
_driver.scrollIntoView(fieldRow, false);
368368
if (!StringUtils.trimToEmpty(fieldRow.getAttribute("class")).contains("expanded"))
369369
{
370-
Locator.css(".x4-tree-expander").findElement(fieldRow).click();
370+
WebElement expander = Locator.css(".x4-tree-expander").findElement(fieldRow);
371+
_driver.scrollIntoView(expander, true);
372+
expander.click();
371373
}
372374
Locator.tag("tr").withClass("x4-grid-tree-node-expanded").withAttribute("data-recordid", dataRecordId).waitForElement(getComponentElement(), 10000);
373375
WebDriverWrapper.waitFor(() -> Locator.css("tr[data-recordid] + tr:not(.x4-grid-row)").findElements(getComponentElement()).isEmpty(), 2000); // Spacer row appears during expansion animation

src/org/labkey/test/params/FieldDefinition.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,8 @@ else if (Character.isUpperCase(c) && Character.isLowerCase(chars[i - 1]))
123123
}
124124
}
125125

126-
return buf.toString();
126+
// Multiple spaces in the UI are collapsed into a single space
127+
return buf.toString().replaceAll("\\s+", " ");
127128
}
128129

129130
public String getEffectiveLabel()

src/org/labkey/test/params/FieldInfo.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.jetbrains.annotations.Contract;
44
import org.jetbrains.annotations.NotNull;
55
import org.labkey.test.params.FieldDefinition.ColumnType;
6+
import org.labkey.test.util.DomainUtils;
67
import org.labkey.test.util.EscapeUtil;
78
import org.labkey.test.util.TestDataGenerator;
89

@@ -53,13 +54,21 @@ public FieldInfo(String name)
5354
/**
5455
* Creates a FieldInfo with a semi-random name
5556
*/
56-
public static FieldInfo random(String namePart, ColumnType columnType)
57+
public static FieldInfo random(String namePart, ColumnType columnType, DomainUtils.DomainKind domainKind)
5758
{
58-
FieldInfo field = new FieldInfo(TestDataGenerator.randomFieldName(namePart), columnType);
59+
FieldInfo field = new FieldInfo(TestDataGenerator.randomFieldName(namePart, null, domainKind), columnType);
5960
field.setNamePart(namePart);
6061
return field;
6162
}
6263

64+
/**
65+
* Creates a FieldInfo with a semi-random name
66+
*/
67+
public static FieldInfo random(String namePart, ColumnType columnType)
68+
{
69+
return random(namePart, columnType, null);
70+
}
71+
6372
/**
6473
* Creates a String field with a semi-random name
6574
*/

src/org/labkey/test/params/experiment/DataClassDefinition.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,4 +168,14 @@ public TestDataGenerator getTestDataGenerator(String containerPath)
168168
{
169169
return super.getTestDataGenerator(containerPath).withColumns(List.of(new FieldDefinition("Name", FieldDefinition.ColumnType.String)));
170170
}
171+
172+
public FieldDefinition getFieldByNamePart(String namePart)
173+
{
174+
for (FieldDefinition field : getFields())
175+
{
176+
if (field.isNamePartMatch(namePart))
177+
return field;
178+
}
179+
throw new IllegalArgumentException("No field found with name part: " + namePart);
180+
}
171181
}

src/org/labkey/test/params/list/ListDefinition.java

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
package org.labkey.test.params.list;
22

33
import org.jetbrains.annotations.NotNull;
4-
import org.labkey.remoteapi.CommandException;
5-
import org.labkey.remoteapi.Connection;
64
import org.labkey.remoteapi.domain.Domain;
7-
import org.labkey.remoteapi.domain.InferDomainCommand;
85
import org.labkey.remoteapi.domain.PropertyDescriptor;
6+
import org.labkey.test.params.FieldDefinition;
97
import org.labkey.test.params.property.DomainProps;
108

11-
import java.io.File;
12-
import java.io.IOException;
139
import java.util.ArrayList;
1410
import java.util.HashMap;
1511
import java.util.List;
@@ -19,7 +15,7 @@ public abstract class ListDefinition extends DomainProps
1915
{
2016
private String _name;
2117
private String _description;
22-
private List<PropertyDescriptor> _fields = new ArrayList<>();
18+
private List<FieldDefinition> _fields = new ArrayList<>();
2319
private String _keyName;
2420
// API Options
2521
private String _titleColumn;
@@ -67,7 +63,7 @@ public List<PropertyDescriptor> getFields()
6763
return new ArrayList<>(_fields); // return a copy
6864
}
6965

70-
public ListDefinition setFields(List<? extends PropertyDescriptor> fields)
66+
public ListDefinition setFields(List<FieldDefinition> fields)
7167
{
7268
if (!fields.isEmpty() && getKeyName() == null)
7369
{
@@ -78,14 +74,7 @@ public ListDefinition setFields(List<? extends PropertyDescriptor> fields)
7874
return this;
7975
}
8076

81-
public ListDefinition inferFields(File dataFile, Connection connection) throws IOException, CommandException
82-
{
83-
return setFields(new InferDomainCommand(dataFile, getKind())
84-
.execute(connection, "/")
85-
.getFields());
86-
}
87-
88-
public ListDefinition addField(@NotNull PropertyDescriptor field)
77+
public ListDefinition addField(@NotNull FieldDefinition field)
8978
{
9079
if (getKeyName() == null)
9180
{
@@ -157,4 +146,14 @@ protected Map<String, Object> getOptions()
157146
}
158147

159148
protected abstract String getKeyType();
149+
150+
public FieldDefinition getFieldByNamePart(String namePart)
151+
{
152+
for (FieldDefinition field : _fields)
153+
{
154+
if (field.isNamePartMatch(namePart))
155+
return field;
156+
}
157+
throw new IllegalArgumentException("No field found with name part: " + namePart);
158+
}
160159
}

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,18 @@ public void testExportImportSimpleDataClass() throws Exception
9999
_containerHelper.createSubfolder(getProjectName(), subfolder);
100100

101101
DataClassDefinition testType = new DataClassDefinition(testDataClass).setFields(DataClassAPIHelper.dataClassTestFields());
102+
String intColumnName = testType.getFieldByNamePart("intColumn").getName();
103+
String decimalColumnName = testType.getFieldByNamePart("decimalColumn").getName();
104+
String stringColumnName = testType.getFieldByNamePart("stringColumn").getName();
105+
String attachmentColumnName = testType.getFieldByNamePart("attachmentColumn").getName();
102106

103107
TestDataGenerator testDgen = DataClassAPIHelper.createEmptyDataClass(subfolderPath, testType);
104108

105-
testDgen.addCustomRow(Map.of("Name", "class1", "intColumn", 7771, "decimalColumn", 1.1, "stringColumn", "one"));
106-
testDgen.addCustomRow(Map.of("Name", "class2", "intColumn", 7772, "decimalColumn", 2.2, "stringColumn", "two"));
107-
testDgen.addCustomRow(Map.of("Name", "class3", "intColumn", 7773, "decimalColumn", 3.3, "stringColumn", "three"));
108-
testDgen.addCustomRow(Map.of("Name", "class4", "intColumn", 7774, "decimalColumn", 4.4, "stringColumn", "four"));
109-
testDgen.addCustomRow(Map.of("Name", "class5", "intColumn", 7775, "decimalColumn", 5.5, "stringColumn", "five"));
109+
testDgen.addCustomRow(Map.of("Name", "class1", intColumnName, 7771, decimalColumnName, 1.1, stringColumnName, "one"));
110+
testDgen.addCustomRow(Map.of("Name", "class2", intColumnName, 7772, decimalColumnName, 2.2, stringColumnName, "two"));
111+
testDgen.addCustomRow(Map.of("Name", "class3", intColumnName, 7773, decimalColumnName, 3.3, stringColumnName, "three"));
112+
testDgen.addCustomRow(Map.of("Name", "class4", intColumnName, 7774, decimalColumnName, 4.4, stringColumnName, "four"));
113+
testDgen.addCustomRow(Map.of("Name", "class5", intColumnName, 7775, decimalColumnName, 5.5, stringColumnName, "five"));
110114
testDgen.insertRows();
111115

112116
PortalHelper portalHelper = new PortalHelper(this);
@@ -125,7 +129,7 @@ public void testExportImportSimpleDataClass() throws Exception
125129
// issue https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=42191 tracks this
126130
// until it is fixed we will have to add attachments via the UI, like this
127131
sourceTable.clickEditRow(i);
128-
setFormElement(Locator.input("quf_attachmentColumn"), _attachments.get(i));
132+
setFormElement(Locator.input("quf_" + attachmentColumnName), _attachments.get(i));
129133
clickButton("Submit");
130134
}
131135
List<Map<String, String>> sourceRowData = sourceTable.getTableData();

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.labkey.test.params.FieldInfo;
2121
import org.labkey.test.util.APIAssayHelper;
2222
import org.labkey.test.util.DataRegionTable;
23+
import org.labkey.test.util.DomainUtils;
2324
import org.labkey.test.util.PortalHelper;
2425
import org.labkey.test.util.TestDataGenerator;
2526

@@ -63,19 +64,19 @@ public void testProvisionedDomainFieldChanges() throws IOException, CommandExcep
6364
{
6465
log("Creating list with variety of data fields");
6566
String listName = TestDataGenerator.randomDomainName("SampleListWithAllDataTypes");
66-
FieldInfo stringField = new FieldInfo(TestDataGenerator.randomFieldName("name"), FieldDefinition.ColumnType.String);
67-
FieldInfo integerField = new FieldInfo(TestDataGenerator.randomFieldName("Test/Integer"), FieldDefinition.ColumnType.Integer);
68-
FieldInfo decimalField = new FieldInfo(TestDataGenerator.randomFieldName("Test/Decimal"), FieldDefinition.ColumnType.Decimal);
69-
FieldInfo dateField = new FieldInfo(TestDataGenerator.randomFieldName("Test/Date"), FieldDefinition.ColumnType.DateAndTime);
70-
FieldInfo booleanField = new FieldInfo(TestDataGenerator.randomFieldName("Test'/\"Boolean"), FieldDefinition.ColumnType.Boolean); // GH Issue #755
67+
FieldInfo stringField = FieldInfo.random("name", FieldDefinition.ColumnType.String, DomainUtils.DomainKind.IntList);
68+
FieldInfo integerField = FieldInfo.random("Test/Integer", FieldDefinition.ColumnType.Integer, DomainUtils.DomainKind.IntList);
69+
FieldInfo decimalField = FieldInfo.random("Test/Decimal", FieldDefinition.ColumnType.Decimal, DomainUtils.DomainKind.IntList);
70+
FieldInfo dateField = FieldInfo.random("Test/Date", FieldDefinition.ColumnType.DateAndTime, DomainUtils.DomainKind.IntList);
71+
FieldInfo booleanField = FieldInfo.random("Test'/\"Boolean", FieldDefinition.ColumnType.Boolean, DomainUtils.DomainKind.IntList); // GH Issue #755
7172
TestDataGenerator dgen = new TestDataGenerator("lists", listName, getProjectName())
7273
.withColumns(List.of(
7374
stringField.getFieldDefinition(),
7475
integerField.getFieldDefinition(),
7576
decimalField.getFieldDefinition(),
7677
dateField.getFieldDefinition(),
7778
booleanField.getFieldDefinition()));
78-
dgen.createDomain(createDefaultConnection(), "IntList", Map.of("keyName", "id"));
79+
dgen.createDomain(createDefaultConnection(), DomainUtils.DomainKind.IntList.name(), Map.of("keyName", "id"));
7980

8081
log("Inserting sample rows in the list");
8182
dgen.addCustomRow(Map.of(

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ public void testDataClassExportOptions() throws IOException, CommandException
6767

6868
DataClassDefinition testType = new DataClassDefinition(dataClassName).setFields(DataClassAPIHelper.dataClassTestFields());
6969
TestDataGenerator testDgen = DataClassAPIHelper.createEmptyDataClass(getProjectName(), testType);
70-
testDgen.addCustomRow(Map.of("Name", "class1", "intColumn", 1, "decimalColumn", 1.1, "stringColumn", "one"));
71-
testDgen.addCustomRow(Map.of("Name", "class2", "intColumn", 2, "decimalColumn", 2.2, "stringColumn", "two"));
70+
testDgen.addCustomRow(Map.of("Name", "class1"));
71+
testDgen.addCustomRow(Map.of("Name", "class2"));
7272
testDgen.insertRows();
7373

7474
log("Export data class design only");

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -448,9 +448,9 @@ public void testExportImportDerivedSamples() throws Exception
448448
.addParentAlias("SelfParent"); // to derive from samles in the current type
449449

450450
TestDataGenerator dataClassDgen = DataClassAPIHelper.createEmptyDataClass(subfolderPath, dataClassType);
451-
dataClassDgen.addCustomRow(Map.of("Name", "data1", "intColumn", 1, "stringColumn", "one"));
452-
dataClassDgen.addCustomRow(Map.of("Name", "data2", "intColumn", 2, "stringColumn", "two"));
453-
dataClassDgen.addCustomRow(Map.of("Name", "data3", "intColumn", 3, "stringColumn", "three"));
451+
dataClassDgen.addCustomRow(Map.of("Name", "data1"));
452+
dataClassDgen.addCustomRow(Map.of("Name", "data2"));
453+
dataClassDgen.addCustomRow(Map.of("Name", "data3"));
454454
dataClassDgen.insertRows();
455455

456456
TestDataGenerator parentDgen = SampleTypeAPIHelper.createEmptySampleType(subfolderPath, parentType);

0 commit comments

Comments
 (0)