From a8e95d91735ef784de69247d2a5ee063686737a3 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Thu, 1 Oct 2020 13:55:27 +0200 Subject: [PATCH] Add test and simplify the code --- ...ConfigFileResolvingHttpRequestFactory.java | 4 +--- ...igFileResolvingHttpRequestFactoryTest.java | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/mapfish/print/http/ConfigFileResolvingHttpRequestFactory.java b/core/src/main/java/org/mapfish/print/http/ConfigFileResolvingHttpRequestFactory.java index 230ff28f68..2ad4f9bcdf 100644 --- a/core/src/main/java/org/mapfish/print/http/ConfigFileResolvingHttpRequestFactory.java +++ b/core/src/main/java/org/mapfish/print/http/ConfigFileResolvingHttpRequestFactory.java @@ -3,7 +3,6 @@ import org.locationtech.jts.util.Assert; import org.mapfish.print.config.Configuration; import org.mapfish.print.processor.Processor; -import org.mapfish.print.url.data.DataUrlConnection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -113,8 +112,7 @@ protected synchronized ClientHttpResponse executeInternal(final HttpHeaders head return executeCallbacksAndRequest(this.request); } if ("data".equals(this.uri.getScheme())) { - final DataUrlConnection duc = new DataUrlConnection(this.uri.toURL()); - final InputStream is = duc.getInputStream(); + final InputStream is = this.uri.toURL().openStream(); final ConfigFileResolverHttpResponse response = new ConfigFileResolverHttpResponse(is, headers); LOGGER.debug("Resolved request: {} using DataUrlConnection.", diff --git a/core/src/test/java/org/mapfish/print/http/ConfigFileResolvingHttpRequestFactoryTest.java b/core/src/test/java/org/mapfish/print/http/ConfigFileResolvingHttpRequestFactoryTest.java index 8b7155809c..200a54e76d 100644 --- a/core/src/test/java/org/mapfish/print/http/ConfigFileResolvingHttpRequestFactoryTest.java +++ b/core/src/test/java/org/mapfish/print/http/ConfigFileResolvingHttpRequestFactoryTest.java @@ -9,6 +9,7 @@ import org.mapfish.print.TestHttpClientFactory; import org.mapfish.print.config.Configuration; import org.mapfish.print.config.ConfigurationFactory; +import org.mapfish.print.url.data.Handler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; @@ -26,6 +27,9 @@ @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) public class ConfigFileResolvingHttpRequestFactoryTest extends AbstractMapfishSpringTest { + static { + Handler.configureProtocolHandler(); + } private static final String BASE_DIR = "/org/mapfish/print/servlet/"; private static final String HOST = "host.com"; @@ -40,7 +44,7 @@ public class ConfigFileResolvingHttpRequestFactoryTest extends AbstractMapfishSp @Before public void setUp() throws Exception { requestFactory.registerHandler(input -> true, - createFileHandler(URI::getPath) + createFileHandler(URI::getPath) ); final Configuration config = configurationFactory.getConfig(getFile(BASE_DIR + "config.yaml")); @@ -154,4 +158,19 @@ public void testCreateRequestIllegalFile() throws Exception { request.execute(); } + + @Test + public void testCreateRequestDataGet() throws Exception { + final URI uri = new URI( + "data:image/png;base64,iVBORw0KGgoAAA" + + "ANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4" + + "//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU" + + "5ErkJggg=="); + final ClientHttpRequest request = resolvingFactory.createRequest(uri, HttpMethod.GET); + final ClientHttpResponse response = request.execute(); + assertEquals(HttpStatus.OK, response.getStatusCode()); + + final byte[] actual = IOUtils.toByteArray(response.getBody()); + assertEquals(85, actual.length); + } }