/* (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);
}
}