// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.gui.history;
import static org.junit.Assert.fail;
import java.awt.BorderLayout;
import java.io.File;
import java.text.MessageFormat;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import org.junit.BeforeClass;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
import org.openstreetmap.josm.data.osm.SimplePrimitiveId;
import org.openstreetmap.josm.data.osm.history.History;
import org.openstreetmap.josm.data.osm.history.HistoryDataSet;
import org.openstreetmap.josm.data.projection.Mercator;
import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
import org.openstreetmap.josm.io.OsmServerHistoryReader;
import org.openstreetmap.josm.io.OsmTransferException;
public class HistoryBrowserTest extends JFrame {
static private Logger logger = Logger.getLogger(HistoryBrowserTest.class.getName());
static Properties testProperties;
@BeforeClass
static public void init() {
testProperties = new Properties();
// load properties
//
try {
testProperties.load(HistoryBrowserTest.class.getResourceAsStream("/test-functional-env.properties"));
} catch(Exception e){
logger.log(Level.SEVERE, MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties"));
fail(MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties"));
}
// check josm.home
//
String josmHome = testProperties.getProperty("josm.home");
if (josmHome == null) {
fail(MessageFormat.format("property ''{0}'' not set in test environment", "josm.home"));
} else {
File f = new File(josmHome);
if (! f.exists() || ! f.canRead()) {
fail(MessageFormat.format("property ''{0}'' points to ''{1}'' which is either not existing or not readable", "josm.home", josmHome));
}
}
System.setProperty("josm.home", josmHome);
Main.pref.init(false);
// init projection
Main.proj = new Mercator();
}
private HistoryBrowser browser;
protected void build() {
setSize(500,500);
getContentPane().setLayout(new BorderLayout());
browser = new HistoryBrowser();
getContentPane().add(browser, BorderLayout.CENTER);
}
protected void populate(OsmPrimitiveType type, long id) {
OsmServerHistoryReader reader = new OsmServerHistoryReader(type, id);
HistoryDataSet ds = null;
try {
ds = reader.parseHistory(NullProgressMonitor.INSTANCE);
} catch(OsmTransferException e) {
e.printStackTrace();
return;
}
History h = ds.getHistory(new SimplePrimitiveId(id, type));
browser.populate(h);
}
public HistoryBrowserTest(){
build();
//populate(OsmPrimitiveType.NODE,354117);
//populate(OsmPrimitiveType.WAY,37951);
populate(OsmPrimitiveType.RELATION,5055);
}
static public void main(String args[]) {
HistoryBrowserTest.init();
new HistoryBrowserTest().setVisible(true);
}
}