You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:21:56 UTC
[sling-org-apache-sling-testing-sling-mock] 06/19: SLING-4394 Sling
Mock with JCR-based Resource Resolver: Support default search paths
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.testing.sling-mock-1.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git
commit c49b0e1eadbbb99c935be0d46bae441f18dd9421
Author: Stefan Seifert <ss...@apache.org>
AuthorDate: Wed Feb 4 13:29:42 2015 +0000
SLING-4394 Sling Mock with JCR-based Resource Resolver: Support default search paths
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock@1657210 13f79535-47bb-0310-9956-ffa450edef68
---
.../mock/sling/MockJcrResourceResolverFactory.java | 32 +++++++++++-----------
.../AbstractSlingCrudResourceResolverTest.java | 17 ++++++++++++
2 files changed, 33 insertions(+), 16 deletions(-)
diff --git a/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java b/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java
index f4fc1f1..2fb8248 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java
@@ -34,6 +34,7 @@ import org.apache.sling.resourceresolver.impl.ResourceAccessSecurityTracker;
import org.apache.sling.resourceresolver.impl.ResourceResolverImpl;
import org.apache.sling.resourceresolver.impl.helper.ResourceResolverContext;
import org.apache.sling.testing.mock.osgi.MockOsgi;
+import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
import org.osgi.service.component.ComponentContext;
@@ -42,7 +43,7 @@ import com.google.common.collect.ImmutableMap;
/**
* Mock {@link ResourceResolver} implementation. Simulates OSGi environment and
- * intatiates real Sling ResourceResolver and JCR implementation, but with a
+ * initiates real Sling ResourceResolver and JCR implementation, but with a
* mocked JCR repository implementation underneath.
*/
class MockJcrResourceResolverFactory implements ResourceResolverFactory {
@@ -55,22 +56,23 @@ class MockJcrResourceResolverFactory implements ResourceResolverFactory {
private ResourceResolver getResourceResolverInternal(Map<String, Object> authenticationInfo, boolean isAdmin) throws LoginException {
// setup mock OSGi environment
- Dictionary<String, Object> resourceProviderFactoryProps = new Hashtable<String, Object>();
- resourceProviderFactoryProps.put(Constants.SERVICE_VENDOR, "sling-mock");
- resourceProviderFactoryProps.put(Constants.SERVICE_DESCRIPTION, "sling-mock");
- resourceProviderFactoryProps.put("resource.resolver.manglenamespaces", true);
- ComponentContext componentContext = MockOsgi.newComponentContext(resourceProviderFactoryProps);
+ BundleContext bundleContext = MockOsgi.newBundleContext();
+
+ Dictionary<String, Object> resourceProviderFactoryFactoryProps = new Hashtable<String, Object>();
+ resourceProviderFactoryFactoryProps.put(Constants.SERVICE_VENDOR, "sling-mock");
+ resourceProviderFactoryFactoryProps.put(Constants.SERVICE_DESCRIPTION, "sling-mock");
+ resourceProviderFactoryFactoryProps.put("resource.resolver.manglenamespaces", true);
+ resourceProviderFactoryFactoryProps.put("resource.resolver.searchpath", new String[] { "/apps", "/libs" });
+ ComponentContext resourceProviderComponentContext = MockOsgi.newComponentContext(bundleContext, resourceProviderFactoryFactoryProps);
// setup mocked JCR environment
- componentContext.getBundleContext()
- .registerService(SlingRepository.class.getName(), this.slingRepository, null);
+ bundleContext.registerService(SlingRepository.class.getName(), this.slingRepository, null);
// setup real sling JCR resource provider implementation for use in
// mocked context
JcrResourceProviderFactory jcrResourceProviderFactory = new JcrResourceProviderFactory();
- MockOsgi.injectServices(jcrResourceProviderFactory, componentContext.getBundleContext());
- MockOsgi.activate(jcrResourceProviderFactory, componentContext.getBundleContext(),
- ImmutableMap.<String, Object> of());
+ MockOsgi.injectServices(jcrResourceProviderFactory, bundleContext);
+ MockOsgi.activate(jcrResourceProviderFactory, bundleContext, ImmutableMap.<String, Object> of());
ResourceProvider resourceProvider;
if (isAdmin) {
@@ -82,17 +84,15 @@ class MockJcrResourceResolverFactory implements ResourceResolverFactory {
Dictionary<Object, Object> resourceProviderProps = new Hashtable<Object, Object>();
resourceProviderProps.put(ResourceProvider.ROOTS, new String[] { "/" });
- componentContext.getBundleContext().registerService(ResourceProvider.class.getName(), resourceProvider,
- resourceProviderProps);
- ServiceReference resourceProviderServiceReference = componentContext.getBundleContext().getServiceReference(
- ResourceProvider.class.getName());
+ bundleContext.registerService(ResourceProvider.class.getName(), resourceProvider, resourceProviderProps);
+ ServiceReference resourceProviderServiceReference = bundleContext.getServiceReference(ResourceProvider.class.getName());
// setup real sling resource resolver implementation for use in mocked
// context
MockResourceResolverFactoryActivator activator = new MockResourceResolverFactoryActivator();
activator.bindResourceProvider(resourceProvider,
getServiceReferenceProperties(resourceProviderServiceReference));
- activator.activate(componentContext);
+ activator.activate(resourceProviderComponentContext);
CommonResourceResolverFactoryImpl commonFactoryImpl = new CommonResourceResolverFactoryImpl(activator);
ResourceResolverContext context = new ResourceResolverContext(true, authenticationInfo, new ResourceAccessSecurityTracker());
ResourceResolverImpl resourceResolver = new ResourceResolverImpl(commonFactoryImpl, context);
diff --git a/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java b/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
index 599d990..572cf6c 100644
--- a/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
@@ -40,6 +40,7 @@ import org.apache.sling.api.resource.ResourceUtil;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
+import org.apache.sling.testing.mock.sling.builder.ContentBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -236,4 +237,20 @@ public abstract class AbstractSlingCrudResourceResolverTest {
assertEquals("/", rootResource.getPath());
}
+ @Test
+ public void testSearchPath() {
+ ContentBuilder builder = new ContentBuilder(this.resourceResolver);
+ builder.resource("/libs/any/path");
+
+ Resource resource = this.resourceResolver.getResource("any/path");
+ assertNotNull(resource);
+ assertEquals("/libs/any/path", resource.getPath());
+
+ builder.resource("/apps/any/path");
+
+ resource = this.resourceResolver.getResource("any/path");
+ assertNotNull(resource);
+ assertEquals("/apps/any/path", resource.getPath());
+ }
+
}
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.