in src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverWithVanityBloomFilterTest.java [229:269]
public void test_clone_based_on_admin() throws Exception {
final ResourceResolver admin0 =
this.resourceResolverFactory.getAdministrativeResourceResolver((Map<String, Object>) null);
final Session admin0Session = admin0.adaptTo(Session.class);
assertEquals("admin", admin0.getUserID());
// same user and workspace
final ResourceResolver admin1 = admin0.clone(null);
final Session admin1Session = admin1.adaptTo(Session.class);
assertEquals(admin0.getUserID(), admin1.getUserID());
assertEquals(
admin0Session.getWorkspace().getName(),
admin1Session.getWorkspace().getName());
admin1.close();
// same workspace but anonymous user
final Map<String, Object> anon0Cred = new HashMap<>();
anon0Cred.put(ResourceResolverFactory.USER, "anonymous");
final ResourceResolver anon0 = admin0.clone(anon0Cred);
final Session anon0Session = anon0.adaptTo(Session.class);
assertEquals("anonymous", anon0.getUserID());
assertEquals(
admin0Session.getWorkspace().getName(),
anon0Session.getWorkspace().getName());
anon0.close();
// same user but different workspace
final Map<String, Object> admin2Cred = new HashMap<>();
final ResourceResolver admin2 = admin0.clone(admin2Cred);
assertEquals("admin", admin2.getUserID());
admin2.close();
// different user and workspace
final Map<String, Object> anon1Cred = new HashMap<>();
anon1Cred.put(ResourceResolverFactory.USER, "anonymous");
final ResourceResolver anon1 = admin0.clone(anon1Cred);
assertEquals("anonymous", anon1.getUserID());
anon1.close();
admin0.close();
}