source: josm/trunk/test/unit/org/openstreetmap/josm/tools/OsmPrimitiveImageProviderTest.java@ 16926

Last change on this file since 16926 was 16926, checked in by simon04, 4 years ago

fix #19706 - Selection/Relation list: render primitive icons in HiDPI

File size: 2.8 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.tools;
3
4import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
5import org.junit.BeforeClass;
6import org.junit.Rule;
7import org.junit.Test;
8import org.openstreetmap.josm.JOSMFixture;
9import org.openstreetmap.josm.data.osm.Node;
10import org.openstreetmap.josm.data.osm.OsmUtils;
11import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
12import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetsTest;
13import org.openstreetmap.josm.testutils.JOSMTestRules;
14import org.openstreetmap.josm.tools.OsmPrimitiveImageProvider.Options;
15
16import java.awt.Dimension;
17import java.util.EnumSet;
18
19import static org.junit.Assert.assertEquals;
20import static org.junit.Assert.assertNotNull;
21import static org.junit.Assert.assertNull;
22
23import javax.swing.ImageIcon;
24
25/**
26 * Unit tests of {@link OsmPrimitiveImageProvider}
27 */
28public class OsmPrimitiveImageProviderTest {
29
30 /**
31 * Setup test.
32 */
33 @Rule
34 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
35 public JOSMTestRules test = new JOSMTestRules().mapStyles().presets();
36
37 /**
38 * Setup test.
39 */
40 @BeforeClass
41 public static void setUp() {
42 JOSMFixture.createUnitTestFixture().init();
43 }
44
45 /**
46 * Unit test of {@link OsmPrimitiveImageProvider#getResource}.
47 */
48 @Test
49 public void testGetResource() {
50 TaggingPresetsTest.waitForIconLoading(TaggingPresets.getTaggingPresets());
51
52 final EnumSet<Options> noDefault = EnumSet.of(Options.NO_DEFAULT);
53 final Dimension iconSize = new Dimension(16, 16);
54
55 assertNull(ImageProvider.getPadded(new Node(), new Dimension(0, 0)));
56 assertNotNull(ImageProvider.getPadded(new Node(), iconSize));
57 assertNull(OsmPrimitiveImageProvider.getResource(new Node(), noDefault));
58 assertNotNull(OsmPrimitiveImageProvider.getResource(OsmUtils.createPrimitive("node amenity=restaurant"), noDefault));
59 assertNull(OsmPrimitiveImageProvider.getResource(OsmUtils.createPrimitive("node barrier=hedge"),
60 EnumSet.of(Options.NO_DEFAULT, Options.NO_DEPRECATED)));
61 assertNotNull(OsmPrimitiveImageProvider.getResource(OsmUtils.createPrimitive("way waterway=stream"), noDefault));
62 assertNotNull(OsmPrimitiveImageProvider.getResource(OsmUtils.createPrimitive("relation type=route route=railway"), noDefault));
63 // a non-square svg icon
64 final ImageIcon bankIcon = OsmPrimitiveImageProvider
65 .getResource(OsmUtils.createPrimitive("node amenity=bank"), Options.DEFAULT)
66 .getPaddedIcon(ImageProvider.ImageSizes.LARGEICON.getImageDimension());
67 assertEquals(ImageProvider.ImageSizes.LARGEICON.getVirtualWidth(), bankIcon.getIconWidth());
68 assertEquals(ImageProvider.ImageSizes.LARGEICON.getVirtualHeight(), bankIcon.getIconHeight());
69 }
70}
Note: See TracBrowser for help on using the repository browser.