Package org.geoserver.security.web.user

Source Code of org.geoserver.security.web.user.UserListPageTest

/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.security.web.user;

import static org.junit.Assert.*;

import java.lang.reflect.Method;
import java.util.SortedSet;

import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.geoserver.security.impl.GeoServerUser;
import org.geoserver.security.web.AbstractSecurityPage;
import org.geoserver.security.web.AbstractTabbedListPageTest;
import org.geoserver.web.wicket.GeoServerDataProvider.Property;
import org.junit.Test;

public class UserListPageTest extends AbstractTabbedListPageTest<GeoServerUser> {
    protected boolean withRoles=false;
   
    protected AbstractSecurityPage listPage(String serviceName ) {
        AbstractSecurityPage result = initializeForUGServiceNamed(serviceName);
        tester.clickLink(getTabbedPanelPath()+":tabs-container:tabs:1:link", true);
        return result;
    }
    protected Page newPage(AbstractSecurityPage page,Object...params) {
        if (params.length==0)
            return new  NewUserPage(getUserGroupServiceName()).setReturnPage(page);
        else
            return new  NewUserPage((String) params[0]).setReturnPage(page);
    }
    protected Page editPage(AbstractSecurityPage page,Object...params) {
        if (params.length==0) {
            return new  EditUserPage(
                    getUserGroupServiceName(),
                    new GeoServerUser("dummyuser")).setReturnPage(page);
        }

        if (params.length==1)
            return new  EditUserPage(
                    getUserGroupServiceName(),
                    (GeoServerUser) params[0]).setReturnPage(page);
        else
            return new  EditUserPage( (String) params[0],
                    (GeoServerUser) params[1]).setReturnPage(page);
    }


    @Override
    protected String getSearchString() throws Exception{
         GeoServerUser u = ugService.getUserByUsername("user1");
         assertNotNull(u);
         return u.getUsername();
    }

  
    @Override
    protected Property<GeoServerUser> getEditProperty() {
        return UserListProvider.USERNAME;
    }


    @Override
    protected boolean checkEditForm(String objectString) {
        return objectString.equals(
                tester.getComponentFromLastRenderedPage("form:username").getDefaultModelObject());
    }
   
    @Test
    public void testReadOnlyService() throws Exception {
        doInitialize();
        tester.startPage(listPage(getUserGroupServiceName()));
        tester.assertVisible(getRemoveLink().getPageRelativePath());
        tester.assertVisible(getRemoveLinkWithRoles().getPageRelativePath());
        tester.assertVisible(getAddLink().getPageRelativePath());
       
        activateRORoleService();
        tester.startPage(listPage(getUserGroupServiceName()));
        tester.assertVisible(getRemoveLink().getPageRelativePath());
        tester.assertInvisible(getRemoveLinkWithRoles().getPageRelativePath());
        tester.assertVisible(getAddLink().getPageRelativePath());
       
        activateROUGService();
        tester.startPage(listPage(getROUserGroupServiceName()));
        tester.assertInvisible(getRemoveLink().getPageRelativePath());
        tester.assertInvisible(getAddLink().getPageRelativePath());
        tester.assertInvisible(getRemoveLinkWithRoles().getPageRelativePath());
    }

    @Override
    protected void simulateDeleteSubmit() throws Exception {
        SelectionUserRemovalLink link =
                (SelectionUserRemovalLink) (withRoles ?  getRemoveLinkWithRoles() : getRemoveLink());
        Method m = link.delegate.getClass().getDeclaredMethod("onSubmit", AjaxRequestTarget.class,Component.class);
        m.invoke(link.delegate, null,null);
       
        SortedSet<GeoServerUser> users = ugService.getUsers();
        assertTrue(users.size()==0);
        if (withRoles)           
            assertTrue(gaService.getRolesForUser("user1").size()==0);
        else
            assertTrue(gaService.getRolesForUser("user1").size()==2);
    }

    @Test
    public void testRemoveWithRoles() throws Exception {
        withRoles=true;
        //initializeForXML();
        //insertValues();
        addAdditonalData();
        doRemove(getTabbedPanelPath()+":panel:header:removeSelectedWithRoles");
    }
   
    @Override
    protected String getTabbedPanelPath() {
        //return "UserGroupTabbedPage";
        return "panel:panel";
    }
    @Override
    protected String getServiceName() {
        return getUserGroupServiceName();
    }

}
TOP

Related Classes of org.geoserver.security.web.user.UserListPageTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.