Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
5.3
-
None
Description
I was running a web test using the latest source code from testify on a T5.3 application. And I get the following exception for any tests that contains a request/event:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1937)
at java.lang.String.substring(String.java:1904)
at org.apache.tapestry5.test.PageTester.setupRequestFromURI(PageTester.java:345)
at org.apache.tapestry5.test.PageTester.setupRequestFromLink(PageTester.java:331)
at org.apache.tapestry5.test.PageTester.runComponentEventRequest(PageTester.java:313)
at org.apache.tapestry5.test.PageTester.clickLinkAndReturnResponse(PageTester.java:264)
...
At bit digging through the code shows that there is mostly a coding bug in org.apache.tapestry5.test.PageTester#setupRequestFromURI() (PageTester.java:345):
--------------------
private void setupRequestFromURI(String URI)
--------------------
The path variable is the URL path with the event parameters (?xxx) stripped, trying to substring it again cause the IndexOutOfBounds exception. The correct variable to pass should instead be: linkPath. A comparison with the same class file confirms my findings.