in src/main/java/org/apache/sling/launchpad/webapp/integrationtest/resourceresolver/ResourceResolverGeneralTest.java [196:237]
public void test_clone_based_on_anonymous() throws Exception {
final ResourceResolver anon0 = this.resourceResolverFactory.getResourceResolver((Map<String, Object>) null);
final Session anon0Session = anon0.adaptTo(Session.class);
assertEquals("anonymous", anon0.getUserID());
// same user and workspace
final ResourceResolver anon1 = anon0.clone(null);
final Session anon1Session = anon1.adaptTo(Session.class);
assertEquals(anon0.getUserID(), anon1.getUserID());
assertEquals(
anon0Session.getWorkspace().getName(),
anon1Session.getWorkspace().getName());
anon1.close();
// same workspace but admin user
final Map<String, Object> admin0Cred = new HashMap<String, Object>();
admin0Cred.put(ResourceResolverFactory.USER, "admin");
admin0Cred.put(ResourceResolverFactory.PASSWORD, "admin".toCharArray());
final ResourceResolver admin0 = anon0.clone(admin0Cred);
final Session admin0Session = admin0.adaptTo(Session.class);
assertEquals("admin", admin0.getUserID());
assertEquals(
anon0Session.getWorkspace().getName(),
admin0Session.getWorkspace().getName());
admin0.close();
// same user but different workspace
final Map<String, Object> anon2Cred = new HashMap<String, Object>();
final ResourceResolver anon2 = anon0.clone(anon2Cred);
assertEquals("anonymous", anon2.getUserID());
anon2.close();
// different user and workspace
final Map<String, Object> admin1Cred = new HashMap<String, Object>();
admin1Cred.put(ResourceResolverFactory.USER, "admin");
admin1Cred.put(ResourceResolverFactory.PASSWORD, "admin".toCharArray());
final ResourceResolver admin1 = anon0.clone(admin1Cred);
assertEquals("admin", admin1.getUserID());
admin1.close();
anon0.close();
}