You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2008/01/18 15:53:37 UTC
svn commit: r613182 - in /incubator/sling/trunk:
sling/core/src/main/java/org/apache/sling/core/impl/request/
sling/core/src/test/java/org/apache/sling/core/impl/request/
usling/usling-webapp/src/test/java/org/apache/sling/usling/webapp/integrationtest...
Author: bdelacretaz
Date: Fri Jan 18 06:53:36 2008
New Revision: 613182
URL: http://svn.apache.org/viewvc?rev=613182&view=rev
Log:
SLING-173 - SlingRequestPathInfo fails to parse extension when pathToParse starts with /
Modified:
incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/request/SlingRequestPathInfo.java
incubator/sling/trunk/sling/core/src/test/java/org/apache/sling/core/impl/request/SlingRequestPathInfoTest.java
incubator/sling/trunk/usling/usling-webapp/src/test/java/org/apache/sling/usling/webapp/integrationtest/ujax/PostServletOrderTest.java
Modified: incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/request/SlingRequestPathInfo.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/request/SlingRequestPathInfo.java?rev=613182&r1=613181&r2=613182&view=diff
==============================================================================
--- incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/request/SlingRequestPathInfo.java (original)
+++ incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/request/SlingRequestPathInfo.java Fri Jan 18 06:53:36 2008
@@ -67,12 +67,20 @@
}
if (pathToParse.startsWith("/")) {
-
- // only a suffix exists
+ // resolution path is up in the hierarchy
+ // from request path: split the remainder
+ // in suffix and extension only
selectorString = null;
selectors = NO_SELECTORS;
- extension = null;
- suffix = pathToParse;
+ final int lastDot = pathToParse.lastIndexOf('.');
+ final int lastSlash = pathToParse.lastIndexOf('/');
+ if(lastDot >= 0 && lastDot > lastSlash) {
+ suffix = pathToParse.substring(0, lastDot).substring(1);
+ extension = pathToParse.substring(lastDot + 1);
+ } else {
+ extension = null;
+ suffix = pathToParse;
+ }
} else {
Modified: incubator/sling/trunk/sling/core/src/test/java/org/apache/sling/core/impl/request/SlingRequestPathInfoTest.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/core/src/test/java/org/apache/sling/core/impl/request/SlingRequestPathInfoTest.java?rev=613182&r1=613181&r2=613182&view=diff
==============================================================================
--- incubator/sling/trunk/sling/core/src/test/java/org/apache/sling/core/impl/request/SlingRequestPathInfoTest.java (original)
+++ incubator/sling/trunk/sling/core/src/test/java/org/apache/sling/core/impl/request/SlingRequestPathInfoTest.java Fri Jan 18 06:53:36 2008
@@ -22,7 +22,7 @@
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceMetadata;
-/** Test the MicroslingRequestPathInfo */
+/** Test the SlingRequestPathInfo class */
public class SlingRequestPathInfoTest extends TestCase {
public void testSimplePath() {
@@ -239,6 +239,30 @@
assertEquals(0, p.getSelectors().length);
assertNull(p.getExtension());
assertEquals("/some/suffix", p.getSuffix());
+ }
+
+ public void testJIRA_SLING_173_a() {
+ RequestPathInfo p =
+ new SlingRequestPathInfo(
+ new MockResource("/ujax-tests"),
+ "/ujax-tests/12005879509741.json"
+ );
+ assertEquals("/ujax-tests", p.getResourcePath());
+ assertNull(p.getSelectorString());
+ assertEquals("json",p.getExtension());
+ assertEquals("12005879509741",p.getSuffix());
+ }
+
+ public void testJIRA_SLING_173_b() {
+ RequestPathInfo p =
+ new SlingRequestPathInfo(
+ new MockResource("/ujax-tests"),
+ "/ujax-tests/12005879509741.json."
+ );
+ assertEquals("/ujax-tests", p.getResourcePath());
+ assertNull(p.getSelectorString());
+ assertEquals("",p.getExtension());
+ assertEquals("12005879509741.json",p.getSuffix());
}
static class MockResource implements Resource {
Modified: incubator/sling/trunk/usling/usling-webapp/src/test/java/org/apache/sling/usling/webapp/integrationtest/ujax/PostServletOrderTest.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/usling/usling-webapp/src/test/java/org/apache/sling/usling/webapp/integrationtest/ujax/PostServletOrderTest.java?rev=613182&r1=613181&r2=613182&view=diff
==============================================================================
--- incubator/sling/trunk/usling/usling-webapp/src/test/java/org/apache/sling/usling/webapp/integrationtest/ujax/PostServletOrderTest.java (original)
+++ incubator/sling/trunk/usling/usling-webapp/src/test/java/org/apache/sling/usling/webapp/integrationtest/ujax/PostServletOrderTest.java Fri Jan 18 06:53:36 2008
@@ -65,9 +65,7 @@
}
/** Create several nodes with the order option, and check ordering */
- public void TODO_FAILS_testZeroOrder() throws IOException {
- // TODO: fails due to SlingRequestPathInfo failing to get extension from URL like
- // http://localhost:8080/ujax-tests/12005879509741.json
+ public void testZeroOrder() throws IOException {
final Map <String, String> props = new HashMap <String, String> ();
props.put("ujax:order","0");
@@ -83,7 +81,7 @@
}
// check that nodes appear in reverse creation order in their parent's list of children
- final String json = getContent(postUrl + "1.json", CONTENT_TYPE_JSON);
+ final String json = getContent(postUrl + ".1.json", CONTENT_TYPE_JSON);
for(int i = 0; i < nodeUrl.length - 1; i++) {
final int posA = json.indexOf(nodeName[i]);
final int posB = json.indexOf(nodeName[i + 1]);