/* (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.web.data.store;
import static org.junit.Assert.*;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.ResourceModel;
import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.impl.CatalogImpl;
import org.geoserver.web.GeoServerWicketTestSupport;
import org.junit.Before;
import org.junit.Test;
public class NewDataPageTest extends GeoServerWicketTestSupport {
@Before
public void init() {
tester.startPage(new NewDataPage());
}
@Test
public void testLoad() {
tester.assertRenderedPage(NewDataPage.class);
tester.assertNoErrorMessage();
tester.assertComponent("storeForm:vectorResources", ListView.class);
tester.assertComponent("storeForm:rasterResources", ListView.class);
}
/**
* Need to use a static class so it has no back pointer to NewDataPageTest which is not serializable
* @author groldan
*
*/
private static class NewDataPageWithFakeCatalog extends NewDataPage{
@Override
protected Catalog getCatalog(){
return new CatalogImpl();
}
}
@Test
public void testLoadWithNoWorkspaces() {
tester.startPage(new NewDataPageWithFakeCatalog());
tester.assertRenderedPage(NewDataPageWithFakeCatalog.class);
String expectedErrMsg = (String) new ResourceModel("NewDataPage.noWorkspacesErrorMessage")
.getObject();
assertNotNull(expectedErrMsg);
tester.assertErrorMessages(new String[] { expectedErrMsg });
}
@Test
public void testClickLink() {
Label label = (Label) findComponentByContent(tester.getLastRenderedPage(), "Properties", Label.class);
// getPath() will start with 0: which indicates the page
tester.clickLink(label.getParent().getPath().substring(2));
tester.assertNoErrorMessage();
tester.assertRenderedPage(DataAccessNewPage.class);
// print(tester.getLastRenderedPage(), true, true);
tester.assertModelValue("dataStoreForm:storeType", "Properties");
}
}