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:27 UTC

[sling-org-apache-sling-testing-sling-mock] 18/26: SLING-4108 JCR/Sling/ResourceResolver Mock: Support providing authentication info

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 <ss...@apache.org>
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
"commits@sling.apache.org" <co...@sling.apache.org>.