Ticket #19449: fix-testGetPadded.patch
| File fix-testGetPadded.patch, 10.8 KB (added by , 5 years ago) |
|---|
-
src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java b/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java index b383ab729..33a1eebb1 100644
a b public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi 228 228 } 229 229 File arch = TaggingPresetReader.getZipIcons(); 230 230 final Collection<String> s = Config.getPref().getList("taggingpreset.icon.sources", null); 231 this.iconFuture = new ImageProvider(iconName) 231 this.iconFuture = new CompletableFuture<>(); 232 new ImageProvider(iconName) 232 233 .setDirs(s) 233 234 .setId("presets") 234 235 .setArchive(arch) … … public class TaggingPreset extends AbstractAction implements ActiveLayerChangeLi 241 242 } catch (IllegalArgumentException e) { 242 243 Logging.warn(toString() + ": " + PRESET_ICON_ERROR_MSG_PREFIX + iconName); 243 244 Logging.warn(e); 245 } finally { 246 iconFuture.complete(null); 244 247 } 245 248 }); 246 249 } else { -
test/unit/org/openstreetmap/josm/TestUtils.java
diff --git a/test/unit/org/openstreetmap/josm/TestUtils.java b/test/unit/org/openstreetmap/josm/TestUtils.java index 464ab7d32..3729284ad 100644
a b import java.util.Objects; 29 29 import java.util.Set; 30 30 import java.util.concurrent.ExecutionException; 31 31 import java.util.concurrent.ThreadPoolExecutor; 32 import java.util.concurrent.TimeUnit; 33 import java.util.concurrent.TimeoutException; 32 34 import java.util.function.Function; 33 35 import java.util.stream.Collectors; 34 36 import java.util.stream.Stream; … … import org.openstreetmap.josm.gui.progress.AbstractProgressMonitor; 47 49 import org.openstreetmap.josm.gui.progress.CancelHandler; 48 50 import org.openstreetmap.josm.gui.progress.ProgressMonitor; 49 51 import org.openstreetmap.josm.gui.progress.ProgressTaskId; 52 import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset; 50 53 import org.openstreetmap.josm.gui.util.GuiHelper; 51 54 import org.openstreetmap.josm.io.Compression; 52 55 import org.openstreetmap.josm.testutils.FakeGraphics; 53 56 import org.openstreetmap.josm.testutils.mockers.JOptionPaneSimpleMocker; 54 57 import org.openstreetmap.josm.testutils.mockers.WindowMocker; 55 58 import org.openstreetmap.josm.tools.JosmRuntimeException; 59 import org.openstreetmap.josm.tools.Logging; 56 60 import org.openstreetmap.josm.tools.ReflectionUtils; 57 61 import org.openstreetmap.josm.tools.Utils; 58 62 import org.openstreetmap.josm.tools.WikiReader; … … public final class TestUtils { 602 606 .map(s -> s.substring(s.indexOf("{{{") + 3, s.indexOf("}}}"))) 603 607 .collect(Collectors.toList()); 604 608 } 609 610 public static void waitForIconLoading(Collection<TaggingPreset> presets) { 611 // wait for asynchronous icon loading 612 presets.parallelStream().map(TaggingPreset::getIconLoadingTask).filter(Objects::nonNull).forEach(t -> { 613 try { 614 t.get(30, TimeUnit.SECONDS); 615 } catch (InterruptedException | ExecutionException | TimeoutException e) { 616 Logging.error(e); 617 } 618 }); 619 } 605 620 } -
test/unit/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreferenceTestIT.java
diff --git a/test/unit/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreferenceTestIT.java b/test/unit/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreferenceTestIT.java index c2263a558..a391d0d4f 100644
a b import java.util.Collection; 12 12 import java.util.HashSet; 13 13 import java.util.List; 14 14 import java.util.Locale; 15 import java.util.Objects;16 15 import java.util.Set; 17 import java.util.concurrent.ExecutionException;18 import java.util.concurrent.TimeUnit;19 import java.util.concurrent.TimeoutException;20 16 21 17 import org.junit.BeforeClass; 22 18 import org.junit.ClassRule; … … public class TaggingPresetPreferenceTestIT extends AbstractExtendedSourceEntryTe 115 111 private void testPresets(Set<String> messages, ExtendedSourceEntry source) throws SAXException, IOException { 116 112 Collection<TaggingPreset> presets = TaggingPresetReader.readAll(source.url, true); 117 113 assertFalse(presets.isEmpty()); 118 // wait for asynchronous icon loading 119 presets.parallelStream().map(TaggingPreset::getIconLoadingTask).filter(Objects::nonNull).forEach(t -> { 120 try { 121 t.get(30, TimeUnit.SECONDS); 122 } catch (InterruptedException | ExecutionException | TimeoutException e) { 123 Logging.error(e); 124 } 125 }); 114 TestUtils.waitForIconLoading(presets); 126 115 // check that links are correct and not redirections 127 116 presets.parallelStream().flatMap(x -> x.data.stream().filter(i -> i instanceof Link).map(i -> ((Link) i).getUrl())).forEach(u -> { 128 117 try { -
new file test/unit/org/openstreetmap/josm/tools/ImageProviderGetPaddedTest.java
diff --git a/test/unit/org/openstreetmap/josm/tools/ImageProviderGetPaddedTest.java b/test/unit/org/openstreetmap/josm/tools/ImageProviderGetPaddedTest.java new file mode 100644 index 000000000..c3bdc5ccb
- + 1 // License: GPL. For details, see LICENSE file. 2 package org.openstreetmap.josm.tools; 3 4 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; 5 import org.junit.BeforeClass; 6 import org.junit.Rule; 7 import org.junit.Test; 8 import org.openstreetmap.josm.JOSMFixture; 9 import org.openstreetmap.josm.TestUtils; 10 import org.openstreetmap.josm.data.osm.Node; 11 import org.openstreetmap.josm.data.osm.OsmUtils; 12 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets; 13 import org.openstreetmap.josm.testutils.JOSMTestRules; 14 import org.openstreetmap.josm.tools.ImageProvider.GetPaddedOptions; 15 16 import java.awt.Dimension; 17 import java.util.EnumSet; 18 19 import static org.junit.Assert.assertNotNull; 20 import static org.junit.Assert.assertNull; 21 22 /** 23 * Unit tests of getPadded method of the {@link ImageProvider} class. 24 * This unit test is separated because it is the only one that needs a slow initialization. 25 */ 26 public class ImageProviderGetPaddedTest { 27 28 /** 29 * Setup test. 30 */ 31 @Rule 32 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD") 33 public JOSMTestRules test = new JOSMTestRules().mapStyles().presets(); 34 35 /** 36 * Setup test. 37 */ 38 @BeforeClass 39 public static void setUp() { 40 JOSMFixture.createUnitTestFixture().init(); 41 } 42 43 /** 44 * Unit test of {@link ImageProvider#getPadded}. 45 */ 46 @Test 47 public void testGetPadded() { 48 TestUtils.waitForIconLoading(TaggingPresets.getTaggingPresets()); 49 50 final EnumSet<GetPaddedOptions> noDefault = EnumSet.of(GetPaddedOptions.NO_DEFAULT); 51 final Dimension iconSize = new Dimension(16, 16); 52 53 assertNull(ImageProvider.getPadded(new Node(), new Dimension(0, 0))); 54 assertNotNull(ImageProvider.getPadded(new Node(), iconSize)); 55 assertNull(ImageProvider.getPadded(new Node(), iconSize, noDefault)); 56 assertNotNull(ImageProvider.getPadded(OsmUtils.createPrimitive("node amenity=restaurant"), iconSize, noDefault)); 57 assertNull(ImageProvider.getPadded(OsmUtils.createPrimitive("node barrier=hedge"), iconSize, 58 EnumSet.of(GetPaddedOptions.NO_DEFAULT, GetPaddedOptions.NO_DEPRECATED))); 59 assertNotNull(ImageProvider.getPadded(OsmUtils.createPrimitive("way waterway=stream"), iconSize, noDefault)); 60 assertNotNull(ImageProvider.getPadded(OsmUtils.createPrimitive("relation type=route route=railway"), iconSize, noDefault)); 61 } 62 } -
test/unit/org/openstreetmap/josm/tools/ImageProviderTest.java
diff --git a/test/unit/org/openstreetmap/josm/tools/ImageProviderTest.java b/test/unit/org/openstreetmap/josm/tools/ImageProviderTest.java index bdf0ae0e8..84dfe2e2d 100644
a b import static java.awt.image.BufferedImage.TYPE_INT_ARGB; 5 5 import static org.junit.Assert.assertEquals; 6 6 import static org.junit.Assert.assertFalse; 7 7 import static org.junit.Assert.assertNotNull; 8 import static org.junit.Assert.assertNull;9 8 import static org.junit.Assert.assertTrue; 10 9 11 10 import java.awt.Color; … … import java.awt.event.MouseListener; 22 21 import java.awt.image.BufferedImage; 23 22 import java.io.File; 24 23 import java.io.IOException; 25 import java.util.EnumSet;26 24 import java.util.List; 27 25 import java.util.logging.Handler; 28 26 import java.util.logging.LogRecord; … … import org.junit.Rule; 39 37 import org.junit.Test; 40 38 import org.openstreetmap.josm.JOSMFixture; 41 39 import org.openstreetmap.josm.TestUtils; 42 import org.openstreetmap.josm.data.osm.Node;43 import org.openstreetmap.josm.data.osm.OsmUtils;44 40 import org.openstreetmap.josm.testutils.JOSMTestRules; 45 import org.openstreetmap.josm.tools.ImageProvider.GetPaddedOptions;46 41 47 42 import com.kitfox.svg.SVGConst; 48 43 … … public class ImageProviderTest { 58 53 */ 59 54 @Rule 60 55 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD") 61 public JOSMTestRules test = new JOSMTestRules() .mapStyles().presets();56 public JOSMTestRules test = new JOSMTestRules(); 62 57 63 58 private static final class LogHandler14319 extends Handler { 64 59 boolean failed; … … public class ImageProviderTest { 152 147 "//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==")); 153 148 } 154 149 155 /**156 * Unit test of {@link ImageProvider#getPadded}.157 */158 @Test159 public void testGetPadded() {160 final EnumSet<GetPaddedOptions> noDefault = EnumSet.of(GetPaddedOptions.NO_DEFAULT);161 final Dimension iconSize = new Dimension(16, 16);162 163 assertNull(ImageProvider.getPadded(new Node(), new Dimension(0, 0)));164 assertNotNull(ImageProvider.getPadded(new Node(), iconSize));165 assertNull(ImageProvider.getPadded(new Node(), iconSize, noDefault));166 assertNotNull(ImageProvider.getPadded(OsmUtils.createPrimitive("node amenity=restaurant"), iconSize, noDefault));167 assertNull(ImageProvider.getPadded(OsmUtils.createPrimitive("node barrier=hedge"), iconSize,168 EnumSet.of(GetPaddedOptions.NO_DEFAULT, GetPaddedOptions.NO_DEPRECATED)));169 assertNotNull(ImageProvider.getPadded(OsmUtils.createPrimitive("way waterway=stream"), iconSize, noDefault));170 assertNotNull(ImageProvider.getPadded(OsmUtils.createPrimitive("relation type=route route=railway"), iconSize, noDefault));171 }172 173 150 /** 174 151 * Test getting a bounded icon given some UI scaling configured. 175 152 */
