Skip to content
Closed
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
15 changes: 15 additions & 0 deletions src/org/labkey/test/components/domain/DomainFieldRow.java
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,19 @@ public DomainFieldRow setUrl(String url)
return this;
}

public boolean isUrlOpenNewTab()
{
expand();
return elementCache().urlTargetCheckbox.get();
}

public DomainFieldRow setUrlOpenNewTab(boolean checked)
{
expand();
elementCache().urlTargetCheckbox.set(checked);
return this;
}

//
// numeric field options.

Expand Down Expand Up @@ -1638,6 +1651,8 @@ protected class ElementCache extends WebDriverComponent.ElementCache
.refindWhenNeeded(this), getDriver());
public final Input urlInput = new Input(Locator.tagWithAttributeContaining("input", "id", "domainpropertiesrow-URL-")
.refindWhenNeeded(this), getDriver());
protected final Locator urlTargetCheckboxLoc = Locator.input("domainpropertiesrow-URLTarget");
public final Checkbox urlTargetCheckbox = new Checkbox(urlTargetCheckboxLoc.refindWhenNeeded(this).withTimeout(WAIT_FOR_JAVASCRIPT));

// numeric field options
public final Select defaultScaleTypeSelect = SelectWrapper.Select(Locator.name("domainpropertiesrow-defaultScale"))
Expand Down
2 changes: 2 additions & 0 deletions src/org/labkey/test/components/domain/DomainFormPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,8 @@ else if (fieldDefinition.getType().equals(FieldDefinition.ColumnType.DateAndTime
fieldRow.setCharCount(fieldDefinition.getScale());
if (fieldDefinition.getURL() != null)
fieldRow.setUrl(fieldDefinition.getURL());
if (fieldDefinition.isURLOpenNewTab())
fieldRow.setUrlOpenNewTab(fieldDefinition.isURLOpenNewTab());
if (fieldDefinition.getImportAliases() != null)
fieldRow.setImportAliases(fieldDefinition.getImportAliases());
if (fieldDefinition.getRequired())
Expand Down
12 changes: 12 additions & 0 deletions src/org/labkey/test/params/FieldDefinition.java
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,18 @@ public FieldDefinition setURL(String url)
return this;
}

public boolean isURLOpenNewTab()
{
Object val = getFieldProperty("URLTarget");
return "_blank".equals(val);
}

public FieldDefinition setURLOpenNewTab(boolean openNewTab)
{
setFieldProperty("URLTarget", openNewTab ? "_blank" : null);
return this;
}

public String getImportAliases()
{
return (String) getFieldProperty("importAliases");
Expand Down
5 changes: 4 additions & 1 deletion src/org/labkey/test/tests/ContainerContextTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,8 @@ public void testListLookupURL() throws Exception
log("** Creating lookup target list in sub-folder");
List<FieldDefinition> lookupTargetCols = List.of(
new FieldDefinition("LookupName", FieldDefinition.ColumnType.String).setDescription("Lookup Name"),
new FieldDefinition("LookupAge", FieldDefinition.ColumnType.Integer).setDescription("Lookup Age").setURL("fake/action.view?key=${Key}")
new FieldDefinition("LookupAge", FieldDefinition.ColumnType.Integer).setDescription("Lookup Age")
.setURL("fake/action.view?key=${Key}").setURLOpenNewTab(true)
);
String lookupTargetListName = SUB_FOLDER_A + "-LookupTarget-List";
TestDataGenerator subfolderDgen = new IntListDefinition(lookupTargetListName, LIST_KEY_NAME).setFields(lookupTargetCols)
Expand Down Expand Up @@ -202,6 +203,8 @@ public void testListLookupURL() throws Exception
href = getAttribute(Locator.linkWithText("200"), "href");
assertTrue("Expected ListLookup/LookupAge link to go to " + getProjectName() + "/" + SUB_FOLDER_A + " container, href=" + href,
href.contains(getProjectName() + "/" + SUB_FOLDER_A) && href.contains("fake") && href.contains("action.view?key=2"));

assertEquals("Expected LookupAge link target to be _blank", "_blank", getAttribute(Locator.linkWithText("200"), "target"));
}

// Issue 15751: Pipeline job list generates URLs without correct container
Expand Down
13 changes: 12 additions & 1 deletion src/org/labkey/test/tests/DomainDesignerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -1676,6 +1676,11 @@ public void testExportImportListFields() throws Exception
verifyExpectedFieldProperties(createdField, exportedField);
}

// verify URL settings for the boolean field
DomainFieldRow boolFieldRow = domainDesignerPage.fieldsPanel().getField("booleanField");
checker().verifyEquals("URL value not retained after import/export", "fake/list-def.url", boolFieldRow.getUrl());
checker().verifyEquals("URL open in new tab value not retained after import/export", true, boolFieldRow.isUrlOpenNewTab());

// now create a list with the set of created Keys
String roundTripList = "roundTripListNameCreatedFromJsonFields";
EditListDefinitionPage listDefPage = _listHelper.beginCreateList(getProjectName(), roundTripList);
Expand Down Expand Up @@ -1746,6 +1751,11 @@ public void testFileImportFieldsToNewSampleType() throws Exception
roundTrippedFields.get(i).getName(), is(uiFields.get(i)));
}
assertThat(exportedFields.keySet(), is(roundTrippedFields.keySet()));

// verify URL settings for the boolean field
DomainFieldRow boolFieldRow = sampleTypeDesignerPage.fieldsPanel().getField("booleanField");
checker().verifyEquals("URL value not retained after import/export", "fake/list-def.url", boolFieldRow.getUrl());
checker().verifyEquals("URL open in new tab value not retained after import/export", true, boolFieldRow.isUrlOpenNewTab());
}

