Package org.geoserver.web

Source Code of org.geoserver.web.RESTPanelTest

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

import static org.junit.Assert.*;

import org.apache.wicket.util.tester.FormTester;
import org.geoserver.catalog.NamespaceInfo;
import org.geoserver.catalog.WorkspaceInfo;
import org.geoserver.config.GeoServer;
import org.geoserver.config.SettingsInfo;
import org.geoserver.data.test.MockData;
import org.geoserver.rest.util.RESTUtils;
import org.geoserver.web.admin.GlobalSettingsPage;
import org.geoserver.web.data.workspace.WorkspaceEditPage;
import org.junit.Before;
import org.junit.Test;

/**
* Unit test for evaluating the Root Directory TextField for the RESTUploadPathMapper.
*/
public class RESTPanelTest extends GeoServerWicketTestSupport {

    /** Workspace info object called "cite" */
    private WorkspaceInfo citeWorkspace;

    @Before
    public void init() {
        // Login
        login();
        // Selection of the workspace
        citeWorkspace = getCatalog().getWorkspaceByName(MockData.CITE_PREFIX);
        // Removing the settings associated to the workspace
        GeoServer gs = getGeoServer();
        SettingsInfo s = gs.getSettings(citeWorkspace);
        if (s != null) {
            gs.remove(s);
        }
        NamespaceInfo citeNS = getCatalog().getNamespaceByPrefix(MockData.CITE_PREFIX);
        citeNS.setURI(MockData.CITE_URI);
        getCatalog().save(citeNS);
    }

    @Test
    public void testRootSettingOnWorkSpace() {
        // Opening the selected page
        tester.startPage(new WorkspaceEditPage(citeWorkspace));
        tester.assertRenderedPage(WorkspaceEditPage.class);
        tester.assertNoErrorMessage();

        // Setting of the "settings" parameter to true
        FormTester form = tester.newFormTester("form");
        form.setValue("settings:enabled", true);
        form.submit();
        // Check if no error has been found
        tester.assertNoErrorMessage();
        // Get GeoServer object for retrieving the settings associated to the workspace
        GeoServer gs = getGeoServer();
        assertNotNull(gs.getSettings(citeWorkspace));
        // Reload the page
        tester.startPage(new WorkspaceEditPage(citeWorkspace));
        tester.assertRenderedPage(WorkspaceEditPage.class);

        // Selection of the root directory
        String root = getTestData().getDataDirectoryRoot().getAbsolutePath();
        // Set the root directory
        FormTester form2 = tester.newFormTester("form");
        form2.setValue("settings:settingsContainer:otherSettings:extensions:0:content:rootdir",
                root);
        form2.submit();
        // Check if no error has been found
        tester.assertNoErrorMessage();
        // Control if the defined root has been correctly set
        assertEquals(
                gs.getSettings(citeWorkspace).getMetadata().get(RESTUtils.ROOT_KEY, String.class),
                root);
    }

    @Test
    public void testRootSettingOnGlobal() {
        // Opening the selected page
        tester.startPage(new GlobalSettingsPage());
        tester.assertRenderedPage(GlobalSettingsPage.class);
        tester.assertNoErrorMessage();

        // Get GeoServer object for searching the global settings
        GeoServer gs = getGeoServer();

        // Selection of the root directory
        String root = getTestData().getDataDirectoryRoot().getAbsolutePath();
        // Set the root directory
        FormTester form = tester.newFormTester("form");
        form.setValue("extensions:0:content:rootdir", root);
        form.submit("submit");
        // Check if no error has been found
        tester.assertNoErrorMessage();
        // Control if the defined root has been correctly set
        assertEquals(
                gs.getGlobal().getSettings().getMetadata().get(RESTUtils.ROOT_KEY, String.class),
                root);
    }

    @Test
    public void testQuietSettingOnGlobal() {
        // Opening the selected page
        tester.startPage(new GlobalSettingsPage());
        tester.assertRenderedPage(GlobalSettingsPage.class);
        tester.assertNoErrorMessage();

        // Get GeoServer object for searching the global settings
        GeoServer gs = getGeoServer();

        // Set the root directory
        FormTester form = tester.newFormTester("form");
        form.setValue("extensions:0:content:quiet", false);
        form.submit("submit");
        // Check if no error has been found
        tester.assertNoErrorMessage();
        // Control if the defined root has been correctly set
        assertEquals(
                gs.getGlobal().getSettings().getMetadata().get(RESTUtils.QUIET_ON_NOT_FOUND_KEY, Boolean.class),
                false);
       
        // Opening the selected page
        tester.startPage(new GlobalSettingsPage());
        tester.assertRenderedPage(GlobalSettingsPage.class);
        tester.assertNoErrorMessage();

        // Get GeoServer object for searching the global settings
        gs = getGeoServer();

        // Set the root directory
        form = tester.newFormTester("form");
        form.setValue("extensions:0:content:quiet", true);
        form.submit("submit");
        // Check if no error has been found
        tester.assertNoErrorMessage();
        // Control if the defined root has been correctly set
        assertEquals(
                gs.getGlobal().getSettings().getMetadata().get(RESTUtils.QUIET_ON_NOT_FOUND_KEY, Boolean.class),
                true);
    }
}
TOP

Related Classes of org.geoserver.web.RESTPanelTest

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.