/* (c) 2014 - 2016 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.web.data.store;
import static org.junit.Assert.*;
import java.util.List;
import org.apache.wicket.feedback.FeedbackMessage;
import org.apache.wicket.util.file.File;
import org.apache.wicket.util.tester.FormTester;
import org.geoserver.catalog.DataStoreInfo;
import org.geoserver.catalog.StoreInfo;
import org.geoserver.catalog.WorkspaceInfo;
import org.geoserver.data.test.MockData;
import org.geoserver.web.GeoServerWicketTestSupport;
import org.geoserver.web.data.workspace.WorkspacesModel;
import org.geotools.data.shapefile.ShapefileDirectoryFactory;
import org.junit.Test;
/**
* Test for the shapefile directory ppanel
*
* @author Andrea Aime
*/
public class ShapefileDirectoryStorePageTest extends GeoServerWicketTestSupport {
/**
* print page structure?
*/
private static final boolean debugMode = false;
private AbstractDataAccessPage startPage() {
final String dataStoreFactoryDisplayName = new ShapefileDirectoryFactory().getDisplayName();
final AbstractDataAccessPage page = new DataAccessNewPage(dataStoreFactoryDisplayName);
login();
tester.startPage(page);
if (debugMode) {
print(page, true, true, true);
}
return page;
}
@Test
public void testChangeWorkspaceNamespace() throws Exception {
startPage();
WorkspaceInfo defaultWs = getCatalog().getDefaultWorkspace();
tester.assertModelValue("dataStoreForm:workspacePanel:border:border_body:paramValue", defaultWs);
// configure the store
FormTester ft = tester.newFormTester("dataStoreForm");
ft.setValue("dataStoreNamePanel:border:border_body:paramValue", "testStore");
ft.setValue("parametersPanel:url:border:border_body:paramValue", "file://" + new File("./target").getCanonicalPath());
ft.select("workspacePanel:border:border_body:paramValue", 2);
tester.executeAjaxEvent("dataStoreForm:workspacePanel:border:border_body:paramValue", "change");
ft.setValue("dataStoreNamePanel:border:border_body:paramValue", "testStore");
ft.setValue("parametersPanel:url:border:border_body:paramValue", "file://" + new File("./target").getCanonicalPath());
ft.select("workspacePanel:border:border_body:paramValue", 2);
ft.submit();
tester.executeAjaxEvent("dataStoreForm:save", "click");
// get the workspace we have just configured in the GUI
WorkspacesModel wm = new WorkspacesModel();
List<WorkspaceInfo> wl = (List<WorkspaceInfo>) wm.getObject();
WorkspaceInfo ws = wl.get(2);
// check it's the same
StoreInfo store = getCatalog().getStoreByName("testStore", DataStoreInfo.class);
assertEquals(getCatalog().getNamespaceByPrefix(ws.getName()).getURI(), store.getConnectionParameters().get("namespace"));
}
}