You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2015/02/04 14:29:42 UTC
svn commit: r1657210 - in /sling/trunk/testing/mocks/sling-mock/src:
main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java
test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
Author: sseifert
Date: Wed Feb 4 13:29:42 2015
New Revision: 1657210
URL: http://svn.apache.org/r1657210
Log:
SLING-4394 Sling Mock with JCR-based Resource Resolver: Support default search paths
Modified:
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java
sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java?rev=1657210&r1=1657209&r2=1657210&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java Wed Feb 4 13:29:42 2015
@@ -34,6 +34,7 @@ import org.apache.sling.resourceresolver
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.Immutab
/**
* 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 imp
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 imp
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);
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java?rev=1657210&r1=1657209&r2=1657210&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java Wed Feb 4 13:29:42 2015
@@ -40,6 +40,7 @@ import org.apache.sling.api.resource.Res
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 AbstractSlingCrudR
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());
+ }
+
}