/* (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.store.panel; import static org.junit.Assert.*; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.HashMap; import java.util.Map; import org.apache.wicket.model.Model; import org.geoserver.data.test.MockData; import org.geoserver.web.util.MapModel; import org.junit.Before; import org.junit.Test; public class FileModelTest { File root; @Before public void init() throws IOException { root = File.createTempFile("file", "test", new File("target")); root.delete(); root.mkdirs(); } @Test public void testAbsolute() throws IOException { // create test file File f = new File("target/fileModelTest.xml"); try { f.createNewFile(); FileModel model = new FileModel(new Model<String>(), root); model.setObject(f.getAbsolutePath()); String path = (String) model.getObject(); assertEquals("file://" + f.getAbsolutePath(), path); } finally { f.delete(); } } @Test public void testAbsoluteToRelative() throws IOException { // pick up an existing file File data = new File(root, "data"); File cite = new File(data, MockData.CITE_PREFIX); File buildings = new File(cite, "Buildings.properties"); FileModel model = new FileModel(new Model<String>(), root); model.setObject(buildings.getAbsolutePath()); String path = (String) model.getObject(); assertEquals("file:data/cite/Buildings.properties", path); } @Test public void testRelativeUnmodified() throws IOException { FileModel model = new FileModel(new Model<String>(), root); model.setObject("file:data/cite/Buildings.properties"); String path = (String) model.getObject(); assertEquals("file:data/cite/Buildings.properties", path); } @Test public void testURL() throws IOException { Map map = new HashMap(); map.put("url", new URL("file:data/cite/Buildings.properties")); MapModel mapModel = new MapModel(map, "url"); FileModel model = new FileModel(mapModel, root); String path = (String) model.getObject(); assertEquals("file:data/cite/Buildings.properties", path); } }