source: josm/trunk/test/unit/org/openstreetmap/josm/gui/dialogs/layer/CycleLayerActionTest.java@ 17279

Last change on this file since 17279 was 17279, checked in by Don-vip, 3 years ago

see #16567 - revert r17275 for CycleLayerActionTest / MinimapDialogTest

They depend on fakeImagery, which does not work yet with JUnit 5

  • Property svn:eol-style set to native
File size: 3.7 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs.layer;
3
4import static org.junit.Assert.assertEquals;
5import static org.openstreetmap.josm.tools.I18n.tr;
6
7import org.junit.Before;
8import org.junit.Rule;
9import org.junit.Test;
10import org.openstreetmap.josm.data.imagery.ImageryInfo;
11import org.openstreetmap.josm.data.imagery.ImageryLayerInfo;
12import org.openstreetmap.josm.data.osm.DataSet;
13import org.openstreetmap.josm.gui.MainApplication;
14import org.openstreetmap.josm.gui.layer.ImageryLayer;
15import org.openstreetmap.josm.gui.layer.MainLayerManager;
16import org.openstreetmap.josm.gui.layer.OsmDataLayer;
17import org.openstreetmap.josm.testutils.JOSMTestRules;
18
19import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
20
21/**
22 * Test class for {@link CycleLayerDownAction}
23 *
24 * @author Taylor Smock
25 */
26public class CycleLayerActionTest {
27 /** Layers need a projection */
28 @Rule
29 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
30 public JOSMTestRules test = new JOSMTestRules().main().preferences().projection().fakeImagery();
31
32 private CycleLayerDownAction cycleDown;
33 private CycleLayerUpAction cycleUp;
34 private MainLayerManager manager;
35
36 /**
37 * Set up common items (make layers, etc.)
38 */
39 @Before
40 public void setUp() {
41 cycleDown = new CycleLayerDownAction();
42 cycleUp = new CycleLayerUpAction();
43 manager = MainApplication.getLayerManager();
44 for (int i = 0; i < 10; i++) {
45 manager.addLayer(new OsmDataLayer(new DataSet(), tr("Layer {0}", i), null));
46 }
47 }
48
49 /**
50 * Test going down from the bottom
51 */
52 @Test
53 public void testDownBottom() {
54 manager.setActiveLayer(manager.getLayers().get(0));
55 cycleDown.actionPerformed(null);
56 assertEquals(manager.getLayers().size() - 1, manager.getLayers().indexOf(manager.getActiveLayer()));
57 }
58
59 /**
60 * Check going up from the top
61 */
62 @Test
63 public void testUpTop() {
64 manager.setActiveLayer(manager.getLayers().get(manager.getLayers().size() - 1));
65 cycleUp.actionPerformed(null);
66 assertEquals(0, manager.getLayers().indexOf(manager.getActiveLayer()));
67 }
68
69 /**
70 * Check going down
71 */
72 @Test
73 public void testDown() {
74 manager.setActiveLayer(manager.getLayers().get(3));
75 cycleDown.actionPerformed(null);
76 assertEquals(2, manager.getLayers().indexOf(manager.getActiveLayer()));
77 }
78
79 /**
80 * Check going up
81 */
82 @Test
83 public void testUp() {
84 manager.setActiveLayer(manager.getLayers().get(3));
85 cycleUp.actionPerformed(null);
86 assertEquals(4, manager.getLayers().indexOf(manager.getActiveLayer()));
87 }
88
89 /**
90 * Test no layers
91 */
92 @Test
93 public void testNoLayers() {
94 manager.getLayers().forEach(manager::removeLayer);
95 cycleUp.actionPerformed(null);
96 cycleDown.actionPerformed(null);
97 assertEquals(0, manager.getLayers().size());
98 }
99
100 /**
101 * Test with an aerial imagery layer
102 */
103 @Test
104 public void testWithAerialImagery() {
105 final ImageryInfo magentaTilesInfo = ImageryLayerInfo.instance.getLayers().stream()
106 .filter(i -> i.getName().equals("Magenta Tiles")).findAny().get();
107 ImageryLayer imageryLayer = ImageryLayer.create(magentaTilesInfo);
108 manager.addLayer(imageryLayer);
109 manager.moveLayer(imageryLayer, 5);
110 manager.setActiveLayer(manager.getLayers().get(4));
111 cycleUp.actionPerformed(null);
112 assertEquals(6, manager.getLayers().indexOf(manager.getActiveLayer()));
113 cycleDown.actionPerformed(null);
114 assertEquals(4, manager.getLayers().indexOf(manager.getActiveLayer()));
115 }
116}
Note: See TracBrowser for help on using the repository browser.