diff --git a/src/main/java/com/merkle/oss/magnolia/imaging/flexible/generator/FlexibleImageUriFactory.java b/src/main/java/com/merkle/oss/magnolia/imaging/flexible/generator/FlexibleImageUriFactory.java index 5e707c2..e800ba9 100644 --- a/src/main/java/com/merkle/oss/magnolia/imaging/flexible/generator/FlexibleImageUriFactory.java +++ b/src/main/java/com/merkle/oss/magnolia/imaging/flexible/generator/FlexibleImageUriFactory.java @@ -9,6 +9,7 @@ import java.net.URI; import java.util.Map; import java.util.function.Function; +import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -26,7 +27,7 @@ public URI create(final FlexibleParameter parameter) { ".imaging", FlexibleImageGenerator.GENERATOR_NAME, parameter.getItemKey().asString() - ), + ).filter(Predicate.not(String::isBlank)), parameter.toMap().entrySet().stream().sorted(Map.Entry.comparingByKey()).flatMap(p -> Stream.of(p.getKey(), p.getValue())), Stream.of(parameter.getFileName()) ).flatMap(Function.identity()).collect(Collectors.toList()) diff --git a/src/test/java/com/merkle/oss/magnolia/imaging/flexible/generator/FlexibleImageUriFactoryTest.java b/src/test/java/com/merkle/oss/magnolia/imaging/flexible/generator/FlexibleImageUriFactoryTest.java index 1d20c4b..c784c8f 100644 --- a/src/test/java/com/merkle/oss/magnolia/imaging/flexible/generator/FlexibleImageUriFactoryTest.java +++ b/src/test/java/com/merkle/oss/magnolia/imaging/flexible/generator/FlexibleImageUriFactoryTest.java @@ -34,4 +34,21 @@ void create() throws URISyntaxException { ); } } + + @Test + void createNoContext() throws URISyntaxException { + final Asset asset = mock(Asset.class); + doReturn(ItemKey.from("jcr:b3ee7444-4830-4454-abbb-20fc35387032")).when(asset).getItemKey(); + doReturn("someImage.jpg").when(asset).getFileName(); + final FlexibleParameter parameter = new FlexibleParameter(new DynamicImageParameter(true), "16:9", 100, asset); + + try (MockedStatic mgnlContext = Mockito.mockStatic(MgnlContext.class)) { + mgnlContext.when(MgnlContext::getContextPath).thenReturn("/"); + + assertEquals( + new URI("/.imaging/flex/jcr:b3ee7444-4830-4454-abbb-20fc35387032/crop/true/ratio/16:9/width/100/someImage.jpg"), + new FlexibleImageUriFactory().create(parameter) + ); + } + } } \ No newline at end of file