Skip to content

Commit 335bfd9

Browse files
authored
Testresults module: form-based parameter binding, UserSchema registration, and Selenium tests (#622)
- `TestResultsSchema `extends UserSchema with DefaultSchema.registerProvider() registration, FK lookup columns, and wrapAllColumns() in createTable() - _Post-deploy_: Delete external schema on skyline.ms since the code-level registration now supersedes it. - Added form classes replacing all request.getParameter() calls across all actions - Integer/Boolean for optional form parameters with null guards and descriptive error messages - ParseException handling with SimpleErrorView for date parameters - `cause` field added to error API responses; JSP alert messages updated to display it - Added addNavTrail overrides to prevent missing page title warnings - New `TestResultsTest` Selenium test class covering begin page, show run, run lookup, user runs, long-term trends, failures, flagging, and training data workflows - `BeginAction` (rundown page, date navigation, viewType selector) - `ShowRunAction` (run detail, pass sorting) - `ShowUserAction` (user page, date range) - `LongTermAction` (viewType selector) - `ShowFailuresAction` (failure detail, viewType selector) - `FlagRunAction` / `ShowFlaggedAction` (flag/unflag workflow) - `TrainRunAction` / `TrainingDataViewAction` (add/remove training set workflow) - `ViewLogAction` (view run log) - `ViewXMLAction` (view run XML) - `ChangeBoundariesAction` (update warning/error boundaries) - `SetUserActiveAction` (activate/deactivate user) - `DeleteRunAction` (delete a run) - Replaced deprecated `javax.management.modelmbean.XMLParseException` with `IllegalArgumentException` - Switched from `org.springframework.util.StringUtils` to `org.apache.commons.lang3.StringUtils`
1 parent 44df5a5 commit 335bfd9

19 files changed

Lines changed: 2879 additions & 229 deletions

testresults/resources/schemas/testresults.xml

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,13 @@
2727
<table tableName="handleleaks" tableDbType="TABLE">
2828
<columns>
2929
<column columnName="id"/>
30-
<column columnName="testrunid"/>
30+
<column columnName="testrunid">
31+
<fk>
32+
<fkDbSchema>testresults</fkDbSchema>
33+
<fkTable>testruns</fkTable>
34+
<fkColumnName>id</fkColumnName>
35+
</fk>
36+
</column>
3137
<column columnName="testname"/>
3238
<column columnName="handles"/>
3339
<column columnName="type"/>
@@ -36,7 +42,13 @@
3642
<table tableName="hangs" tableDbType="TABLE">
3743
<columns>
3844
<column columnName="id"/>
39-
<column columnName="testrunid"/>
45+
<column columnName="testrunid">
46+
<fk>
47+
<fkDbSchema>testresults</fkDbSchema>
48+
<fkTable>testruns</fkTable>
49+
<fkColumnName>id</fkColumnName>
50+
</fk>
51+
</column>
4052
<column columnName="testname"/>
4153
<column columnName="pass"/>
4254
<column columnName="timestamp"/>
@@ -46,7 +58,13 @@
4658
<table tableName="memoryleaks" tableDbType="TABLE">
4759
<columns>
4860
<column columnName="id"/>
49-
<column columnName="testrunid"/>
61+
<column columnName="testrunid">
62+
<fk>
63+
<fkDbSchema>testresults</fkDbSchema>
64+
<fkTable>testruns</fkTable>
65+
<fkColumnName>id</fkColumnName>
66+
</fk>
67+
</column>
5068
<column columnName="testname"/>
5169
<column columnName="bytes"/>
5270
<column columnName="type"/>
@@ -55,7 +73,13 @@
5573
<table tableName="testfails" tableDbType="TABLE">
5674
<columns>
5775
<column columnName="id"/>
58-
<column columnName="testrunid"/>
76+
<column columnName="testrunid">
77+
<fk>
78+
<fkDbSchema>testresults</fkDbSchema>
79+
<fkTable>testruns</fkTable>
80+
<fkColumnName>id</fkColumnName>
81+
</fk>
82+
</column>
5983
<column columnName="testname"/>
6084
<column columnName="pass"/>
6185
<column columnName="testid"/>
@@ -67,7 +91,13 @@
6791
<table tableName="testpasses" tableDbType="TABLE">
6892
<columns>
6993
<column columnName="id"/>
70-
<column columnName="testrunid"/>
94+
<column columnName="testrunid">
95+
<fk>
96+
<fkDbSchema>testresults</fkDbSchema>
97+
<fkTable>testruns</fkTable>
98+
<fkColumnName>id</fkColumnName>
99+
</fk>
100+
</column>
71101
<column columnName="testname"/>
72102
<column columnName="pass"/>
73103
<column columnName="testid"/>
@@ -91,7 +121,13 @@
91121
<column columnName="container"/>
92122
<column columnName="flagged"/>
93123
<column columnName="timestamp"/>
94-
<column columnName="userid"/>
124+
<column columnName="userid">
125+
<fk>
126+
<fkDbSchema>testresults</fkDbSchema>
127+
<fkTable>user</fkTable>
128+
<fkColumnName>id</fkColumnName>
129+
</fk>
130+
</column>
95131
<column columnName="xml"/>
96132
<column columnName="pointsummary"/>
97133
<column columnName="passedtests"/>
@@ -105,7 +141,13 @@
105141
<table tableName="trainruns" tableDbType="TABLE">
106142
<columns>
107143
<column columnName="id"/>
108-
<column columnName="runid"/>
144+
<column columnName="runid">
145+
<fk>
146+
<fkDbSchema>testresults</fkDbSchema>
147+
<fkTable>testruns</fkTable>
148+
<fkColumnName>id</fkColumnName>
149+
</fk>
150+
</column>
109151
</columns>
110152
</table>
111153
<table tableName="user" tableDbType="TABLE">
@@ -117,7 +159,13 @@
117159
<table tableName="userdata" tableDbType="TABLE">
118160
<columns>
119161
<column columnName="id"/>
120-
<column columnName="userid"/>
162+
<column columnName="userid">
163+
<fk>
164+
<fkDbSchema>testresults</fkDbSchema>
165+
<fkTable>user</fkTable>
166+
<fkColumnName>id</fkColumnName>
167+
</fk>
168+
</column>
121169
<column columnName="container"/>
122170
<column columnName="meantestsrun"/>
123171
<column columnName="meanmemory"/>
@@ -126,4 +174,4 @@
126174
<column columnName="active"/>
127175
</columns>
128176
</table>
129-
</tables>
177+
</tables>

0 commit comments

Comments
 (0)