@Test
Expand Down Expand Up @@ -1793,7 +1803,8 @@ private List<PropertyDescriptor> importExportTestFields()
fields.add(new FieldDefinition("booleanField", FieldDefinition.ColumnType.Boolean)
.setLabel("Boolean Field")
.setRequired(true)
.setURL("fake/list-def.url"));
.setURL("fake/list-def.url")
.setURLOpenNewTab(true));
fields.add(new FieldDefinition("attachmentField", FieldDefinition.ColumnType.Attachment)
.setHidden(true));
fields.add(new FieldDefinition("decimalField", FieldDefinition.ColumnType.Decimal).
Expand Down
9 changes: 7 additions & 2 deletions src/org/labkey/test/tests/LinkedSchemaTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,7 @@ public class LinkedSchemaTest extends BaseWebDriverTest
" <column columnName=\"R\">\n" +
" <columnTitle>A_People template Query R</columnTitle>\n" +
" <url>fake/a_template_metadata.view</url>\n" +
" <urlTarget>_blank</urlTarget>\n" +
" </column>\n" +
" </columns>\n" +
" </table>\n" +
Expand Down Expand Up @@ -668,8 +669,8 @@ void createList() throws IOException, CommandException
.addField(new FieldDefinition("Name", FieldDefinition.ColumnType.String).setLabel("Name").setDescription("Name"))
.addField(new FieldDefinition("Age", FieldDefinition.ColumnType.Integer).setLabel("Age").setDescription("Age"))
.addField(new FieldDefinition("Crazy", FieldDefinition.ColumnType.Boolean).setLabel("Crazy").setDescription("Crazy?"))
.addField(new FieldDefinition("P", FieldDefinition.ColumnType.String).setLabel(LIST_DEF_TITLE + " P").setURL("fake/" + LIST_DEF_URL))
.addField(new FieldDefinition("Q", FieldDefinition.ColumnType.String).setLabel(LIST_DEF_TITLE + " Q").setURL("fake/" + LIST_DEF_URL))
.addField(new FieldDefinition("P", FieldDefinition.ColumnType.String).setLabel(LIST_DEF_TITLE + " P").setURL("fake/" + LIST_DEF_URL).setURLOpenNewTab(false))
.addField(new FieldDefinition("Q", FieldDefinition.ColumnType.String).setLabel(LIST_DEF_TITLE + " Q").setURL("fake/" + LIST_DEF_URL).setURLOpenNewTab(true))
.addField(new FieldDefinition("R", FieldDefinition.ColumnType.String).setLabel(LIST_DEF_TITLE + " R").setURL("fake/" + LIST_DEF_URL))
.addField(new FieldDefinition("S", FieldDefinition.ColumnType.String).setLabel(LIST_DEF_TITLE + " S").setURL("fake/" + LIST_DEF_URL))
.addField(new FieldDefinition("T", FieldDefinition.ColumnType.String).setLabel(LIST_DEF_TITLE + " T").setURL("fake/" + LIST_DEF_URL))
Expand Down Expand Up @@ -736,7 +737,9 @@ void verifyLinkedSchema()
assertEquals("Expected to filter table to only Adam", "Adam", table.getDataAsText(0, A_PEOPLE_METADATA_TITLE));
log("** Verify table metadata overrides when simplemodule is not active in TargetFolder");
assertHrefContains(table, "A_People db_metadata List P", "a_db_metadata.view");
assertEquals("P link target not as expected", "", table.getLinkAttribute(0, table.getColumnIndexStrict("A_People db_metadata List P"), "target"));
assertHrefContains(table, "A_People db_metadata List Q", "a_db_metadata.view");
assertEquals("Q link target not as expected", "_blank", table.getLinkAttribute(0, table.getColumnIndexStrict("A_People db_metadata List Q"), "target"));
assertHrefContains(table, "A_People db_metadata List R", "a_db_metadata.view");
assertHrefContains(table, "A_People db_metadata List S", "a_db_metadata.view");
assertHrefContains(table, "A_People template List T", "a_template_metadata.view");
Expand Down Expand Up @@ -779,7 +782,9 @@ void verifyLinkedSchema()
impersonate(READER_USER);
assertHrefContains(table, "A_People db_metadata Query P", "a_db_metadata.view");
assertHrefContains(table, "A_People file_metadata Query Q", "a_template_file_metadata.view");
assertEquals("Q link target not as expected", "_blank", table.getLinkAttribute(0, table.getColumnIndexStrict("A_People file_metadata Query Q"), "target"));
assertHrefContains(table, "A_People template Query R", "a_template_metadata.view");
assertEquals("R link target not as expected", "_blank", table.getLinkAttribute(0, table.getColumnIndexStrict("A_People template Query R"), "target"));
// Columns S-Z have their URL removed by the linked schema.
assertHrefNotPresent(table, "file_metadata Query S");
assertHrefNotPresent(table, "file_metadata Query T");
Expand Down
7 changes: 6 additions & 1 deletion src/org/labkey/test/util/DataRegionTable.java
Original file line number Diff line number Diff line change
Expand Up @@ -765,7 +765,7 @@ public String getHref(int row, int column)

private String _getHref(int row, int column)
{
return link(row, column).getAttribute("href");
return getLinkAttribute(row, column, "href");
}

public String getHref(int row, CharSequence columnIdentifier)
Expand All @@ -792,6 +792,11 @@ public boolean hasHref(int row, CharSequence columnIdentifier)
return hasHref(row, getColumnIndexStrict(columnIdentifier));
}

public String getLinkAttribute(int row, int column, String attr)
{
return link(row, column).getAttribute(attr);
}

public WebElement getFlag(int row, CharSequence columnIdentifier)
{
var cell = findCell(row, columnIdentifier);
Expand Down