source: josm/trunk/test/unit/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayerTest.java@ 11910

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

initialize AbstractTileSourceLayerTest

  • Property svn:eol-style set to native
File size: 6.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.layer;
3
4import static org.junit.Assert.assertEquals;
5import static org.junit.Assert.assertFalse;
6import static org.junit.Assert.assertNotNull;
7import static org.junit.Assert.assertTrue;
8
9import java.awt.Point;
10import java.util.Collection;
11import java.util.Map;
12import java.util.concurrent.atomic.AtomicBoolean;
13
14import org.junit.Before;
15import org.junit.Rule;
16import org.junit.Test;
17import org.openstreetmap.gui.jmapviewer.Coordinate;
18import org.openstreetmap.gui.jmapviewer.Projected;
19import org.openstreetmap.gui.jmapviewer.Tile;
20import org.openstreetmap.gui.jmapviewer.TileRange;
21import org.openstreetmap.gui.jmapviewer.TileXY;
22import org.openstreetmap.gui.jmapviewer.interfaces.ICoordinate;
23import org.openstreetmap.gui.jmapviewer.interfaces.IProjected;
24import org.openstreetmap.gui.jmapviewer.interfaces.TileCache;
25import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader;
26import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener;
27import org.openstreetmap.gui.jmapviewer.tilesources.AbstractTMSTileSource;
28import org.openstreetmap.gui.jmapviewer.tilesources.TileSourceInfo;
29import org.openstreetmap.josm.data.imagery.ImageryInfo;
30import org.openstreetmap.josm.data.imagery.TileLoaderFactory;
31import org.openstreetmap.josm.gui.layer.imagery.ImageryFilterSettings;
32import org.openstreetmap.josm.testutils.JOSMTestRules;
33
34import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
35
36/**
37 * Test of the base {@link AbstractTileSourceLayer} class
38 */
39public class AbstractTileSourceLayerTest {
40
41 /**
42 * Setup test
43 */
44 @Rule
45 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
46 public JOSMTestRules test = new JOSMTestRules().platform().projection().commands();
47
48 private static final class TMSTileStubSource extends AbstractTMSTileSource {
49 private TMSTileStubSource() {
50 super(new TileSourceInfo());
51 }
52
53 @Override
54 public double getDistance(double la1, double lo1, double la2, double lo2) {
55 // TODO Auto-generated method stub
56 return 0;
57 }
58
59 @Override
60 public Point latLonToXY(double lat, double lon, int zoom) {
61 // TODO Auto-generated method stub
62 return null;
63 }
64
65 @Override
66 public ICoordinate xyToLatLon(int x, int y, int zoom) {
67 // TODO Auto-generated method stub
68 return null;
69 }
70
71 @Override
72 public TileXY latLonToTileXY(double lat, double lon, int zoom) {
73 return new TileXY(lon / 2, lat / 2);
74 }
75
76 @Override
77 public ICoordinate tileXYToLatLon(int x, int y, int zoom) {
78 return new Coordinate(2*y, 2*x);
79 }
80
81 @Override
82 public IProjected tileXYtoProjected(int x, int y, int zoom) {
83 return new Projected(2*x, 2*y);
84 }
85
86 @Override
87 public TileXY projectedToTileXY(IProjected p, int zoom) {
88 return new TileXY(p.getEast() / 2, p.getNorth() / 2);
89 }
90
91 @Override
92 public boolean isInside(Tile inner, Tile outer) {
93 // TODO Auto-generated method stub
94 return false;
95 }
96
97 @Override
98 public TileRange getCoveringTileRange(Tile tile, int newZoom) {
99 // TODO Auto-generated method stub
100 return null;
101 }
102
103 @Override
104 public String getServerCRS() {
105 return "EPSG:3857";
106 }
107 }
108
109 private static class TileSourceStubLayer extends AbstractTileSourceLayer<AbstractTMSTileSource> {
110
111 TileSourceStubLayer() {
112 super(new ImageryInfo());
113 hookUpMapView();
114 }
115
116 @Override
117 protected TileLoaderFactory getTileLoaderFactory() {
118 return new TileLoaderFactory() {
119 @Override
120 public TileLoader makeTileLoader(TileLoaderListener listener, Map<String, String> headers) {
121 return null;
122 }
123 };
124 }
125
126 @Override
127 public Collection<String> getNativeProjections() {
128 return null;
129 }
130
131 @Override
132 protected AbstractTMSTileSource getTileSource() {
133 return new TMSTileStubSource();
134 }
135
136 TileCache getTileCache() {
137 return tileCache;
138 }
139 }
140
141 private TileSourceStubLayer testLayer;
142 AtomicBoolean invalidated = new AtomicBoolean();
143
144 /**
145 * Create test layer
146 */
147 @Before
148 public void setUp() {
149 testLayer = new TileSourceStubLayer();
150 testLayer.addInvalidationListener(l -> invalidated.set(true));
151 }
152
153 /**
154 * Test {@link AbstractTileSourceLayer#filterChanged}
155 */
156 @Test
157 public void testFilterChanged() {
158 try {
159 ImageryFilterSettings filterSettings = new ImageryFilterSettings();
160 filterSettings.addFilterChangeListener(testLayer);
161 assertFalse(invalidated.get());
162 filterSettings.setGamma(0.5);
163 assertTrue(invalidated.get());
164 } finally {
165 invalidated.set(false);
166 }
167 }
168
169 /**
170 * Test {@link AbstractTileSourceLayer#redraw}
171 */
172 @Test
173 public void testRedraw() {
174 try {
175 assertFalse(invalidated.get());
176 testLayer.redraw();
177 assertTrue(invalidated.get());
178 } finally {
179 invalidated.set(false);
180 }
181 }
182
183 /**
184 * Test {@link AbstractTileSourceLayer#clearTileCache}
185 */
186 @Test
187 public void testClearTileCache() {
188 testLayer.loadAllTiles(true);
189 assertTrue(testLayer.getTileCache().getTileCount() > 0);
190 testLayer.clearTileCache();
191 assertEquals(0, testLayer.getTileCache().getTileCount());
192 }
193
194 /**
195 * Test {@link AbstractTileSourceLayer#getAdjustAction}
196 */
197 @Test
198 public void testGetAdjustAction() {
199 assertNotNull(testLayer.getAdjustAction());
200 }
201
202 /**
203 * Test {@link AbstractTileSourceLayer#getInfoComponent}
204 */
205 @Test
206 public void testGetInfoComponent() {
207 assertNotNull(testLayer.getInfoComponent());
208 }
209
210 /**
211 * Test {@link AbstractTileSourceLayer.TileSourceLayerPopup}
212 */
213 @Test
214 public void testTileSourceLayerPopup() {
215 assertNotNull(testLayer.new TileSourceLayerPopup());
216 }
217}
Note: See TracBrowser for help on using the repository browser.