package org.geoserver.web.wicket.browser; import java.io.File; import org.apache.commons.io.FileUtils; import org.apache.wicket.Component; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.model.Model; import org.geoserver.web.ComponentBuilder; import org.geoserver.web.FormTestPage; import org.geoserver.web.GeoServerWicketTestSupport; import org.geoserver.web.wicket.WicketHierarchyPrinter; public class GeoServerFileChooserTest extends GeoServerWicketTestSupport { private File root; private File one; private File two; private File child; @Override protected void setUpInternal() throws Exception { super.setUpInternal(); root = new File("target/test-filechooser"); if(root.exists()) FileUtils.deleteDirectory(root); child = new File(root, "child"); child.mkdirs(); one = new File(child, "one.txt"); one.createNewFile(); two = new File(child, "two.sld"); two.createNewFile(); } public void setupChooser(final File file) { tester.startPage(new FormTestPage(new ComponentBuilder() { public Component buildComponent(String id) { return new GeoServerFileChooser(id, new Model(file)); } })); //WicketHierarchyPrinter.print(tester.getLastRenderedPage(), true, true); } public void testLoad() { setupChooser(root); tester.assertRenderedPage(FormTestPage.class); tester.assertNoErrorMessage(); tester.assertLabel("form:panel:fileTable:fileTable:fileContent:files:1:nameLink:name", "child/"); assertEquals(1, ((DataView) tester.getComponentFromLastRenderedPage("form:panel:fileTable:fileTable:fileContent:files")).size()); } public void testNullRoot() { setupChooser(null); // make sure it does not now blow out because of the null tester.assertRenderedPage(FormTestPage.class); tester.assertNoErrorMessage(); tester.assertLabel("form:panel:breadcrumbs:path:0:pathItemLink:pathItem", getTestData().getDataDirectoryRoot().getName() + "/"); } }