Package org.geoserver.security.web.role

Source Code of org.geoserver.security.web.role.NewRolePageTest

/* (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.role;

import static org.junit.Assert.*;

import java.util.Iterator;

import org.apache.wicket.Page;
import org.apache.wicket.extensions.ajax.markup.html.tabs.AjaxTabbedPanel;
import org.apache.wicket.feedback.FeedbackMessage;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.util.tester.FormTester;
import org.geoserver.security.config.SecurityNamedServiceConfig;
import org.geoserver.security.impl.GeoServerRole;
import org.geoserver.security.web.AbstractSecurityPage;
import org.geoserver.security.web.AbstractSecurityWicketTestSupport;
import org.geoserver.security.web.SecurityNamedServiceEditPage;
import org.junit.Before;
import org.junit.Test;

public class NewRolePageTest extends AbstractSecurityWicketTestSupport {

    NewRolePage page;
    

    @Before
    public void init() throws Exception {
        doInitialize();
        clearServices();
    }

    @Test
    public void testFill() throws Exception{
        //initializeForXML();
        doTestFill();
    }
   
    protected void doInitialize() throws Exception {
        initializeForXML();
    }

    protected void doTestFill() throws Exception {
       
        insertValues();       
       
        AbstractSecurityPage returnPage = initializeForRoleServiceNamed(getRoleServiceName());
                       
        tester.startPage(page=(NewRolePage)
            new NewRolePage(getRoleServiceName()).setReturnPage(returnPage));
       
        tester.assertRenderedPage(NewRolePage.class);
       
       
        FormTester form = tester.newFormTester("form");
        form.setValue("name", "ROLE_TEST");
       
        int index =-1;
        for (String name : ((DropDownChoice<String>)page.get("form:parent")).getChoices()) {
            index++;
            if ("ROLE_AUTHENTICATED".equals(name))
                break;
        }
        assertTrue (index >=0);
        form.select("parent", index);
       
       
        //tester.executeAjaxEvent("form:properties:add", "onclick");
        //form = tester.newFormTester("form");
        //print(tester.getLastRenderedPage(),true,true);
       
        //form.setValue("properties:container:list:0:key", "bbox");
        //form.setValue("properties:container:list:0:value", "10 10 20 20");
               
        form.submit("save");
        tester.assertRenderedPage(SecurityNamedServiceEditPage.class);
        tester.assertErrorMessages(new String[0]);
       
        GeoServerRole role = gaService.getRoleByName("ROLE_TEST");
        assertNotNull(role);
        //assertEquals(1,role.getProperties().size());
        //assertEquals("10 10 20 20",role.getProperties().get("bbox"));
        GeoServerRole parentRole = gaService.getParentRole(role);
        assertNotNull(parentRole);
        assertEquals("ROLE_AUTHENTICATED",parentRole.getAuthority());
       
    }
   
    @Test
    public void testRoleNameConflict() throws Exception {

        insertValues();       
        AbstractSecurityPage returnPage = initializeForRoleServiceNamed(getRoleServiceName());
        tester.startPage(page=(NewRolePage)
            new NewRolePage(getRoleServiceName()).setReturnPage(returnPage));
       
        FormTester form = tester.newFormTester("form");
        form.setValue("name", "ROLE_WFS");
        form.submit("save");
       
        assertTrue(testErrorMessagesWithRegExp(".*ROLE_WFS.*"));
        tester.getMessages(FeedbackMessage.ERROR);
        tester.assertRenderedPage(NewRolePage.class);
    }

    @Test
    public void testInvalidWorkflow() throws Exception{
        activateRORoleService();
        AbstractSecurityPage returnPage = initializeForRoleServiceNamed(getRORoleServiceName());
        boolean fail = true;
        try {
            tester.startPage(page=(NewRolePage)
                new NewRolePage(getRORoleServiceName()).setReturnPage(returnPage));
        } catch (RuntimeException ex) {
            fail = false;
        }
        if (fail)
            fail("No runtime exception for read only RoleService");
    }

}
TOP

Related Classes of org.geoserver.security.web.role.NewRolePageTest

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.