Fix an issue where an NPE occurred during tests, and prevent crashes if icons are missing

Signed-off-by: Taylor Smock <taylor.smock@kaart.com>
pull/1/head
Taylor Smock 2019-11-21 13:04:13 -07:00
rodzic 22504d91df
commit c78074a929
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 625F6A74A3E4311A
2 zmienionych plików z 13 dodań i 8 usunięć

Wyświetl plik

@ -11,7 +11,7 @@ import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Collectors;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
@ -172,7 +172,8 @@ public class MapWithAILayer extends OsmDataLayer implements ActiveLayerChangeLis
}
@Override
public ImageIcon getIcon() {
return ImageProvider.get("mapwithai", ImageProvider.ImageSizes.LAYER);
public Icon getIcon() {
return ImageProvider.getIfAvailable("mapwithai") == null ? super.getIcon()
: ImageProvider.get("mapwithai", ImageProvider.ImageSizes.LAYER);
}
}

Wyświetl plik

@ -11,6 +11,7 @@ import java.util.Map;
import java.util.TreeSet;
import java.util.stream.Collectors;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
@ -31,7 +32,6 @@ import org.openstreetmap.josm.gui.mappaint.StyleSource;
import org.openstreetmap.josm.testutils.JOSMTestRules;
import com.github.tomakehurst.wiremock.WireMockServer;
import com.github.tomakehurst.wiremock.junit.WireMockRule;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@ -40,12 +40,11 @@ public class MapWithAIDataUtilsTest {
@SuppressFBWarnings("URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
public JOSMTestRules test = new JOSMTestRules().preferences().main().projection();
@Rule
public WireMockRule wireMockRule = new WireMockRule(options().usingFilesUnderDirectory("test/resources/wiremock"));
WireMockServer wireMockServer;
WireMockServer wireMock = new WireMockServer(options().usingFilesUnderDirectory("test/resources/wiremock"));
@Before
public void setUp() {
wireMock.start();
MapWithAIPreferenceHelper.setMapWithAIURLs(MapWithAIPreferenceHelper.getMapWithAIURLs().stream().map(map -> {
map.put("url", getDefaultMapWithAIAPIForTest(
map.getOrDefault("url", MapWithAIPreferenceHelper.DEFAULT_MAPWITHAI_API)));
@ -53,12 +52,17 @@ public class MapWithAIDataUtilsTest {
}).collect(Collectors.toList()));
}
@After
public void tearDown() {
wireMock.stop();
}
private String getDefaultMapWithAIAPIForTest(String url) {
return getDefaultMapWithAIAPIForTest(url, "https://www.facebook.com");
}
private String getDefaultMapWithAIAPIForTest(String url, String wireMockReplace) {
return url.replace(wireMockReplace, wireMockRule.baseUrl());
return url.replace(wireMockReplace, wireMock.baseUrl());
}
/**