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.1.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git
commit 448fe45364baf956e8aedf5922e32766015707eb Author: Stefan Seifert <[email protected]> AuthorDate: Tue Oct 28 10:17:59 2014 +0000 SLING-4108 JCR/Sling/ResourceResolver Mock: Support providing authentication info git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock@1634835 13f79535-47bb-0310-9956-ffa450edef68 --- .../mock/sling/MockJcrResourceResolverFactory.java | 25 ++++++++++++++++------ .../testing/mock/sling/MockSlingRepository.java | 10 ++++----- .../AbstractMultipleResourceResolverTest.java | 13 +++++++++-- 3 files changed, 34 insertions(+), 14 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 8a9716b..f4fc1f1 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 @@ -53,8 +53,7 @@ class MockJcrResourceResolverFactory implements ResourceResolverFactory { this.slingRepository = repository; } - @Override - public ResourceResolver getResourceResolver(final Map<String, Object> authenticationInfo) throws LoginException { + 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"); @@ -72,8 +71,15 @@ class MockJcrResourceResolverFactory implements ResourceResolverFactory { MockOsgi.injectServices(jcrResourceProviderFactory, componentContext.getBundleContext()); MockOsgi.activate(jcrResourceProviderFactory, componentContext.getBundleContext(), ImmutableMap.<String, Object> of()); - ResourceProvider resourceProvider = jcrResourceProviderFactory - .getAdministrativeResourceProvider(new HashMap<String, Object>()); + + ResourceProvider resourceProvider; + if (isAdmin) { + resourceProvider = jcrResourceProviderFactory.getAdministrativeResourceProvider(authenticationInfo); + } + else { + resourceProvider = jcrResourceProviderFactory.getResourceProvider(authenticationInfo); + } + Dictionary<Object, Object> resourceProviderProps = new Hashtable<Object, Object>(); resourceProviderProps.put(ResourceProvider.ROOTS, new String[] { "/" }); componentContext.getBundleContext().registerService(ResourceProvider.class.getName(), resourceProvider, @@ -88,7 +94,7 @@ class MockJcrResourceResolverFactory implements ResourceResolverFactory { getServiceReferenceProperties(resourceProviderServiceReference)); activator.activate(componentContext); CommonResourceResolverFactoryImpl commonFactoryImpl = new CommonResourceResolverFactoryImpl(activator); - ResourceResolverContext context = new ResourceResolverContext(true, null, new ResourceAccessSecurityTracker()); + ResourceResolverContext context = new ResourceResolverContext(true, authenticationInfo, new ResourceAccessSecurityTracker()); ResourceResolverImpl resourceResolver = new ResourceResolverImpl(commonFactoryImpl, context); return resourceResolver; } @@ -103,15 +109,20 @@ class MockJcrResourceResolverFactory implements ResourceResolverFactory { } @Override + public ResourceResolver getResourceResolver(final Map<String, Object> authenticationInfo) throws LoginException { + return getResourceResolverInternal(authenticationInfo, false); + } + + @Override public ResourceResolver getAdministrativeResourceResolver(final Map<String, Object> authenticationInfo) throws LoginException { - return getResourceResolver(authenticationInfo); + return getResourceResolverInternal(authenticationInfo, true); } // part of Sling API 2.7 public ResourceResolver getServiceResourceResolver(final Map<String, Object> authenticationInfo) throws LoginException { - return getResourceResolver(authenticationInfo); + return getResourceResolverInternal(authenticationInfo, true); } } diff --git a/src/main/java/org/apache/sling/testing/mock/sling/MockSlingRepository.java b/src/main/java/org/apache/sling/testing/mock/sling/MockSlingRepository.java index 1e33847..eec41f5 100644 --- a/src/main/java/org/apache/sling/testing/mock/sling/MockSlingRepository.java +++ b/src/main/java/org/apache/sling/testing/mock/sling/MockSlingRepository.java @@ -41,14 +41,14 @@ class MockSlingRepository implements SlingRepository { } @Override - public Session loginAdministrative(final String workspace) throws RepositoryException { - return login(); + public Session loginAdministrative(final String workspaceName) throws RepositoryException { + return login(workspaceName); } @Override - public Session loginService(final String subServiceName, final String workspace) throws LoginException, - RepositoryException { - return login(); + public Session loginService(final String subServiceName, final String workspaceName) + throws LoginException, RepositoryException { + return login(workspaceName); } @Override diff --git a/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractMultipleResourceResolverTest.java b/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractMultipleResourceResolverTest.java index 1ce615e..ea47667 100644 --- a/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractMultipleResourceResolverTest.java +++ b/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractMultipleResourceResolverTest.java @@ -44,8 +44,17 @@ public abstract class AbstractMultipleResourceResolverTest { @Test public void testMultipleResourceResolver() throws Exception { ResourceResolverFactory factory = newResourceResolerFactory(); - ResourceResolver resolver1 = factory.getResourceResolver(null); - ResourceResolver resolver2 = factory.getResourceResolver(null); + ResourceResolver resolver1 = factory.getResourceResolver(ImmutableMap.<String, Object>of( + ResourceResolverFactory.USER, "user1")); + ResourceResolver resolver2 = factory.getResourceResolver(ImmutableMap.<String, Object>of( + ResourceResolverFactory.USER, "user2")); + + // validate user names + // TODO: enable this tests when updated to latest jcr-mock/resourceresolver-mock versions + /* + assertEquals("user1", resolver1.getAttribute(ResourceResolverFactory.USER)); + assertEquals("user2", resolver2.getAttribute(ResourceResolverFactory.USER)); + */ // add a resource in resolver 1 Resource root = resolver1.getResource("/"); -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
