This is an automated email from the ASF dual-hosted git repository.
sseifert pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlet-helpers.git
The following commit(s) were added to refs/heads/master by this push:
new 825f448 SLING-7744 add implementation for
RequestPathInfo.getSuffixResource
825f448 is described below
commit 825f4486404944a41a7f552945a346cee8bfe2cf
Author: sseifert <[email protected]>
AuthorDate: Tue Jul 31 13:08:44 2018 +0200
SLING-7744 add implementation for RequestPathInfo.getSuffixResource
---
.../sling/servlethelpers/MockRequestPathInfo.java | 24 +++++++++++++++++++--
.../MockSlingHttpServletRequest.java | 2 +-
.../apache/sling/servlethelpers/package-info.java | 2 +-
.../servlethelpers/MockRequestPathInfoTest.java | 25 +++++++++++++++++++++-
.../MockSlingHttpServletRequestTest.java | 11 ++++++++++
5 files changed, 59 insertions(+), 5 deletions(-)
diff --git
a/src/main/java/org/apache/sling/servlethelpers/MockRequestPathInfo.java
b/src/main/java/org/apache/sling/servlethelpers/MockRequestPathInfo.java
index d14034c..c96c2eb 100644
--- a/src/main/java/org/apache/sling/servlethelpers/MockRequestPathInfo.java
+++ b/src/main/java/org/apache/sling/servlethelpers/MockRequestPathInfo.java
@@ -21,6 +21,7 @@ package org.apache.sling.servlethelpers;
import org.apache.commons.lang3.StringUtils;
import org.apache.sling.api.request.RequestPathInfo;
import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
import org.osgi.annotation.versioning.ConsumerType;
/**
@@ -33,6 +34,20 @@ public class MockRequestPathInfo implements RequestPathInfo {
private String resourcePath;
private String selectorString;
private String suffix;
+
+ private final ResourceResolver resourceResolver;
+
+ /**
+ * @deprecated Use @link {@link #MockRequestPathInfo(ResourceResolver)}
instead.
+ */
+ @Deprecated
+ public MockRequestPathInfo() {
+ this(null);
+ }
+
+ public MockRequestPathInfo(ResourceResolver resourceResolver) {
+ this.resourceResolver = resourceResolver;
+ }
@Override
public String getExtension() {
@@ -79,10 +94,15 @@ public class MockRequestPathInfo implements RequestPathInfo
{
this.suffix = suffix;
}
- // --- unsupported operations ---
@Override
public Resource getSuffixResource() {
- throw new UnsupportedOperationException();
+ if (this.resourceResolver == null) {
+ throw new UnsupportedOperationException("No resource resolver
available.");
+ }
+ if (suffix == null) {
+ return null;
+ }
+ return this.resourceResolver.getResource(suffix);
}
}
diff --git
a/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
b/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
index 4b60195..dfb318c 100644
---
a/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
+++
b/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
@@ -130,7 +130,7 @@ public class MockSlingHttpServletRequest extends
SlingAdaptable implements Sling
}
protected MockRequestPathInfo newMockRequestPathInfo() {
- return new MockRequestPathInfo();
+ return new MockRequestPathInfo(this.resourceResolver);
}
@Override
diff --git a/src/main/java/org/apache/sling/servlethelpers/package-info.java
b/src/main/java/org/apache/sling/servlethelpers/package-info.java
index ada5dc0..fc30dde 100644
--- a/src/main/java/org/apache/sling/servlethelpers/package-info.java
+++ b/src/main/java/org/apache/sling/servlethelpers/package-info.java
@@ -19,5 +19,5 @@
/**
* Mock implementation of selected Servlet-related Sling APIs.
*/
[email protected]("1.3")
[email protected]("1.4")
package org.apache.sling.servlethelpers;
diff --git
a/src/test/java/org/apache/sling/servlethelpers/MockRequestPathInfoTest.java
b/src/test/java/org/apache/sling/servlethelpers/MockRequestPathInfoTest.java
index 4a6b15b..bb7eb29 100644
--- a/src/test/java/org/apache/sling/servlethelpers/MockRequestPathInfoTest.java
+++ b/src/test/java/org/apache/sling/servlethelpers/MockRequestPathInfoTest.java
@@ -21,17 +21,29 @@ package org.apache.sling.servlethelpers;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+@RunWith(MockitoJUnitRunner.class)
public class MockRequestPathInfoTest {
private MockRequestPathInfo requestPathInfo;
+
+ @Mock
+ private ResourceResolver resourceResolver;
@Before
public void setUp() throws Exception {
- this.requestPathInfo = new MockRequestPathInfo();
+ this.requestPathInfo = new MockRequestPathInfo(resourceResolver);
}
@Test
@@ -65,4 +77,15 @@ public class MockRequestPathInfoTest {
assertEquals("/suffix", this.requestPathInfo.getSuffix());
}
+ @Test
+ public void testGetSuffixResource() {
+ assertNull(this.requestPathInfo.getSuffixResource());
+
+ this.requestPathInfo.setSuffix("/suffix");
+ Resource resource = mock(Resource.class);
+ when(resourceResolver.getResource("/suffix")).thenReturn(resource);
+
+ assertSame(resource, this.requestPathInfo.getSuffixResource());
+ }
+
}
diff --git
a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
index 9c02ec7..d2e12b3 100644
---
a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
+++
b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
@@ -442,4 +442,15 @@ public class MockSlingHttpServletRequestTest {
assertNull(request.getPathInfo());
}
+ @Test
+ public void testGetSuffixResource() {
+ assertNull(request.getRequestPathInfo().getSuffixResource());
+
+
((MockRequestPathInfo)request.getRequestPathInfo()).setSuffix("/suffix");
+ Resource resource = mock(Resource.class);
+ when(resourceResolver.getResource("/suffix")).thenReturn(resource);
+
+ assertSame(resource, request.getRequestPathInfo().getSuffixResource());
+ }
+
}