/* (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.security.web.data;
import java.util.List;
import org.apache.wicket.Component;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
import org.geoserver.data.test.MockData;
import org.geoserver.security.impl.DataAccessRule;
import org.geoserver.security.impl.DataAccessRuleDAO;
import org.geoserver.security.web.AbstractConfirmRemovalPanelTest;
import org.geoserver.web.ComponentBuilder;
import org.geoserver.web.FormTestPage;
import org.junit.Test;
public class ConfirmRemovalDataAccessRulePanelTest extends AbstractConfirmRemovalPanelTest<DataAccessRule> {
private static final long serialVersionUID = 1L;
@Test
public void testRemoveRule() throws Exception {
initializeForXML();
removeObject();
}
@Override
protected void setupPanel(final List<DataAccessRule> roots) {
tester.startPage(new FormTestPage(new ComponentBuilder() {
private static final long serialVersionUID = 1L;
public Component buildComponent(String id) {
return new ConfirmRemovalDataAccessRulePanel(id, roots) {
@Override
protected IModel<String> canRemove(DataAccessRule data) {
SelectionDataRuleRemovalLink link = new SelectionDataRuleRemovalLink("XXX",null,null);
return link.canRemove(data);
}
private static final long serialVersionUID = 1L;
};
}
}));
}
@Override
protected DataAccessRule getRemoveableObject() throws Exception {
for (DataAccessRule rule : DataAccessRuleDAO.get().getRules()) {
if (MockData.CITE_PREFIX.equals(rule.getRoot()) &&
MockData.BRIDGES.getLocalPart().equals(rule.getLayer()))
return rule;
}
return null;
}
@Override
protected DataAccessRule getProblematicObject() throws Exception {
return null;
}
@Override
protected String getProblematicObjectRegExp() throws Exception {
return null;
}
@Override
protected String getRemoveableObjectRegExp() throws Exception {
DataAccessRule rule = getRemoveableObject();
return ".*"+rule.getRoot() + ".*" + rule.getLayer()
+".*" + "ROLE_WFS"+".*";
}
}