/* (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.workspace;
import static org.junit.Assert.*;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.util.tester.FormTester;
import org.geoserver.web.GeoServerWicketTestSupport;
import org.junit.Before;
import org.junit.Test;
public class WorkspaceNewPageTest extends GeoServerWicketTestSupport {
@Before
public void init() {
login();
tester.startPage(WorkspaceNewPage.class);
// print(tester.getLastRenderedPage(), true, true);
}
@Test
public void testLoad() {
tester.assertRenderedPage(WorkspaceNewPage.class);
tester.assertNoErrorMessage();
tester.assertComponent("form:name", TextField.class);
tester.assertComponent("form:uri", TextField.class);
}
@Test
public void testNameRequired() {
FormTester form = tester.newFormTester("form");
form.setValue("uri", "http://www.geoserver.org");
form.submit();
tester.assertRenderedPage(WorkspaceNewPage.class);
tester.assertErrorMessages(new String[] {"Field 'Name' is required."});
}
@Test
public void testURIRequired() {
FormTester form = tester.newFormTester("form");
form.setValue("name", "test");
form.submit();
tester.assertRenderedPage(WorkspaceNewPage.class);
tester.assertErrorMessages(new String[] {"Field 'uri' is required."});
}
@Test
public void testValid() {
FormTester form = tester.newFormTester("form");
form.setValue("name", "abc");
form.setValue("uri", "http://www.geoserver.org");
form.setValue("default", "true");
form.submit();
tester.assertRenderedPage(WorkspacePage.class);
tester.assertNoErrorMessage();
assertEquals("abc", getCatalog().getDefaultWorkspace().getName());
}
@Test
public void testInvalidURI() {
FormTester form = tester.newFormTester("form");
form.setValue("name", "def");
form.setValue("uri", "not a valid uri");
form.submit();
tester.assertRenderedPage(WorkspaceNewPage.class);
tester.assertErrorMessages(new String[] {"Invalid URI syntax: not a valid uri"});
}
@Test
public void testInvalidName() {
FormTester form = tester.newFormTester("form");
form.setValue("name", "default");
form.setValue("uri", "http://www.geoserver.org");
form.submit();
tester.assertRenderedPage(WorkspaceNewPage.class);
tester.assertErrorMessages(new String[] {"Invalid workspace name: \"default\" is a reserved keyword"});
}
}