package org.geoserver.web.security.catalog;
import org.apache.wicket.Component;
import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.markup.html.form.RadioChoice;
import org.apache.wicket.util.tester.FormTester;
import org.geoserver.security.CatalogMode;
import org.geoserver.security.impl.DataAccessRuleDAO;
import org.geoserver.web.GeoServerWicketTestSupport;
public class CatalogModePageTest extends GeoServerWicketTestSupport {
private DataAccessRuleDAO dao;
private CatalogMode catalogMode;
@Override
protected void setUpInternal() throws Exception {
dao = DataAccessRuleDAO.get();
catalogMode = dao.getMode();
login();
tester.startPage(CatalogModePage.class);
}
public void testRenders() throws Exception {
tester.assertRenderedPage(CatalogModePage.class);
}
public void testDefaultCatalogMode() throws Exception {
tester.assertRenderedPage(CatalogModePage.class);
assertEquals("HIDE", tester.getComponentFromLastRenderedPage("catalogModeForm:catalogMode")
.getDefaultModelObject().toString());
}
public void testEditCatalogMode() throws Exception {
tester.assertRenderedPage(CatalogModePage.class);
// simple test
assertFalse(("CHALLENGE".equals(tester.getComponentFromLastRenderedPage(
"catalogModeForm:catalogMode").getDefaultModelObject())));
// edit catalogMode value
final FormTester form = tester.newFormTester("catalogModeForm");
form.select("catalogMode", 1);
form.getForm().visitChildren(RadioChoice.class, new IVisitor() {
public Object component(final Component component) {
if (component.getId().equals("catalogMode")) {
((RadioChoice) component).onSelectionChanged();
}
return CONTINUE_TRAVERSAL;
}
});
assertEquals("MIXED", tester.getComponentFromLastRenderedPage(
"catalogModeForm:catalogMode").getDefaultModelObject().toString());
}
}