[T5.3] - PageTester causes StringIndexOutOfBoundsException for any page request
path with query parameter
---------------------------------------------------------------------------------------------------------
Key: TAPESTRY-2785
URL: https://issues.apache.org/jira/browse/TAPESTRY-2785
Project: Tapestry
Issue Type: Bug
Components: tapestry-test
Reporter: Kevin Lin
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)
{
String linkPath = stripContextFromPath(URI);
int comma = linkPath.indexOf('?');
String path = comma < 0 ? linkPath : linkPath.substring(0, comma);
request.clear().setPath(path);
if (comma > 0)
decodeParametersIntoRequest(path.substring(comma + 1));
}
--------------------
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.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira