Skip to content

Commit 05a6544

Browse files
committed
GitHub Issue 1219: CustomizeViewTest test case for saveQueryView with wide column list in view
1 parent 82d4674 commit 05a6544

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

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

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.labkey.test.util.SummaryStatisticsHelper;
3636
import org.labkey.test.util.TestDataGenerator;
3737

38+
import java.util.ArrayList;
3839
import java.util.List;
3940
import java.util.Map;
4041

@@ -75,6 +76,12 @@ public class CustomizeViewTest extends BaseWebDriverTest
7576
{ "7", "Yak", "Yakson", "88", "" },
7677
};
7778

79+
// GitHub Issue 1219: a deliberately wide list used to verify that summary statistics save action
80+
private final static String WIDE_LIST_NAME = "WideListTest";
81+
private final static String WIDE_LIST_KEY_COLUMN = "Key";
82+
private final static int WIDE_LIST_COLUMN_COUNT = 160;
83+
private final static String WIDE_STAT_COLUMN = "Field001";
84+
7885
private SummaryStatisticsHelper _summaryStatisticsHelper;
7986

8087
@Override
@@ -94,6 +101,7 @@ private void doSetup() throws Exception
94101
{
95102
_containerHelper.createProject(PROJECT_NAME, null);
96103
createList();
104+
createWideList();
97105
}
98106

99107
@Before
@@ -234,6 +242,21 @@ public void testRemoveViaColumnHeader()
234242
assertThat(drt.getColumnLabels(), hasItem("Last Name"));
235243
}
236244

245+
// GitHub Issue 1219: Adding a summary statistic must work on very wide datasets
246+
@Test
247+
public void testSummaryStatisticsOnWideDataset()
248+
{
249+
GridPage.beginAt(this, PROJECT_NAME, WIDE_LIST_NAME);
250+
DataRegionTable drt = new DataRegionTable("query", getDriver());
251+
252+
log("Set summary statistic on a wide (" + WIDE_LIST_COLUMN_COUNT + "-column) dataset");
253+
drt.setSummaryStatistic(WIDE_STAT_COLUMN, SummaryStatisticsHelper.BASE_STAT_SUM, "60");
254+
assertTrue("Summary statistic row didn't appear; the saveQueryViews request likely exceeded the server JSON input limit (Issue 1219)",
255+
drt.hasSummaryStatisticRow());
256+
String summaryStatStr = SummaryStatisticsHelper.BASE_STAT_SUM + ": 60";
257+
assertEquals("Wrong summary statistics", summaryStatStr, _summaryStatisticsHelper.getSummaryStatisticFooterAsString(drt, WIDE_STAT_COLUMN));
258+
}
259+
237260
@Test
238261
public void testFilteringAndSorting()
239262
{
@@ -401,6 +424,24 @@ private void createList() throws Exception
401424
testDataGenerator.insertRows(createDefaultConnection());
402425
}
403426

427+
// GitHub Issue 1219: create a wide list
428+
private void createWideList() throws Exception
429+
{
430+
List<FieldDefinition> fields = new ArrayList<>();
431+
for (int i = 1; i <= WIDE_LIST_COLUMN_COUNT; i++)
432+
fields.add(new FieldDefinition(String.format("Field%03d", i), ColumnType.Integer));
433+
434+
ListDefinition listDefinition = new IntListDefinition(WIDE_LIST_NAME, WIDE_LIST_KEY_COLUMN).setFields(fields);
435+
TestDataGenerator testDataGenerator = listDefinition.create(createDefaultConnection(), PROJECT_NAME);
436+
437+
// Only the key and the column under test need values; the remaining columns stay null. Sum == 60.
438+
testDataGenerator.addCustomRow(Map.of(WIDE_LIST_KEY_COLUMN, "1", WIDE_STAT_COLUMN, "10"));
439+
testDataGenerator.addCustomRow(Map.of(WIDE_LIST_KEY_COLUMN, "2", WIDE_STAT_COLUMN, "20"));
440+
testDataGenerator.addCustomRow(Map.of(WIDE_LIST_KEY_COLUMN, "3", WIDE_STAT_COLUMN, "30"));
441+
442+
testDataGenerator.insertRows(createDefaultConnection());
443+
}
444+
404445
private void setColumns(String... columnNames)
405446
{
406447
_customizeViewsHelper.openCustomizeViewPanel();

0 commit comments

Comments
 (0)