Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/imagery/WMTSTileSource.java
r18567 r18568 615 615 // Java has issues if spaces are not URL encoded. Ensure that we URL encode the spaces. 616 616 if (layer.format.contains(" ")) { 617 layer.format = layer.format.replace(" ", " &20");617 layer.format = layer.format.replace(" ", "%20"); 618 618 } 619 619 return layer; -
trunk/test/unit/org/openstreetmap/josm/data/imagery/WMTSTileSourceTest.java
r18526 r18568 2 2 package org.openstreetmap.josm.data.imagery; 3 3 4 import static org.junit.jupiter.api.Assertions.assertAll; 4 5 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; 5 6 import static org.junit.jupiter.api.Assertions.assertEquals; … … 11 12 import java.io.File; 12 13 import java.io.IOException; 14 import java.lang.reflect.Field; 13 15 import java.net.MalformedURLException; 16 import java.nio.charset.StandardCharsets; 14 17 import java.nio.file.Files; 15 18 import java.nio.file.Paths; 16 19 import java.util.ArrayList; 17 20 import java.util.Arrays; 21 import java.util.Collections; 18 22 import java.util.List; 19 23 import java.util.concurrent.TimeUnit; 20 24 25 import com.github.tomakehurst.wiremock.WireMockServer; 26 import com.github.tomakehurst.wiremock.client.WireMock; 27 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; 28 import org.apache.commons.io.FileUtils; 21 29 import org.junit.jupiter.api.Disabled; 22 30 import org.junit.jupiter.api.Test; 23 31 import org.junit.jupiter.api.extension.RegisterExtension; 32 import org.junit.jupiter.api.io.TempDir; 33 import org.junit.jupiter.params.ParameterizedTest; 34 import org.junit.jupiter.params.provider.ValueSource; 24 35 import org.openstreetmap.gui.jmapviewer.FeatureAdapter; 25 36 import org.openstreetmap.gui.jmapviewer.TileXY; … … 36 47 import org.openstreetmap.josm.testutils.annotations.BasicPreferences; 37 48 import org.openstreetmap.josm.testutils.annotations.BasicWiremock; 38 39 import com.github.tomakehurst.wiremock.WireMockServer; 40 import com.github.tomakehurst.wiremock.client.WireMock; 41 42 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; 49 import org.openstreetmap.josm.tools.ReflectionUtils; 43 50 44 51 /** … … 401 408 ))); 402 409 403 Config.getPref().putList("imagery.layers.sites", Arrays.asList(tileServer.url("//maps")));410 Config.getPref().putList("imagery.layers.sites", Collections.singletonList(tileServer.url("//maps"))); 404 411 ImageryLayerInfo.instance.loadDefaults(true, null, false); 405 412 … … 484 491 } 485 492 } 493 494 @ParameterizedTest 495 @ValueSource(strings = {"image/jpgpng", "image/png8", "image/png; mode=8bit", "image/jpeg", "image/jpg"}) 496 void testSupportedMimeTypesUrlEncode(String mimeType, @TempDir File temporaryDirectory) 497 throws IOException, WMTSGetCapabilitiesException, ReflectiveOperationException { 498 final String data = FileUtils.readFileToString(new File(TestUtils.getTestDataRoot() + 499 "wmts/bug13975-multiple-tile-matrices-for-one-layer-projection.xml"), StandardCharsets.UTF_8) 500 .replace("image/jpgpng", mimeType); 501 File file = new File(temporaryDirectory, "testSupportedMimeTypes.xml"); 502 FileUtils.writeStringToFile(file, data, StandardCharsets.UTF_8); 503 WMTSCapabilities capabilities = WMTSTileSource.getCapabilities(file.toURI().toURL().toExternalForm(), Collections.emptyMap()); 504 assertEquals(2, capabilities.getLayers().size()); 505 Field format = WMTSTileSource.Layer.class.getDeclaredField("format"); 506 ReflectionUtils.setObjectsAccessible(format); 507 assertAll(capabilities.getLayers().stream().map(layer -> assertDoesNotThrow(() -> format.get(layer))) 508 .map(layer -> () -> assertEquals(mimeType.replace(" ", "%20"), layer))); 509 } 486 510 }
Note:
See TracChangeset
for help on using the changeset viewer.