Changeset 18568 in josm for trunk


Ignore:
Timestamp:
2022-10-05T15:50:33+02:00 (19 months ago)
Author:
taylor.smock
Message:

See #22391/r18567: fix typo (&20 -> %20 for ' ' url encoding)

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/imagery/WMTSTileSource.java

    r18567 r18568  
    615615        // Java has issues if spaces are not URL encoded. Ensure that we URL encode the spaces.
    616616        if (layer.format.contains(" ")) {
    617             layer.format = layer.format.replace(" ", "&20");
     617            layer.format = layer.format.replace(" ", "%20");
    618618        }
    619619        return layer;
  • trunk/test/unit/org/openstreetmap/josm/data/imagery/WMTSTileSourceTest.java

    r18526 r18568  
    22package org.openstreetmap.josm.data.imagery;
    33
     4import static org.junit.jupiter.api.Assertions.assertAll;
    45import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
    56import static org.junit.jupiter.api.Assertions.assertEquals;
     
    1112import java.io.File;
    1213import java.io.IOException;
     14import java.lang.reflect.Field;
    1315import java.net.MalformedURLException;
     16import java.nio.charset.StandardCharsets;
    1417import java.nio.file.Files;
    1518import java.nio.file.Paths;
    1619import java.util.ArrayList;
    1720import java.util.Arrays;
     21import java.util.Collections;
    1822import java.util.List;
    1923import java.util.concurrent.TimeUnit;
    2024
     25import com.github.tomakehurst.wiremock.WireMockServer;
     26import com.github.tomakehurst.wiremock.client.WireMock;
     27import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
     28import org.apache.commons.io.FileUtils;
    2129import org.junit.jupiter.api.Disabled;
    2230import org.junit.jupiter.api.Test;
    2331import org.junit.jupiter.api.extension.RegisterExtension;
     32import org.junit.jupiter.api.io.TempDir;
     33import org.junit.jupiter.params.ParameterizedTest;
     34import org.junit.jupiter.params.provider.ValueSource;
    2435import org.openstreetmap.gui.jmapviewer.FeatureAdapter;
    2536import org.openstreetmap.gui.jmapviewer.TileXY;
     
    3647import org.openstreetmap.josm.testutils.annotations.BasicPreferences;
    3748import 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;
     49import org.openstreetmap.josm.tools.ReflectionUtils;
    4350
    4451/**
     
    401408                )));
    402409
    403         Config.getPref().putList("imagery.layers.sites", Arrays.asList(tileServer.url("//maps")));
     410        Config.getPref().putList("imagery.layers.sites", Collections.singletonList(tileServer.url("//maps")));
    404411        ImageryLayerInfo.instance.loadDefaults(true, null, false);
    405412
     
    484491        }
    485492    }
     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    }
    486510}
Note: See TracChangeset for help on using the changeset viewer.