Skip to content
Merged
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
41 changes: 41 additions & 0 deletions src/org/labkey/test/tests/CustomizeViewTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.labkey.test.util.SummaryStatisticsHelper;
import org.labkey.test.util.TestDataGenerator;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

Expand Down Expand Up @@ -75,6 +76,12 @@ public class CustomizeViewTest extends BaseWebDriverTest
{ "7", "Yak", "Yakson", "88", "" },
};

// GitHub Issue 1219: a deliberately wide list used to verify that summary statistics save action
private final static String WIDE_LIST_NAME = "WideListTest";
private final static String WIDE_LIST_KEY_COLUMN = "Key";
private final static int WIDE_LIST_COLUMN_COUNT = 160;
private final static String WIDE_STAT_COLUMN = "Field001";

private SummaryStatisticsHelper _summaryStatisticsHelper;

@Override
Expand All @@ -94,6 +101,7 @@ private void doSetup() throws Exception
{
_containerHelper.createProject(PROJECT_NAME, null);
createList();
createWideList();
}

@Before
Expand Down Expand Up @@ -234,6 +242,21 @@ public void testRemoveViaColumnHeader()
assertThat(drt.getColumnLabels(), hasItem("Last Name"));
}

// GitHub Issue 1219: Adding a summary statistic must work on very wide datasets
@Test
public void testSummaryStatisticsOnWideDataset()
{
GridPage.beginAt(this, PROJECT_NAME, WIDE_LIST_NAME);
DataRegionTable drt = new DataRegionTable("query", getDriver());

log("Set summary statistic on a wide (" + WIDE_LIST_COLUMN_COUNT + "-column) dataset");
drt.setSummaryStatistic(WIDE_STAT_COLUMN, SummaryStatisticsHelper.BASE_STAT_SUM, "60");
assertTrue("Summary statistic row didn't appear; the saveQueryViews request likely exceeded the server JSON input limit (Issue 1219)",
drt.hasSummaryStatisticRow());
String summaryStatStr = SummaryStatisticsHelper.BASE_STAT_SUM + ": 60";
assertEquals("Wrong summary statistics", summaryStatStr, _summaryStatisticsHelper.getSummaryStatisticFooterAsString(drt, WIDE_STAT_COLUMN));
}

@Test
public void testFilteringAndSorting()
{
Expand Down Expand Up @@ -401,6 +424,24 @@ private void createList() throws Exception
testDataGenerator.insertRows(createDefaultConnection());
}

// GitHub Issue 1219: create a wide list
private void createWideList() throws Exception
{
List<FieldDefinition> fields = new ArrayList<>();
for (int i = 1; i <= WIDE_LIST_COLUMN_COUNT; i++)
fields.add(new FieldDefinition(String.format("Field%03d", i), ColumnType.Integer));

ListDefinition listDefinition = new IntListDefinition(WIDE_LIST_NAME, WIDE_LIST_KEY_COLUMN).setFields(fields);
TestDataGenerator testDataGenerator = listDefinition.create(createDefaultConnection(), PROJECT_NAME);

// Only the key and the column under test need values; the remaining columns stay null. Sum == 60.
testDataGenerator.addCustomRow(Map.of(WIDE_LIST_KEY_COLUMN, "1", WIDE_STAT_COLUMN, "10"));
testDataGenerator.addCustomRow(Map.of(WIDE_LIST_KEY_COLUMN, "2", WIDE_STAT_COLUMN, "20"));
testDataGenerator.addCustomRow(Map.of(WIDE_LIST_KEY_COLUMN, "3", WIDE_STAT_COLUMN, "30"));

testDataGenerator.insertRows(createDefaultConnection());
}

private void setColumns(String... columnNames)
{
_customizeViewsHelper.openCustomizeViewPanel();
Expand Down