/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.solr; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import java.io.File; import java.util.List; import org.apache.wicket.MarkupContainer; import org.apache.wicket.feedback.FeedbackMessage; 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.web.GeoServerWicketTestSupport; import org.geoserver.web.data.store.DataAccessNewPage; import org.geoserver.web.data.workspace.WorkspacesModel; import org.geotools.data.solr.SolrDataStoreFactory; import org.junit.Test; public class SolrStorePageTest extends GeoServerWicketTestSupport { private DataAccessNewPage startPage() { final String dataStoreFactoryDisplayName = new SolrDataStoreFactory().getDisplayName(); final DataAccessNewPage page = new DataAccessNewPage(dataStoreFactoryDisplayName); login(); tester.startPage(page); return page; } @Test public void testDeprecatedParamsHidden() throws Exception { startPage(); // print(tester.getLastRenderedPage(), true, true); // check the deprecated fields are not visible MarkupContainer container = (MarkupContainer) tester .getComponentFromLastRenderedPage("dataStoreForm:parametersPanel:parameters:1"); assertEquals("layer_mapper", container.getDefaultModelObject()); assertFalse(container.get("parameterPanel").isVisible()); container = (MarkupContainer) tester .getComponentFromLastRenderedPage("dataStoreForm:parametersPanel:parameters:2"); assertEquals("layer_name_field", container.getDefaultModelObject()); assertFalse(container.get("parameterPanel").isVisible()); } @Test public void testChangeWorkspaceNamespace() throws Exception { startPage(); WorkspaceInfo defaultWs = getCatalog().getDefaultWorkspace(); tester.assertModelValue("dataStoreForm:workspacePanel:border:border_body:paramValue", defaultWs); // print(tester.getLastRenderedPage(), true, true); // configure the store FormTester ft = tester.newFormTester("dataStoreForm", false); 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:parameters:0:parameterPanel:border:border_body:paramValue", "file://" + new File("./target").getCanonicalPath()); ft.select("workspacePanel:border:border_body:paramValue", 2); ft.submit("save"); tester.assertNoFeedbackMessage(FeedbackMessage.ERROR); // 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")); } }