/* (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.wicket.browser;
import static org.junit.Assert.*;
import java.io.File;
import junit.framework.TestCase;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.tester.WicketTester;
import org.geoserver.web.ComponentBuilder;
import org.geoserver.web.FormTestPage;
import org.junit.Before;
import org.junit.Test;
public class FileBreadcrumsTest {
private WicketTester tester;
private File root;
private File leaf;
private File lastClicked;
@Before
public void setUp() throws Exception {
tester = new WicketTester();
root = new File("target/test-breadcrumbs");
leaf = new File("target/test-breadcrumbs/one/two/three");
if(!leaf.exists())
leaf.mkdirs();
tester.startPage(new FormTestPage(new ComponentBuilder() {
public Component buildComponent(String id) {
return new FileBreadcrumbs(id, new Model(root), new Model(leaf)) {
@Override
protected void pathItemClicked(File file, AjaxRequestTarget target) {
lastClicked = file;
setSelection(file);
}
};
}
}));
// WicketHierarchyPrinter.print(tester.getLastRenderedPage(), true, true);
}
@Test
public void testLoad() throws Exception {
tester.assertRenderedPage(FormTestPage.class);
tester.assertNoErrorMessage();
tester.assertLabel("form:panel:path:0:pathItemLink:pathItem", "test-breadcrumbs/");
tester.assertLabel("form:panel:path:1:pathItemLink:pathItem", "one/");
tester.assertLabel("form:panel:path:2:pathItemLink:pathItem", "two/");
tester.assertLabel("form:panel:path:3:pathItemLink:pathItem", "three/");
}
@Test
public void testFollowLink() throws Exception {
tester.clickLink("form:panel:path:1:pathItemLink");
tester.assertRenderedPage(FormTestPage.class);
tester.assertNoErrorMessage();
assertEquals(new File("target/test-breadcrumbs/one"), lastClicked);
tester.assertLabel("form:panel:path:0:pathItemLink:pathItem", "test-breadcrumbs/");
tester.assertLabel("form:panel:path:1:pathItemLink:pathItem", "one/");
assertEquals(2, ((ListView) tester.getComponentFromLastRenderedPage("form:panel:path")).getList().size());
}
}