From 774a6827c4ccd330727224ba4e37d556dbd06715 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 31 Aug 2022 21:56:10 +0100 Subject: Only use the alt text of image elements as a fallback --- .../internal/conversion/InternalImageConverter.java | 3 ++- .../tests/conversion/InternalImageConverterTests.java | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/org/zwobble/mammoth/internal/conversion/InternalImageConverter.java b/src/main/java/org/zwobble/mammoth/internal/conversion/InternalImageConverter.java index 3aad8e8..4ef95bc 100644 --- a/src/main/java/org/zwobble/mammoth/internal/conversion/InternalImageConverter.java +++ b/src/main/java/org/zwobble/mammoth/internal/conversion/InternalImageConverter.java @@ -48,8 +48,9 @@ public class InternalImageConverter { } }; - Map attributes = new HashMap<>(PassThroughException.wrap(() -> imgElement.convert(image))); + Map attributes = new HashMap<>(); internalImage.getAltText().ifPresent(altText -> attributes.put("alt", altText)); + attributes.putAll(PassThroughException.wrap(() -> imgElement.convert(image))); return list(Html.element("img", attributes)); }) .orElse(list()); diff --git a/src/test/java/org/zwobble/mammoth/tests/conversion/InternalImageConverterTests.java b/src/test/java/org/zwobble/mammoth/tests/conversion/InternalImageConverterTests.java index e5b49a6..5a9498b 100644 --- a/src/test/java/org/zwobble/mammoth/tests/conversion/InternalImageConverterTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/conversion/InternalImageConverterTests.java @@ -54,4 +54,23 @@ public class InternalImageConverterTests { deepEquals(list(Html.element("img", map("alt", "", "src", "")))) ); } + + @Test + public void imageAltTextCanBeOverriddenByAltAttributeReturnedFromFunction() throws IOException { + Image internalImage = new Image( + Optional.of(""), + Optional.of("image/jpeg"), + () -> new ByteArrayInputStream(new byte[]{97, 98, 99}) + ); + + InternalImageConverter imageConverter = InternalImageConverter.imgElement(image -> { + return map("alt", "", "src", ""); + }); + List result = imageConverter.convert(internalImage); + + assertThat( + result, + deepEquals(list(Html.element("img", map("alt", "", "src", "")))) + ); + } } -- cgit v1.2.3