diff options
| author | Michael Williamson <mike@zwobble.org> | 2022-08-31 21:56:10 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2022-08-31 21:56:10 +0100 |
| commit | 774a6827c4ccd330727224ba4e37d556dbd06715 (patch) | |
| tree | 88906a2a00fcc3d8cf295576919fb08552458437 /src | |
| parent | d6cdd0aca3b25e047f7e2adb1c3bc7ea20485917 (diff) | |
Only use the alt text of image elements as a fallback
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/conversion/InternalImageConverter.java | 3 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/mammoth/tests/conversion/InternalImageConverterTests.java | 19 |
2 files changed, 21 insertions, 1 deletions
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<String, String> attributes = new HashMap<>(PassThroughException.wrap(() -> imgElement.convert(image))); + Map<String, String> 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", "<alt>", "src", "<src>")))) ); } + + @Test + public void imageAltTextCanBeOverriddenByAltAttributeReturnedFromFunction() throws IOException { + Image internalImage = new Image( + Optional.of("<alt>"), + Optional.of("image/jpeg"), + () -> new ByteArrayInputStream(new byte[]{97, 98, 99}) + ); + + InternalImageConverter imageConverter = InternalImageConverter.imgElement(image -> { + return map("alt", "<alt override>", "src", "<src>"); + }); + List<HtmlNode> result = imageConverter.convert(internalImage); + + assertThat( + result, + deepEquals(list(Html.element("img", map("alt", "<alt override>", "src", "<src>")))) + ); + } } |
